










Preview text:
HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2023-2024/3 BÁO CÁO ĐỀ TÀI OOP Nhóm: Wibu
Chủ đề: Game phiêu lưu Danh sách thành viên 1. 49.01.104.052 Nguyễn Bảo Huy 2. 49.01.104.079 Phang Anh Kỳ 3. 49.01.104.083 Con Văn Long 4. 49.01.104.110 Ngô Thanh Phong
HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2023-2024/3 MỤC LỤC
MỤC LỤC .............................................................................................................................. 1
GIỚI THIỆU ĐỀ TÀI ................................................................................................................ 2
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ........................................................................................... 2
Mô tả đề ........................................................................................................................... 2 Nhóm:Nhóm 3 Quản lý khách sạn Trang [1]
HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2023-2024/3
Sơ đồ lớp minh họa .......................................................................................................... 3
Dữ liệu kiểm thử ............................................................................................................... 4
Bài giải mẫu ...................................................................................................................... 4
HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2023-2024/3
HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG GIỚI THIỆU ĐỀ TÀI
Hiện nay, ngành công nghiệp game đang phát triển với rất nhiều thể loại game. Việc tạo ra
một con game dễ chơi, hấp dẫn đang là xu hướng của ngành game hiện nay. Vì vậy nhóm
em hướng đến tạo một con game đánh theo lượt đơn giản hiện thực hóa những điều kiện trên. Nhóm:Nhóm 3 Quản lý khách sạn Trang [2]
HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2023-2024/3
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Minh họa đề tài dưới dạng đề lập trình, tạo đối tượng, các thành phần – hàm. Mô tả đề
Main sống trong 1 ngôi làng yên bình , mọi người đều hạnh phúc . Những bỗng
nhiên một hôm , một biến cố lớn ập vào tới làng của main . Một đạo quân của
quân đoàn Quỷ Vương đã càn quét , đốt phá , sát hại người trong làng . Chỉ có
duy nhất main còn sống và từ đó main quyết định rèn luyện để nâng cao sức
mạnh để trả thù Quỷ Vương. Sau đây là màn đánh quái nâng cao sức mạnh của Main :
· Xây dựng class Character gồm name, type,level , coins,hp, physical_dame, magic_dame.
(name và type là kiểu dữ liệu string, level , coins , hp , physical_dame , magic_dame đều
là kiểu dữ liệu long long) , ) +Trong đó:
· Type của main gồm 2 loại: mage( physical_dame < magic_dame) and
warrior(physical_dame > magic_dame)
· Trong đó type của monster gồm 3 loại: normal, elite, boss
+Level của main ban đầu không vượt quá 10
· Dame tổng được tính bằng công thức:
+ Dame= (physical_dame+magic_dame)*level
· Xây dựng class Hero kế thừa từ Character:
· Thêm biến Totalexp(mặc định là 0 , kiểu dữ liệu long long)
+Sau khi đánh bại một monster, Totalexp tăng theo công thức: ·
Totalexp=Totalexp+(hp_monster+dame_monster)*(level_monster)/level
· Exp cần để nâng cấp: level hiện tại *100 (khi main đang level 7 thì cần 700
exp để lên level 8) Nhóm:Nhóm 3 Quản lý khách sạn Trang [3]
HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2023-2024/3 ·
Khi Totalexp >= Exp cần để nâng cấp thì sẽ tăng level . ( Trước khi đánh quái tiếp theo
thì Totalexp phải nhỏ hơn Exp cần để nâng cấp để tăng được tối đa level ) ·
Level tăng thì chỉ số của main được cộng thêm như sau:
+Hp hiên tại tăng thêm level_tăng *100
+Nếu main là warrior: -
Physical_dame tăng thêm 70 * level_tăng
- Magic_dame tăng thêm 50 * level_tăng
+Nếu main là mage thì :
- Physical_dame tăng thêm 50 * level_tăng
- Magic_dame tăng thêm 70 * level_tăng
· Đánh bại monster thì tiền của quái thuộc về main. ·
Xây dựng class Monster kế thừa Character
· Tăng các chỉ số hp, physical_dame và magic_dame nếu type là normal thì
không tăng , elite thì tăng 50% , boss thì tăng 100%
*Lưu ý: Main sẽ đánh quái theo thứ tự nhập nhập vào, và trong cuộc chiến
main luôn là người đánh trước Nhóm:Nhóm 3 Quản lý khách sạn Trang [4]
HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2023-2024/3 Sơ đồ lớp minh họa Dữ liệu kiểm thử INPUT
- Dòng đầu tiên là các thông tin cơ bản của main: name, type, level, coins, hp, physical_dame,mgaic_dame.
- Dòng thứ hai là số lượng (N) các monster mà main phải đối đầu
- N dòng tiếp theo gồm các thông tin cơ bản của các monster. OUTPUT
- Xuất các thông tin cơ bản của main và các quái vật: name, type, level, coins, hp
- Nếu main thắng thì ghi “Win” và các thông tin cơ bản của main như dòng trên
Nếu main thua thì ghi “Lose ” và trận main thua. Ví dụ:”Match 2”
(Coi ví dụ bên dưới để biết thêm chi tiết) Input Output Nhóm:Nhóm 3 Quản lý khách sạn Trang [5]
HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2023-2024/3 John warrior 1 10 80 40 15
{ John }:{ warrior }:{ 1 }:{ 10 }:{ 80 } 1
{ Slime }:{ elite }:{ 1 }:{ 8 }:{ 80 } Slime elite 1 8 80 20 10 Lose: Match 1 Wiro warrior 1 15 1500 60 25
{ Wiro }:{ warrior }:{ 1 }:{ 15 }:{ 1500 } 2
{ Gargoyle }:{ normal }:{ 1 }:{ 30 }:{ 980 }
Gargoyle normal 1 30 980 70 30
{ Skeleton }:{ boss }:{ 3 }:{ 12 }:{ 490 } Skeleton boss 3 12 490 125 20 Win
{ Wiro }:{ warrior}:{ 6 }:{ 57 }:{ 2400 } Bài giải mẫu
Tên bài trên Upcoder: [Phần thêm bài tập mới -> Chờ duyệt] OOPGAME_TUNR_BASED
Bộ testcase (ít nhất 8 test case bao phủ tất cả các đối tượng) Input Output John warrior 1 10 80 40 15
{ John }:{ warrior }:{ 1 }:{ 10 }:{ 80 } 1
{ Slime }:{ elite }:{ 1 }:{ 8 }:{ 80 } Slime elite 1 8 80 20 10 Lose: Match 1
Link codepad mẫu trên Upcoder
www.upcoder.xyz/index.php/problems/mysubmit/WhHns2690
Mã nguồn code mẫu kèm ghi chú giải thích #include #include Nhóm:Nhóm 3 Quản lý khách sạn Trang [6]
HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2023-2024/3 using namespace std; class DichVu { protected:
string maDichVu; // Mã dịch vụ
string tenDichVu; // Tên dịch vụ
int giaDichVu[100]; // Giá dịch vụ
int soluongdichvu; // Số´lượng dịch vụ public: }; class PhongTro { protected: string maSoPhong; // Mã số´phòng int songaythue; // Số´ngày thuê phòng int giaPhong; // Giá phòng string loaiPhong; // Loại phòng public:
PhongTro(string maSoPhong = "", int songaythue = 0, int giaPhong = 0, string loaiPhong = "")
: maSoPhong(maSoPhong), songaythue(songaythue), giaPhong(giaPhong),
loaiPhong(loaiPhong) {} // Hàm k ho‘ i tạo
int tinhTienPhong() // Hàm tính tố‘ng t i ê `n phòng { return songaythue * giaPhong; } };
class QuanLy : public PhongTro, public DichVu { public:
// Quá t a‘ i toán tư‘nhập c u‘ a QuanLy
friend istream &operator>>(istream &is, QuanLy &ql) {
is >> ql.maSoPhong; // Số´phòng
is >> ql.songaythue; // Số´ngày thuê
cout << "Nhap loai phong (don/doi): ";
is >> ql.loaiPhong; // Loại phòng
ql.giaPhong = (ql.loaiPhong == "don") ? 200000 : 250000; // Giá phòng tuy theo loại phòng
is >> ql.soluongdichvu; // số´lượng dịch vụ
for (int i = 0; i < ql.soluongdichvu; i++) { is >> ql.maDichVu; // Mã dịch vụ cin.ignore(); getline(is, ql.tenDichVu); // Tên dịch vụ
if (ql.tenDichVu == "nuoc loc") {
ql.giaDichVu[i] = 10000; // N ê ´u là nước lọc thì 10k Nhóm:Nhóm 3 Quản lý khách sạn Trang [7]
HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2023-2024/3 }
else if (ql.tenDichVu == "bun rieu" || ql.tenDichVu == "sua tam" || ql.tenDichVu == "dau goi") {
ql.giaDichVu[i] = 25000; // N ê ´u là bún riêu , sữa t ắ ´m , d ầ `u gọi thì 25k }
else if (ql.tenDichVu == "ban chai") { ql.giaDichVu[i] = 20000; // Nê´u là b a‘n cha ‘i thì 20k } } return is; }
int tinhTongTien() // Hàm tính tố‘n g tiê `n dịch vụ và t iê`n phòng { int tongTienDichVu = 0;
for (int i = 0; i < soluongdichvu; i++) {
tongTienDichVu += giaDichVu[i]; }
return tinhTienPhong() + tongTienDichVu;
// Tố‘ng tiê `n phòng và dịch vụ }
// Quá ta‘ i toán tư‘xuầ´ t cu‘a QuanLy
friend ostream &operator<<(ostream &os, QuanLy &ql) {
os << ql.tinhTongTien() << endl; return os; } }; int main() { QuanLy quanLy[100];
int soluong; // Số´lượng phòng
cin >> soluong; // Nhập số´lượng phòng
for (int i = 0 ; i < soluong ; i++){ cin >> quanLy[i]; cout << quanLy[i]; } return 0; } Nhóm:Nhóm 3 Quản lý khách sạn Trang [8]
HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2023-2024/3 Nhóm:Nhóm 3 Quản lý khách sạn Trang [9]
Document Outline
- MỤC LỤC
- Sơ đồ lớp minh họa 3
- Dữ liệu kiểm thử 4
- Bài giải mẫu 4
- GIỚI THIỆU ĐỀ TÀI
- LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
- Mô tả đề