用C++語言寫遊戲——打怪小遊戲

cnyali_ljf發表於2016-05-07

想玩遊戲嗎?

就到某位神犇這來吧!

這會告訴你很多遊戲寫法!

今天,神犇就開始書寫第二期——打怪小遊戲!!!

很容易,只需要用腦袋想想即可,READY——GO!

我也希望大家多多捧場哦~~~

有一點點BUG,敬請諒解!

#include <iostream> 
using namespace std; 
double shengmingli=2000;//定義主角初始生命力 
int gongjili=150;//定義主角初始攻擊力 
int fangyuli=200;//定義主角初始防禦力 
int money=20;//定義主角初始金錢數量 
bool guoguan;//定義是否通關判定 
void wuqidian();//定義武器店函式 
void yaodian();//定義藥店函式 
void guaiwu1();//定義小怪物函式 
void guaiwu2();//定義大怪物函式 
int main() 
{ 
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
int xiaozhen;//定義選擇專案 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
cin>>xiaozhen; 
while(xiaozhen!=5)//輸入5時退出遊戲 
{ 
if(shengmingli<=0)//主角生命力小於等於0時遊戲結束 
{ 
cout<<"你死啦!"<<endl; 
break; 
} 
if(guoguan) 
{ 
cout<<"恭喜通關!"<<endl; 
break; 
} 
if(xiaozhen==6)//輸入6可檢測自己的狀態 
{ 
cout<<"你的生命力:"<<shengmingli<<endl; 
cout<<"你的攻擊力:"<<gongjili<<endl; 
cout<<"你的防禦力:"<<fangyuli<<endl; 
cout<<"你擁有的錢:"<<money<<endl; 
} 
else 
switch(xiaozhen) 
{ 
case 1 : wuqidian();break; 
case 2 : yaodian();break; 
case 3 : guaiwu1();break; 
case 4 : guaiwu2();break; 
default : cout<<"請不要亂選!"<<endl;break; 
} 
cin>>xiaozhen; 
} 
if(xiaozhen==5) 
{ 
cout<<"正在退出遊戲……"<<endl; 
} 
cin.get(); 
cin.get(); 
return 0; 
} 
void wuqidian() 
{ 
cout<<"歡迎來到武器店!"<<endl; 
cout<<"1、買小刀(1M加2攻擊力)"<<endl; 
cout<<"2、買短劍(2M加20攻擊力)"<<endl; 
cout<<"3、買大砍刀(5M加40攻擊力)"<<endl; 
cout<<"4、買雙節棍(7M加60攻擊力)"<<endl; 
cout<<"5、買盾牌(2M加30防禦力)"<<endl; 
cout<<"6、買鎧甲(5M加60防禦力)"<<endl; 
cout<<"7、離開武器店"<<endl; 
int wuqidian; 
cin>>wuqidian; 
while(wuqidian!=7)//輸入7時結束函式 
{ 
switch(wuqidian) 
{ 
case 1 : if(money<10) 
cout<<"你的錢不夠"<<endl;//錢不夠時返回Flase 
else  
cout<<"購買成功!"<<endl;//錢足夠時返回True 
gongjili+=2; 
money-=1; 
break; 
case 2 : if(money<80) 
cout<<"你的錢不夠"<<endl; 
else  
cout<<"購買成功!"<<endl; 
gongjili+=20; 
money-=80; 
break; 
case 3 : if(money<140) 
cout<<"你的錢不夠"<<endl; 
    else  
cout<<"購買成功!"<<endl; 
gongjili+=40; 
money-=140; 
break; 
case 4 : if(money<200) 
cout<<"你的錢不夠"<<endl; 
else  
cout<<"購買成功!"<<endl; 
gongjili+=60; 
money-=200; 
break; 
case 5 : if(money<60) 
cout<<"你的錢不夠"<<endl; 
else  
cout<<"購買成功!"<<endl; 
fangyuli+=30; 
money-=60; 
break; 
fangyuli+=60; 
money-=100; 
break; 
default : cout<<"無"<<endl; 
    break; 
}  
cin>>wuqidian; 
} 
if(wuqidian==7) 
{	  //返回main()主函式 
cout<<"歡迎下次再來!"<<endl; 
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
} 
} 
/* 
yaodian()的設定與wuqidian()相同,可參照閱讀. 
*/ 
void yaodian() 
{ 
cout<<"歡迎來到藥品店!"<<endl; 
cout<<"1、買1號補血藥(10M加200生命)"<<endl; 
cout<<"2、買2號補血藥(50M加1000生命力)"<<endl; 
cout<<"3、買3號補血藥(100M加2200生命力)"<<endl; 
cout<<"4、離開武器店"<<endl; 
int yaodian; 
cin>>yaodian; 
while(yaodian!=4) 
{ 
switch(yaodian) 
{ 
case 1 : if(money<10) 
cout<<"你的錢不夠"<<endl; 
else  
cout<<"購買成功!"<<endl; 
shengmingli+=200; 
money-=10; 
break; 
case 2 : if(money<50) 
cout<<"你的錢不夠"<<endl; 
else  
cout<<"購買成功!"<<endl; 
shengmingli+=1000; 
money-=50; 
break; 
case 3 : if(money<100) 
cout<<"你的錢不夠"<<endl; 
else  
cout<<"購買成功!"<<endl; 
shengmingli+=2200; 
money-=100; 
break; 
default : cout<<"無"<<endl; 
break; 
} 
cin>>yaodian; 
} 
if(yaodian==4) 
{	   
cout<<"歡迎下次再來!"<<endl;	   
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
} 
} 
/*這裡是兩個戰鬥函式,使用指標來處理.避免造成記憶體崩潰.*/ 
void guaiwu1() 
{ 
cout<<"開始與小怪物戰鬥!!!"<<endl; 
double* g_shengmingli=new double;//定義怪物生命 
int* g_gongjili=new int;//定義怪物攻擊力 
int* g_fangyuli=new int;//定義怪物防禦力 
    int* g_money=new int;//定義怪物金錢 
*g_shengmingli=100; 
*g_gongjili=5; 
*g_fangyuli=3; 
*g_money=5; 
double* tongji1=new double;//用來計算主角對怪物的殺傷 
double* tongji2=new double;//用來計算怪物對主角的殺傷 
*tongji1=0; 
*tongji2=0; 
int* huihe=new int;//定義回合數 
*huihe=1; 
cout<<"你開始對小怪物進行攻擊!"<<endl; 
int* xuanze=new int; 
/* 
攻擊計算公式 
殺傷=攻擊力*2-防禦力 
玩家每回合可以選擇攻擊與逃跑 
*/ 
while((*g_shengmingli)>0 && shengmingli>0 && (*xuanze)!=2) 
{ 
cout<<"現在是"<<"第"<<*huihe<<"回合!"<<endl; 
cout<<"請選擇你的動作:\n"; 
cout<<"1、攻擊\n2、逃跑\n"; 
cin>>*xuanze; 
switch((*xuanze)) 
{ 
case 1 : cout<<"你對小怪物發動了攻擊!"<<endl; 
*g_shengmingli-=gongjili*2-(*g_fangyuli); 
*tongji1=gongjili*2-(*g_fangyuli); 
cout<<"你打掉了小怪物"<<*tongji1<<"的生命!"<<endl; 
cout<<"小怪物還剩"<<(*g_shengmingli)-(*tongji1)<<"點生命"<<endl; 
shengmingli-=(*g_gongjili)*2-fangyuli; 
*tongji2=(*g_gongjili)*2-fangyuli; 
cout<<"小怪物對你發動了攻擊!"<<endl; 
cout<<"小怪物打掉了你"<<*tongji2<<"的生命!"<<endl; 
cout<<"你還剩"<<shengmingli-(*tongji2)<<"點生命"<<endl;break; 
case 2 : cout<<"你決定逃跑!"<<endl; 
cout<<"逃跑成功!"<<endl;continue; 
default : cout<<"請不要亂選!"<<endl; 
} 
(*huihe)++; 
} 
if((*g_shengmingli)<=0) 
{//殺死怪物後的返回 
cout<<"小怪物被你殺死了!你真厲害!!!"<<endl; 
money+=(*g_money); 
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
} 
else 
if(shengmingli<=0) 
{//被怪物殺死後的返回 
cout<<"你被小怪物殺死了!遊戲結束!!!"<<endl; 
} 
else 
if((*xuanze)==2) 
{//逃跑的返回 
cout<<"你逃回了小鎮!"<<endl; 
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
} 
delete g_shengmingli; 
delete g_gongjili; 
delete g_fangyuli; 
delete g_money; 
delete tongji1; 
delete tongji2; 
} 
/* 
設定均與void函式guaiwu1()相同,可參照上例閱讀. 
*/ 
void guaiwu2() 
{ 
cout<<"開始與大怪物戰鬥!!!"<<endl; 
double* g_shengmingli=new double; 
int* g_gongjili=new int; 
int* g_fangyuli=new int; 
*g_shengmingli=3600; 
*g_gongjili=500; 
*g_fangyuli=500; 
double* tongji1=new double; 
double* tongji2=new double; 
*tongji1=0; 
*tongji2=0; 
int* huihe=new int; 
*huihe=1; 
cout<<"你開始對大怪物進行攻擊!"<<endl; 
int* xuanze=new int; 
while((*g_shengmingli)>0 && shengmingli>0 && (*xuanze)!=2) 
{ 
cout<<"現在是"<<"第"<<*huihe<<"回合!"<<endl; 
cout<<"請選擇你的動作:\n"; 
cout<<"1、攻擊\n2、逃跑\n"; 
cin>>*xuanze; 
switch((*xuanze)) 
{ 
case 1 : cout<<"你對大怪物發動了攻擊!"<<endl; 
*g_shengmingli-=gongjili*2-(*g_fangyuli); 
*tongji1=gongjili*2-(*g_fangyuli); 
cout<<"你打掉了大怪物"<<*tongji1<<"的生命!"<<endl; 
cout<<"大怪物還剩"<<(*g_shengmingli)-(*tongji1)<<"點生命"<<endl; 
shengmingli-=(*g_gongjili)*2-fangyuli; 
*tongji2=(*g_gongjili)*2-fangyuli; 
cout<<"大怪物對你發動了攻擊!"<<endl; 
cout<<"大怪物打掉了你"<<*tongji2<<"的生命!"<<endl; 
cout<<"你還剩"<<shengmingli-(*tongji2)<<"點生命"<<endl;break; 
case 2 : cout<<"你決定逃跑!"<<endl; 
cout<<"逃跑成功!"<<endl;continue; 
default : cout<<"請不要亂選!"<<endl; 
} 
(*huihe)++; 
} 
if((*g_shengmingli)<=0) 
{ 
    cout<<"大怪物被你殺死了!你真厲害!!!"<<endl; 
guoguan=true; 
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
} 
else 
if(shengmingli<=0) 
{ 
cout<<"你被大怪物殺死了!遊戲結束!!!"<<endl; 
} 
else 
if((*xuanze)==2) 
{ 
cout<<"你逃回了小鎮!"<<endl; 
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
} 
delete g_shengmingli; 
delete g_gongjili; 
delete g_fangyuli; 
delete tongji1; 
delete tongji2; 
}
容易吧!只需用c++執行即可,這樣,你就可以盡情裝B了!!!

希望你可以一直追蹤哦~~~

相關文章