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 đó ứ
Trang 1TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
Giảng viên : Phạm Công Thiện
Sinh viên : Bùi Trọng Nghĩa - 13130059
Cao Thành Đạt - 13130150 Trần Văn Triều - 13130098
Trang 2MỤC LỤC
Trang 31 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ếnnhấ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ộtnhó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ấtnhiề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ẫnnhiề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 đó ứngdụ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 đã dichuyể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ỹ thuật và source code:
1.1 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 filejava 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
Trang 4- 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 (địnhdạng hiển thị) , raw (âm thanh) Những file này có thể truy cập vào bằng lệnhR.<tên file>.<tài nguyên>
Trang 52.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
Trang 62.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
Trang 7Method 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()
Trang 10 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
Trang 112.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()
Trang 132.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
Trang 142.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
Trang 163 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
Trang 18 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
Trang 19Hì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
Trang 20Hì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
Trang 21Hì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]
Trang 22Hì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
Trang 23Hì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
Trang 24Hì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
Trang 25Hì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