Professional Documents
Culture Documents
Báo Cáo OOP 2021
Báo Cáo OOP 2021
Hà Nội – 5/2021
MỤC LỤC
MỤC LỤC.................................................................................................................... 1
Nhóm 14 2
IT3100 – Lập trình hướng đối tượng 20192
Nhóm 14 3
IT3100 – Lập trình hướng đối tượng 20192
Bởi do mới làm quen với ngôn ngữ Java cũng như việc xử lý trong lập trình
hướng đối tượng nên trong chương trình còn hạn chế là việc không tránh khỏi.
Vậy nên nhóm chúng em mong có được nhận xét từ phía thầy về đề tài của
nhóm để có những khắc phục.
2. Mô tả đề tài
Game nhập vai ESCAPE-GHOST gồm có:
• Menu: hiển thị cho phép người chơi lựa chọn thông tin ( Xem hướng dẫn,
chọn chế độ chơi,…)
• Người chơi (Player): Game có 2 người chơi hỗ trợ nhau trong quá trình chơi
• Kẻ địch (Enemy): có khả năng gây sát thương cho player, tấn công và di
chuyễn ngẫu nhiên trên bản đồ
• Bản đồ (Map): bao gồm đường đi, đất, nước,…
Nhóm 14 4
IT3100 – Lập trình hướng đối tượng 20192
Nhóm 14 5
IT3100 – Lập trình hướng đối tượng 20192
Nhóm 14 7
IT3100 – Lập trình hướng đối tượng 20192
Hình 3. Use case “chơi game” phân rã đối với người chơi 1
Hình 4. Use case “chơi game” phân rã đối với người chơi 2
Nhóm 14 8
IT3100 – Lập trình hướng đối tượng 20192
Mã UC UC01 Tên Bắt đầu game
Nhóm 14 9
IT3100 – Lập trình hướng đối tượng 20192
Tác nhân Người dung chương trình
Điều kiện trước Tác nhân đã bắt đầu game
Luồng thực thi
chính
No. Thực hiện Hành động
Nhóm 14 10
IT3100 – Lập trình hướng đối tượng 20192
Nhóm 14 11
IT3100 – Lập trình hướng đối tượng 20192
- Gói Image: Gồm hình ảnh các đối tượng đồ họa dưới dạng các file *.png
- Gói Actor: Gồm mã của nhân vật gồm người chơi, quái vật, boss, ...
- Gói GUI: Gồm mã của những đối tượng đồ họa
- Gói map: Gồm mã của bản đồ cùng với quái vật cho từng màn chơi
- Gói weapons: Gồm mã của các loại vũ khí
- Gói Manager: Gồm mã của lớp Manager chịu trách nhiệm xử lí va chạm, xử lí
qua màn, kết thúc và bắt đầu game
Các gói trong biểu đồ trên thuộc tầng giao diện, nghiệp vụ.
Nhóm 14 12
IT3100 – Lập trình hướng đối tượng 20192
Có các đối tượng thể hiện các menu, hiển thị nhân vật và các hiệu ứng động.
Tổng quan về các lớp trong gói:
o Lớp Frame kế thừa từ lướp JFrame hiển thị giao diện trò chơi.
o Lớp Container kế thừa từ lớp JPanel chịu trách nhiệm hiển thị các giao
diện điều khiển cho người dùng như là màn hình Menu, Tutorial,
MainGame, ... thông qua card layout, và các mối quan hệ kết tập với các
lớp kết thừa JPanel.
o Lớp MainGame thể hiện màn hình chơi game của người chơi kế thừa từ
lớp JPanel là nơi thể hiện các đối tượng nhân vật, quái vật, ...
o Các lớp Tutorial, Menu, End là các JPanel hiển thị màn hình hướng dẫn
menu điều khiển và màn hình kết thúc game.
o Lớp MyMap lưu giữ thông tin về màn chơi như bản đồ được lưu dưới
dạng mảng 2 chiều, và các ArrayList quái vật của từng màn chơi. Do
điều kiện thử nghiệm nên số lượng map là 4 map với 1 mâp khởi động
cho người chơi làm quen
o Lớp Manager có các phương thức xử lí va chạm, xử lí các thao tác người
dùng, xử lí các tương tác của các nhân vật với địa hình, nhân vật khác
o Lớp StatusBar kế thừa từ JPanel hiển thị các thông số của nhân vật
Nhóm 14 13
IT3100 – Lập trình hướng đối tượng 20192
Nhóm 14 15
IT3100 – Lập trình hướng đối tượng 20192
MyMap
Tạo bản đồ, quái vật. MainGame
Setup vị trí và số lượng quái trong Dog
từng màn. Hunter
Container
Hiển thị giao diện điều khiển cho MainGame
người chơi ( Menu, tutorial, end, Tutorial
maingame,…) Menu
End
Ghost
Thiết lập các chỉ số: HP, MP, MainGame
Speed, atk,…các image ứng với LongRange
các trạng thái di chuyển.
Thiết lập di chuyển cho nhân vật
Ghost.
Nhóm 14 16
IT3100 – Lập trình hướng đối tượng 20192
Manager
Xử lí va chạm, tương tác với người Bullet
chơi. Dog
Xử lí tương tác của nhân vật với địa Hunter
hình, quái vật và nhân vật khác. MainGame
Actor
Tạo các thuộc tính cho nhân vật và MainGame
quái như: HP, Max_HP, MP, LongRange
Max_MP, defaultSpeed, speed, atk, ShortRange
defense, status, dead, type,…
MainGame
Hiển thị nhân vật, quái vật, map,… MyMap
trên màn hình chơi game. Monster
Thiết lập chức năng phím tắt. Hunter
Kiểm tra trạng thái nhân vật, quái MyAdapter
vật Manager
(dead, live) Dog
Ghost
Nhóm 14 17
IT3100 – Lập trình hướng đối tượng 20192
Nhóm 14 18
IT3100 – Lập trình hướng đối tượng 20192
Game nhập vai Escape Ghost có chức năng chính như sau :
- Giao diện khi vào game có Tutorial giúp người chơi có thể biết được kỹ năng
của mỗi người chơi và hiểu về cách thức để chiến thắng game
- Khi vào game người chơi có thể chọn 2 chế độ chơi :
Play Easy : trong chế độ này người chơi 1 không thể tấn công được người
chơi 2, quái vật có chỉ số thấp hơn
Play Hard : ở chế độ này người chơi 1 có thể tấn công người chơi 2 đồng
thời tang chỉ số của quái vật
- Người chơi có thể dừng game với phím P và tiếp tục game sau khi nhấn nút
Space
- Người chơi vượt qua mỗi màn chơi bằng cách đi vào bụi cỏ ở bên phải màn
hình sau khi tiêu diệt quái vật
- Nhân vật 1 được điều khiển di chuyển bằng các phím ↓ ↑ ← → và tấn công
quái vật bằng phím Enter
- Nhân vật 2 được điều khiển di chuyển bằng các phím W S A D và có các kỹ
năng như thiêu đốt quái xung quanh, dung phím B để dịch chuyển đến nhân vật
1 và hồi máu bằng phím N
- Người chơi có thể bị xử thua sau khi 1 trong 2 nhân vật hết lượng máu (HP) của
mình
Nhóm 14 19
IT3100 – Lập trình hướng đối tượng 20192
- Trên giao diện chính của game gồm có 3 chức năng chính :
Nhóm 14 20
IT3100 – Lập trình hướng đối tượng 20192
Nhóm 14 21
IT3100 – Lập trình hướng đối tượng 20192
Sau khi vượt qua màn giới thiệu giao diện trong game sẽ thay đổi vào giao
diện mỗi map
Nhóm 14 22
IT3100 – Lập trình hướng đối tượng 20192
Trong màn giới thiệu và kể cả màn chơi thông số của nhân vật 1 và nhân
vật 2 đều được nêu rõ ở thanh dưới màn hình
Trong đó
Ghost HP là lượng máu của nhân vật 1
Ghost MP là mana dùng để tấn công của nhân vật 1 ( có thể hồi lại khi đạn
trúng vật cản hoặc đi ra ngoài map)
Ghost-ATK là chỉ số tấn công của nhân vật 1
Monster HP là lượng máu của nhân vật 2
Monster MP là lương mana để sử dụng kỹ năng của nhân vật 2
Monster-ATK là số dame đốt quái xung quanh mỗi giây của nhân vật 2
Monster AT-Ranger là phạm vi đốt quái vật của nhân vật 2
Nhóm 14 23
IT3100 – Lập trình hướng đối tượng 20192
Bảng 1 : Kết quả kiểm thử chức năng Bắt đầu game
STT input output Exception Kết quả
1 Chọn TUTORIAL Hiển thị giao diện Không xử lý OK
ở màn hình chính hướng dân game
2 Chọn chế độ Play Hiển thị giao diện game Không xử lý OK
EASY ở màn hình mới ở chế độ dễ
chính
3 Chon chế độ Play Hiển thị giao diện game Không xử lý OK
Hard ở màn hình mới ở chế độ dễ
chính
Bảng 2 : Kết quả kiểm thử chức năng di chuyển đói với mỗi nhân vật
Nhóm 14 25
IT3100 – Lập trình hướng đối tượng 20192
1 Nhấn Enter Cập nhật lượng máu của Không xử lý FAIL
quái vật nếu lượng máu
thấp hơn 0 quái vật sẽ
biến mất khỏi bản đồ
(Lương MP sẽ giảm đi 1
sau 1 lần tấn công)
Nhóm 14 26
IT3100 – Lập trình hướng đối tượng 20192
chuyển đến sẽ
xảy ra lỗi
Nhóm 14 27
IT3100 – Lập trình hướng đối tượng 20192
Nhóm 14 28
IT3100 – Lập trình hướng đối tượng 20192
Nhóm 14 29