Tải bản đầy đủ (.docx) (25 trang)

8 puzzle game play documents

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.95 MB, 25 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN


BÁO CÁO MÔN HỌC:
LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
ĐỀ TÀI: LẬP TRÌNH GAME 8-PUZZLE TRÊN
ANDROID

Giảng viên

: Phạm Công Thiện

Sinh viên

: Bùi Trọng Nghĩa
Cao Thành Đạt
Trần Văn Triều

Lớp

: DH13DT

- 13130059
- 13130150
- 13130098


Lập trình Android: Games 8-Puzzle


MỤC LỤC

2


Lập trình Android: Games 8-Puzzle

1. Giới

thiệu game 8-Puzzle:

Kể từ khi máy tính xuất hiện, games đã trở thành một trong những ứng dụng phổ biến
nhất trên thị trường. Cùng với sự đa dạng và phong phú về thể loại game có thể lựa chọn,
chúng ta cần tập trung vào những yếu tố phù hợp nhất với nền tảng di động (điện thoại di
động, máy tính bảng, vv… ), đặc biệt quan tâm đến những game có thể phát triển bằng một
nhóm ít người. Với tiềm năng to lớn của thị trường di động, không ngạc nhiên khi có rất
nhiều nghiên cứu và ý tưởng được đưa ra nhằm mục đích tạo nên một game di động hấp dẫn
nhiều người chơi.
Nhằm đáp ứng những điểm trên, nhóm em đã xây dựng nên game 8-Puzzle là trò
chơi thuộc thể loại trí tuệ. Có thể giúp người chơi nâng cao khả năng tư duy hơn và ghi nhớ
tốt hơn.
 Hướng dẫn chơi:

Khi bắt đầu trò chơi, màn hình hiển thị 9 ô vuông (hoặc chữ nhật tùy hình ảnh) trong
đó có một ô trống, 8 ô kia xếp thành hình hoàn chỉnh cho người chơi ghi nhớ, sau đó ứng
dụng sẽ đổi chỗ ô trống với các ô số tạo thành một trạng thái bất kỳ.
Nhiệm vụ của người chơi là phải di chuyển các ô số sao cho trở về trạng thái “WIN”
(trạng thái hoàn chỉnh ban đầu).
Trong khi chơi người chơi vẫn có thể reset để chơi lại từ đầu, chọn ảnh khác, thay đổi
độ khó, hiển thị số thứ tự trên ảnh,…

Khi người chơi chiến thắng, ứng dụng game sẽ thông báo số bước người chơi đã di
chuyển cũng như thời gian hoàn thành puzzle. Phát nhạc chúc mừng cũng như cho phép bắt
đầu game mới.

2. Kỹ
1.1.

thuật và source code:

Cấu trúc project:

 Vì project 8-puzzle là một project tương đối đơn giản nên cây thư mục chỉ bao gồm 3 file

java Class:
- PuzzleView: Class xử lý những ứng xử chính của games 8-puzzle
- MainActivity: Class xử lý giao diện chính (giao diện bắt đầu), cài đặt âm thanh,
… MainActivity extends Activity class.
- AppThread: extends Thread, là class đảm nhận việc chạy các tiến trình của
games.
Cây thư mục của project gồm 3 phần chính quan trọng:
- Thư mục manifect: chứa file AndroidManifest.xml là file cài đặt những cấu hình
chính cho ứng dụng.
- Thư mục app: gồm (những) package(s) chứa source code ứng dụng.
3


Lập trình Android: Games 8-Puzzle
-

Thư mục res (resources): chứa những thư mục nhỏ hơn lưu trữ những tài

nguyên mà ứng dụng sử dụng như drawable (hình ảnh, hiển thị), layout (định
dạng hiển thị) , raw (âm thanh). Những file này có thể truy cập vào bằng lệnh
R.<tên file>.<tài nguyên> .
VD: R.drawable.button1

2.1. Cây thư mục project
1.2.

Thư mục AndroidManifest.xml:

 Cấu hình cho ứng dụng game như icon chính, activity khởi chạy đầu tiên, nhãn ứng

dụng,…

4


Lập trình Android: Games 8-Puzzle

2.2. File AndroidManifest.xml
1.3.

Lớp PuzzleView:

 Là class xử lý chính cho các ứng xử của games 8-puzzle.
 Object PuzzleView nhận vào một object MainActivity làm context để xử lý dựa trên

MainActivity
 Method init(Bitmap image): là method nhận vào một bức ảnh sau đó chia nhỏ ảnh


ra dựa theo cài đặt độ khó, sau đó hiển thị ra màn hình games.

2.3. File PuzzleView
5


Lập trình Android: Games 8-Puzzle

2.3.1. Phương thức init(Bitmap image)
 Xác định WIN_STATE:
 Khi vị trí của mảnh ghép đầu tiên và mảnh trông ở đúng vị trí của nó, ta duyệt hết vị

trí của các mảnh ghép còn lại xem chúng có ở đúng vị trí hay không, nếu không thì
games chưa ở trạng thái WIN_STATE.

2.3.2. Xác định WIN_STATE
6


Lập trình Android: Games 8-Puzzle

Method onTouchEvent(MotionEvent me): override từ View.onTouchListener() dùng xử
lý sự kiện khi người chơi chạm màn hình để di chuyển các mảnh ghép.

2.3.3. Phương thức onTouchEvent(MotionEvent me)
 Method reset(): cài đặt lại một số giá trị để bắt đầu lại games.

2.3.4. Phương thức reset()

7



Lập trình Android: Games 8-Puzzle
 Method update():

2.3.5. Phương thức update()

1.4.

Lớp MainActivity:

 Xử lý giao diện bắt đầu, lấy option của người dùng cho các thiết lập cơ bản của

games (hình ảnh, âm thanh,…)
 Method openMenu(): Cài đặt phương thức chọn ảnh (từ thư viện, chụp ảnh, hay ảnh
mặc định, âm thanh bật hay tắt),…

8


Lập trình Android: Games 8-Puzzle

2.4.1. Lớp MainActivity
 Một số button được khai báo và khởi tạo dựa vào id của button đó trong giao diện chính,

các button cũng được thêm sự kiện tương ứng với chức năng của nó:
 Phát nhạc nền và nhạc chuyển động thông qua MediaPlayer và SoundPool (2 lớp do

android cung cấp).


2.4.2. Khai báo và xử lý button
9


Lập trình Android: Games 8-Puzzle
 Method takePhoto() và method getPhoto(): chụp một bức ảnh mới hoặc chọn một

ảnh từ thư viện ảnh của người dùng.

2.4.3. Phương thức takePhoto() và getPhoto()

1.5.

Lớp AppThread:

Kế thừa lớp cha Thread chạy luồng thực thi ứng dụng games.
 Method drawCanvas(Canvas canvas): vẽ ra màn hình gồm các mảnh ghép khi

người chơi bắt đầu games.

10


Lập trình Android: Games 8-Puzzle

2.4.4. Phương thức drawCanvas(Canvas canvas).
 Method run(): override từ lớp cha Thread: khai báo những lệnh thực thi khi tiến

trình được chạy.


2.4.5. Phương thức run()

11


Lập trình Android: Games 8-Puzzle

1.6.

File layout.menu.xml:

 Khai báo giao diện chính của chương trình, gồm các components trong Component

Tree:

2.5. Open file menu.xml

2.6. Component Tree

1.7.

Thư mục raw:

 Thường chứa những files âm thanh sử dụng trong ứng dụng.
12


Lập trình Android: Games 8-Puzzle

2.7. Thư mục raw


1.8.

Thư mục values:

Chứa một số file xml cấu hình cho ứng dụng
 Ví dụ như file strings.xml quy định tên hiển thị của ứng dụng

13


Lập trình Android: Games 8-Puzzle

2.8. File values.strings.xml

1.9.

File build.gradle(Module:app):

 Quy định một số thuộc tính của ứng dụng, VD: phiên bản SDK, version,…

2.9. File build.gradle

14


Lập trình Android: Games 8-Puzzle

1.10. Thư


mục drawable:

 Chứa một số file ảnh, file .xml cần thiết cho việc cấu thành giao diện ứng dụng.

2.10. Thư mục drawable
 Những thư mục trong res có thể được truy cập thông qua R.<tên thư mục> trong

code file java hoặc android:@<tên thư mục>/ trong file .xml.

15


Lập trình Android: Games 8-Puzzle

3. Demo

và hướng dẫn ứng dụng games:

 Hình ảnh icon ở màn hình điện thoại:

 Trò chơi bắt đầu với màn hình chín có thể chọn các chức năng chơi khác nhau như:
I. Chụp bức ảnh
II. Chọn 1 bức ảnh từ trong thư viện ảnh
III. Chơi với bức ảnh mà app có sẵn
16


Lập trình Android: Games 8-Puzzle

Hình 3.1 : Ảnh màn hình chính của game

 Ở màn hình chính người chơi có thể mở nhạc nền của game cũng như có thể tắt nhạc nền

của game bằng cách nhấp vào biểu tượng nhạc chuông.

 Bên cạnh đó người chơi có thể xem cách chơi khi nhấp vào [HELP]

17


Lập trình Android: Games 8-Puzzle

 Trò chơi sẽ hiển thị màn hình thông báo cách chơi cho người chơi hiểu được cách chơi

của game

 Khi người chơi chọn vào chức năng chụp hình

18


Lập trình Android: Games 8-Puzzle

Hình 3.2 : Ảnh người chơi chụp dùng để tiến hành chơi game
 Màn hình camera xuất hiện và người chơi có thể chụp 1 bức ảnh tùy ý để có thể tiến

hành chơi.
 Sau khi nhấp vào nút Ok. Màn hình game xuất hiện.

Hình 3.3: Màn hình game sau khi nhấp vào nút OK ở hình 3.2
 Người chơi có thể tiến hành sắp xếp hình để bức hình trở về dạng hoàn chỉnh (hình 3.3


đang ở mức Super Easy), người chơi có thể có thêm hỗ trợ hiện thì vị trí đúng của từng
bức ảnh bạn có thể giữ nút tác vụ để chọn phần hiển thị số cho bức ảnh

19


Lập trình Android: Games 8-Puzzle

Hình 3.4: Các chức năng khi người dùng giữ nút tác vụ
 Người chơi có thể [New] lại game, có thế chơi lại khi nhấp vào nút [Retry], chỉnh lại độ

khó cho game [Difficulty] hoặc hiển thị số thứ tự cho các bức hình [Show Number] để
người chơi có thể dễ dàng trong việc hoàn thành quá trình sắp xếp các mảnh ghép.

Hình 3.5: Người dùng chọn chế độ khó trong game
 Games có 4 mức độ chơi : Easy, Medium, Hard, Super Easy, để người chơi có thể trải

nghiệm.

20


Lập trình Android: Games 8-Puzzle

Hình 3.6: Ảnh người dùng chọn độ khó là [Easy]

Hình 3.7: Ảnh người dùng chọn chế độ [Medium]

21



Lập trình Android: Games 8-Puzzle

Hình 3.8: Người chơi chọn chế độ [Hard]

Hình 3.9: Người chơi chọn trợ giúp hiển thị số thứ tự của ảnh
 Người dùng chọn chế độ chọn 1 ảnh từ thư viện ảnh

Hình 3.10: Ảnh chọn chức năng chọn ảnh từ thư viện ảnh
 Ứng dụng sẽ cho người chơi chọn ảnh trong thư viện ảnh.

22


Lập trình Android: Games 8-Puzzle

Hình 3.11: Ảnh người chơi chọn ảnh để tiến hành sắp xếp
 Người dùng chọn ảnh mặc định của trò chơi

Hình 3.12: Ảnh người chơi chọn chế độ mặc định của game

23


Lập trình Android: Games 8-Puzzle

Hình 3.13: Ảnh mặc định của trò chơi

Hình 3.14: Người chơi hoàn thành săp xếp ảnh ở hình 3.13


24


Lập trình Android: Games 8-Puzzle

Hình 3.15: Thông báo chiến thắng
 Ở màn hình thông báo chiến thắng: trò chơi sẽ thông báo thời gian và số bước di chuyển
của người chơi đã chơi.

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×