Nắm bắt được xu thế những người lập trình game đưa ra các ý tưởng và tạo ra các ứng dụng game hay và rất hấp dẫn người chơi và có những trò chơi đã đi vào huyền thoại, ai ai cũng biết đế
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
*******************
BÁO CÁO BÀI TẬP LỚN
MÔN GIAO DIỆN NGƯỜI MÁY XÂY DỰNG GAME RẮN SĂN MỒI
Nhóm sinh viên thực hiện – lớp CNPM.K52:
Đào Thị Thủy (MSV: 1112057)
Lương Đức Anh (MSV: 1100283)
Trần Văn Khang (MSV: 1106197 )
Giáo viên hướng dẫn:
TS Nguyễn Trọng Phúc – Bộ môn CNPM
Hà Nội, tháng 11 - 2014
Trang 2RẮN SĂN MỒI 2D 4
I Phân tích 4
1 Giới thiệu 4
2 Khảo sát 4
3 Luật trò chơi 5
4 Phân tích chức năng của game 6
II Thiết kế 8
1 Giao diện 8
2 Data base 12
III Giao diện và moldul chương trình 14
1 Các moldul 14
2 Giao diện 14
PHÂN CÔNG VIỆC 17
KẾT LUẬN 18
Trang 3Sự bùng nổ của công nghệ thông tin toàn cầu hiện nay, đã có những bước phát triển mạnh
mẽ của các công nghệ số Những chiếc điện thoại smart- phone thông minh với nhiều hệ điều hành khác nhau ngày càng được nhiều người sử dụng tin dùng Nắm bắt được xu thế những người lập trình game đưa ra các ý tưởng và tạo ra các ứng dụng game hay và rất hấp dẫn người chơi và có những trò chơi đã đi vào huyền thoại, ai ai cũng biết đến nó Đó
là một thành công của lập trình viên Ở Việt Nam các lập trình viên lập trình về game trên các hệ điều hành chưa phát triển mạnh
Qua nghiên cứu và tìm hiểu em nhận thấy game Rắn săn mồi là game cổ điển, xuất hiện vào năm 1997 trên Nokia 6610là những ô vuông xếp liên tiếp nhau di chuyển trên một màn hình màu xanh đơn giản, nhưng Rắn săn mồi đã xây dựng rất thành công tên tuổi của mình Với bốn trăm triệu bản được xuất xưởng và đến hiện tại đã là phiên bản thứ tám Game có có sự hấp dẫn đối với người chơi Do đó nhóm chúng em quyết định xây dựng chương trình game rắn săn mồi dựa trên ý tưởng của họ
Trong quá trình phân tích và thiết kế do thời gian và trình độ có hạn nên chương trình không tránh khỏi những thiếu sót Vì vậy chúng em rất mong sự góp ý của thầy cô
và các bạn
Em xin chân thành cảm ơn!
Hà Nội, tháng 11 năm 2014 Nhóm sinh viên thực hiện
Trang 4RẮN SĂN MỒI 2D
I Phân tích
1 Giới thiệu
Rắn săn mồi là game cổ điển, xuất hiện vào năm 1997 trên Nokia 6610 là những ô vuông xếp liên tiếp nhau di chuyển trên một màn hình màu xanh đơn giản, nhưng
Rắn săn mồi đã xây dựng rất thành công tên tuổi của mình Với bốn trăm triệu bản
được xuất xưởng và đến hiện tại đã là phiên bản thứ tám Game có có sự hấp dẫn đối với người chơi
2 Khảo sát
Bố cục chơi game gồm 1 panel chính và 2 panel phụ
Một Panel chính:
- Kích thước: width = 720, height = 720 (px).
- Được bố trí như ma trận gồm 30 *30 ô có kích thước mỗi ô (24* 24).
Hai Panel phụ:
- Panel phụ 1: có kích thước 720 * 100 làm khung hiển thị thông tin score và level
và có 1 nút cho người chơi lựa chọn resume, restart, back.
- Panel phụ 2: có kích thước 720 * 250 làm khung chọn nút điều khiển rắn di
chuyển
Cấu tạo rắn:
- Con rắn khi khởi tạo có độ dài = 72px.
- Xuất phát điểm đầu rắn ở vị trí có tọa độ (x,y) = (0,3).
- Rắn có 2 phần: Đầu rắn (load ảnh), thân rắn màu xanh (load ảnh), khúc rắn hình
vuông bo tròn góc kích thước 24 * 24
Vật cản:
- Phụ thuộc vào từng level có các vật cản khác nhau (kích thước, vị trí) màu sắc =
GREEN Mỗi block của vật cản hình vuông 24 * 24
- Vật cản được xây dựng và đọc ra từ 1 ma trận kích thước 23 * 23 chứa các số 0 và
1 với quy tắc:
0: Không có block nào của vật cản.
1: Có 1 block của vật cản.
- Vật cản còn là đường biên bao quanh bàn cờ
Thức ăn:
- Thức ăn hiển thị ngẫu nhiên trên panel chính và không nằm trên bất kì vật cản
nào
Trang 5- Kích thước thức ăn bình thường: 24 * 24, còn khi tạo ra combo có kích thước 48 *
48 sau đó giảm dần kích thước theo khoảng thời gian 20 * 20 -> 10 * 10 -> biến mất
- Màu sắc: hình ảnh hoa quả được load ảnh từ nguồn.
3 Luật trò chơi
Luật chơi
- Tạo ra một ma trận tĩnh có các vật cản cố định và thức ăn sinh ngẫu nhiên.
- Hành động của rắn: Khi người chơi chọn nút PLAY thì rắn bắt đầu di chuyển,
người chơi di chuyển rắn bằng các nút ảo sang phải →, sang trái ←, lên trên ↑, xuống dưới ↓ sao cho rắn ăn được thức ăn và không bị đâm vào vật cản Trên cùng
1 đường thẳng rắn không thể quay đầu lại
- Có nhiều Level khác nhau, qua mỗi level sẽ tăng độ khó và tốc độ rắn
o Tốc độ rắn ban đầu (level 1) là 300 ms => tăng dần tốc độ qua từng level: 180, 150
o Độ dài rắn: sau khi ăn thức ăn độ dài += 24
o Điểm: được cộng 5 điểm khi mỗi lần rắn ăn thức ăn
- Mỗi khi rắn ăn thức ăn sẽ được cộng điểm ngược lại bị đâm vào vật cản hoặc tự va
vào thân của mình => game over => lưu điểm của người chơi
- Khi ăn hết thức ăn ở từng level thì sẽ được chuyển lên level tiếp theo
o Tốc độ theo level
o Độ dài rắn: khi bắt đầu 1 level mới thì độ dài rắn trở về trạng thái ban đầu
Các luật khác
- Khởi tạo:
o Tại thời điểm ban đầu rắn được sinh ra có tọa độ (0, 3).
o Vật cản được sinh ra dựa vào ma trận của từng level.
o Thức ăn được sinh ra ngẫu nhiên: sinh ra từng thức ăn một, khi rắn ăn
hết thức ăn này sẽ sinh ngẫu nhiên thức ăn mới sao cho vị trí thức ăn không trùng với vị trí của vật cản
- Di chuyển:
o Khi rắn ăn được thức ăn: là khi vị trí của đầu rắn trùng với vị trí của
thức ăn
o Khi rắn va vào vật cản: là khi vị trí của đầu rắn trùng với vị trí của vật
cản
o Rắn di chuyển sang phải: tìm vị trí hiện tại của rắn; tìm vị trí đuôi( vị trí
cuối cùng của rắn) và xóa phần đuôi => vẽ lại rắn Đối với phần từ đuôi đến sát đầu => gán vị trí thứ i = i -1 Đối với phần đầu => tọa độ y += 1
Trang 6o Tương tự, di chuyển sang trái: Đối với phần đầu => tọa độ y -= 1.
o Tương tự, di chuyển sang xuống dưới: Đối với phần đầu => tọa độ x
+=1
o Tương tự, di chuyển lên trên: Đối với phần đầu => tọa độ x -= 1.
- Level: Gồm có 3 level Khi bắt đầu chơi mặc đinh chơi ở mức level 1 Sau khi ăn
đủ số thức ăn qui định của từng level thì người chơi được qua level tiếp theo
4 Phân tích chức năng của game
Sơ đồ phân rã chức năng
Hình 1: Sơ đồ phân rã chức năng game rắn săn mồi.
Mô tả chức năng
Chức năng "Play game": Chức năng chính của chương trình Chương trình sẽ
mở giao diện chơi game :
góc bên trái, khi ấn vào nút này phần chơi game sẽ bị mờ đi, rắn tạm ngừng hoạt
động, mở ra 1 bảng điều khiển bao gồm Resume, Restart và Back.
Trang 7 Chọn Restart game sẽ bắt đầu từ level 1, số điểm trở về 0 và tính lại từ đầu,
khi chọn vào hệ thống sẽ hỏi có chắc chắn muốn chơi lại hay không
chơi hiện tại, không tính là kết thúc game vì vậy sẽ không lưu nếu điểm đạt kỉ lục
Chức năng "High Score": Chức năng xem điểm kỉ lục.
có điểm cao nhất như tên người chơi, số điểm kết thúc, level
năng được gọi đến sẽ load thông tin từ cơ sở dữ liệu và hiển thị lên giao diện
kết thúc cao hơn ít nhất 1 người trong top 10, hệ thống sẽ xóa thông tin người đứng cuối của top 10 và bắt đầu cho nhập thông tin của người chơi để lưu điểm
Chúc năng "Help": Chức năng trợ giúp cách di chuyển rắn.
Chức năng "Setting": Cài đặt trong game.
thúc game
Chức năng "Exit": Chức năng thoát ứng dụng game Hệ thống hỏi có muốn thoát hay không?
II Thiết kế
1 Giao diện
Giao diện chính
Trang 8Trên đây là Giao diện chính của chương trình
Giao diện có 4 nút (button) là: Play game, High score, Help, Exit Chức năng của mỗi
nút là:
Button Play game: là nút xác nhận bắt đầu trò chơi Sau khi click vào nút này,
chương trình sẽ chuyển sang Giao diện chọn chế độ chơi của game.
Button High score: là nút xem các xếp hạng tóp 10 (điểm cao) của game.
Button Help: là nút trợ giúp – hướng dẫn cách chơi của game.
Button Exit: là nút thoát khỏi ứng dụng game.
Button Setting: Có 2 biểu tượng điều chỉnh âm thanh (button): Khi ấn vào thì
hiển thị ra như sau
Trang 9 Button Music (Biểu tượng music): Sau khi click vào nút này để thay chuyển sang
đổi trạng thái nhạc nền của game
Button Sounds (Biểu tượng sounds): Sau khi click vào nút này để thay chuyển
sang đổi trạng thái âm thanh của các nút điểu khiển của game
Trang 10 Play game
Đây là Giao diện chơi game của ứng dụng Giao diện có 4 nút ảo (button) để di chuyển rắn và 1 button để lựa chọn chơi tiếp, chơi lại và quay lại 3 frames; 2 label là Score, Level Chức năng của mỗi nút, mỗi frames và label là:
Frame Frame 1: dung để chứa Lable điểm và level và nút button lựa chọn.
Frame Frame 2: chính là khung nhìn của game – nơi mà người chơi sử dụng để
di chuyển rắn ăn mồi
Frame Frame 3: dùng để chứa những button điểu khiển rắn.
Button Mũi tên: dùng để di chuyển rắn lên trên, xuống dưới, sang trái, sang phải.
Button lựa chọn: gồm có Resume, Restart và Back Khi ấn vào sẽ hiển thị như
sau:
Trang 11 High score
Đây là Giao diện xem xếp hạng của ứng dụng
Trang 12 Help
Đây là Giao diện Help của ứng dụng.
2 Data base
Lưu điểm
Mỗi ứng dụng đều sử dụng dữ liệu, dữ liệu có thể rất đơn giản hay đôi khi là cả 1 cấu trúc Trong Android thì hệ cơ sở dữ liệu được sử dụng là SQLite Database, đây là
hệ thống mã nguồn mở được sử dụng rộng rãi trong các ứng dụng
Trong Android, cơ sở dữ liệu mà bạn tạo cho 1 ứng dụng thì chỉ ứng dụng đó có quyền truy cập và sử dụng, còn các ứng dụng khác thì không được phép
Với việc lưu điểm của chơi top 10 đơn giản ít bản ghi nên ứng dụng game này sử dụng hệ cơ sở dữ liệu SQLite
Trang 13Cơ sở dữ liệu gồm 1 bảng với các thuộc tính sau:
- Truờng id: là trường khóa chính , sinh tự động khi người chơi muốn lưu điểm.
- Khi lấy dữ liệu ra, ta sử dụng câu lệnh truy vấn ORDER BY để lấy dữ liệu ra theo
thứ tự giảm dần của XẾP HẠNG
- Trong cơ sở dữ liệu chỉ lưu 10 người chơi có điểm cao nhất khi có 1 người chơi
mới có số điểm cao hơn người chơi có xếp hạng 10
- Giả sử : xếp hạng và điểm của người chơi theo thứ tự từ thấp đến cao là
- Xếp hạng (i) : 1 2 3 4 5 6 7 8 9 10
- Điểm d(i):D1 d2 d3 d4 d5 d6 d7 d8 d9 d10
- Người chơi mới ( có điểm m )sẽ được thêm vào vị trí có xếp hạng (n) sao cho có
điểm (m) d(i) < m < d(i+1), các vị trí có xếp hạng thấp hơn sẽ bị lùi xếp hạng (i) 1 đơn vị, và xóa người chơi có xếp hạng thấp nhất là 1
- Nếu m < d(1) “người chơi có số điểm thấp nhất” : không lưu người chơi mới này.
- Nếu m = d(1) : lưu thêm người chơi mới và có cùng số xếp hạng n = 1 , Danh sách
là tăng thêm 1 người chơi
- Nếu m = d(i) : lưu người chơi mới này và có xếp hạng n = i, các người chơi có xếp
hạng nhỏ hơn (< i) sẽ bị giảm 1 xếp hạng , đến người chơi có xếp hạng thấp nhất
bị xóa Nếu người chơi có số điểm thấp nhất có nhiều người ( 2 hoăc 3 người )
sẽ xóa 1 người bất kỳ
Bản đồ rắn di chuyển
- Tạo ra những ma trân tĩnh cho từng level dưới dạng txt
- Các vật cản là những dữ liệu cố định được biểu diễn bằng số 1 trong file matran.txt
- Thức ăn được sinh ngẫu nhiên sao cho tọa độ thức ăn không được trùng với tọa độ vật cản
Trang 14III Giao diện và moldul chương trình
1 Các moldul
2 Giao diện
o Giao diện chính:
Trang 15o Giao diện chơi:
Trang 16o Giao diện help:
o Giao diện high score:
Trang 17PHÂN CÔNG VIỆC
Trang 18STT Công việc Người làm
1 Giới thiệu, khảo sát bố cục , định nghĩa các đối
tượng có trong ứng dụng Phân tích luật chơi
Đào Thị Thủy
2 Phân tích chức năng cho ứng dụng: sơ đồ phân rã
chức, mô tả chi tiết từng chức năng
Lương Đức Anh
4 Thiết kế database: thiết kế CSDL để lưu điểm, tạo
ra các ma trận chơi
Trần Văn Khang
5 Tìm kiếm các icon ảnh phục vụ cho ứng dụng
game
Lương Đức Anh
6 Tìm hiểu hệ quản trị CSDL SQLite Trần Văn Khang
7 Code các class đối tượng: PointObject, Snake,
Barrier, Food, Map
Đào Thị Thủy
8 Thiết kế giao diện chơi trên ứng dụng, code
playActivity
Lương Đức Anh
9 Thiết kế giao diên highScore, code lưu điểm và
high score
Trần Văn Khang
KẾT LUẬN
Qua việc nghiên cứu và xây dựng chương trình game em thấy đã thực hiện được những vấn đề sau:
- Thiết kế giao diên của các moldul
Trang 19- Xây dựng rắn di chuyển trên ma trận.
- Rắn ăn mồi thì tăng điểm và thân răn dài ra
- Cài đặt âm thanh cho chương trình
Chưa thực hiện được những vấn đề sau:
- Tạo ra level cho chương trình
- Load ma trận từ tệp
- Chưa xư lý rắn đâm vào vật cản
- Tạo ra combo
Định hướng phát triển:
- Tiếp tực hoàn thiện chương trình, chỉnh sửa giao diện đẹp hơn
- Nghiên cứu và phát triển các tính năng khác hỗ trợ cho chương trình
Một lần nữa em xin được cảm ơn thầy đã tận tình giảng dạy, giúp đỡ chúng em trong thời gian nghiên cứu và thực hiện