Nội dung Bài tập
Mã:
GK_OOP_Game_Wibu
Tên:
OOPGAME_TURN_BASED
Dạng thi:
oi
Thang điểm:
10 điểm
Giới hạn thời gian:
1 giây
Giới hạn bộ nhớ:
256 MB
Được tạo bởi:
4901104079
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 1 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 nhà ta còn sống và từ đó main quyết định rèn luyện để nâng cao sức mạnh nhằm mục đích tiêu diệt quân đoàn Quỷ Vương để trà thù . 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 , gold_coins , hp , physical_dame , magic_dame.
     ( name và type là kiểu dữ liệu string , level , gold_coins , physical_dame , magic_dame đều là kiểu dữ liệu long long )
-Trong đó 
   + type của main gồm 2 loại : warrior và mage.
   + type của monster gồm 3 loại : normal , elite , boss
   +Level ban đầu của main không vượt quá 10
   + Dame tổng được tính theo 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  = 0 , Totalexp tăng theo công thức :
          Totalexp = Totalexp + (hp_monster + dame_monster ) * (level_monster)/level ( của hero)

      + Kinh nghiệm cần để nâng cấp = level hiện tại * 100 ( ví dụ main đang level 2 thì cần đạt 200 Totalexp để lên level 3 )
      + Khi Totalexp >= kinh nghiệm 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 kinh nghiệm cần để nâng cấp để có thể tận dụng được tối đa level )
      + Mỗi lần tăng 1 level thì chỉ số của main sẽ được nâng cấp như sau :
         Hp = Hp + level * 100;
         +Nếu Main là warrior :
            Physical_dame = Physical_dame + level * 70
            Macgic_dame = magic_dame + level * 50
          + Nếu main là mage :
            Physical_dame = Physical_dame + level * 50
            Macgic_dame = magic_dame + level * 70
      +Đánh bại monster thì gold_coins của monster sẽ 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 ý : Vì đây là game turn_base nên sẽ là đánh theo lượt , Main sẽ luôn là người đánh trước và đánh theo thứ tự nhập vào.
input :
+ Nhập vào thông tin và chỉ số của Main 
+ Nhập số lượng quái vật ( <= 50)
+ Nhập thong tin và chỉ số cho từng quái vật
Ouput : 
+ Xuất thông tin của Main và quái vật theo thứ tự nhập vào .(như ví dụ dưới )
+ Nếu Main giết hết quái vật thì xuất Win (xong xuống dòng ) và xuất thông tin của Main như ví dụ dưới( bao gồm name ,type , level , gold_coins ,hp )
+ Nếu main thua thì xuất : Lose:Match  x( x là tại trận mà main thua)
Ví dụ 1:

Input

Output

John warrior 1 10 80 40 15 

Slime elite 1 8 80 20 10 

{ John }:{ warrior }:{ 1 }:{ 10 }:{ 80 }  

{ Slime }:{ elite }:{ 1 }:{ 8 }:{ 80 }  

Lose: Match 1 


Ví dụ 2:

Input

Output

Wiro warrior 1 15 1500 60 25 

Gargoyle normal 1 30 980 70 30 

Skeleton boss 3 12 490 125 20 

{ Wiro }:{ warrior }:{ 1 }:{ 15 }:{ 1500 }  

{ Gargoyle }:{ normal }:{ 1 }:{ 30 }:{ 980 }  

{ Skeleton }:{ boss }:{ 3 }:{ 12 }:{ 490 }  

Win 

{ Wiro }:{ warrior}:{ 6 }:{ 57 }:{ 2400 } 



Ví dụ 3:

Input

Output

Faker warrior 9 10 1000 500 300 

11 

Slime elite 1 10 200 20 10 

Slime elite 5 30 400 20 10 

Slime elite 10 100 600 20 10 

Slime elite 15 120 800 20 10 

Slime elite 20 113 1000 100 100 

Slime elite 20 146 1000 100 100  

Slime elite 20 155 1000 100 100  

Slime elite 25 203 1300 200 100  

Slime elite 25 360 1300 20 10  

Slime boss 30 5000 2000 500 350 

Slime boss 30 1000 1500 500 350 

{ Faker }:{ warrior }:{ 9 }:{ 10 }:{ 1000 } 

{ Slime }:{ elite }:{ 1 }:{ 10 }:{ 200 } 

{ Slime }:{ elite }:{ 5 }:{ 30 }:{ 400 } 

{ Slime }:{ elite }:{ 10 }:{ 100 }:{ 600 } 

{ Slime }:{ elite }:{ 15 }:{ 120 }:{ 800 } 

{ Slime }:{ elite }:{ 20 }:{ 113 }:{ 1000 } 

{ Slime }:{ elite }:{ 20 }:{ 146 }:{ 1000 } 

{ Slime }:{ elite }:{ 20 }:{ 155 }:{ 1000 } 

{ Slime }:{ elite }:{ 25 }:{ 203 }:{ 1300 } 

{ Slime }:{ elite }:{ 25 }:{ 360 }:{ 1300 } 

{ Slime }:{ boss }:{ 30 }:{ 5000 }:{ 2000 } 

{ Slime }:{ boss }:{ 30 }:{ 1000 }:{ 1500 } 

Win

{ Faker }:{ warrior }:{ 42 }:{ 7247 }:{ 86800 } 







    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin



Phần thảo luận