C++ 打怪游戏 原创 小镇1.0--降生
生活随笔
收集整理的這篇文章主要介紹了
C++ 打怪游戏 原创 小镇1.0--降生
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
小鎮1.0<降生>
小鎮系列已經更新請查看最新版本
小鎮2.0<超能技?!>
小鎮3.0<尋寶時代>
小鎮4.0<機甲紀元>
小鎮5.0<怪物狂歡季>先導版
小鎮5.0<怪物狂歡季>正式版
此游戲是本人創意一時所寫出來的
如有BUG,麻煩提出或評論謝謝.
創作不易,求支持.
如有更好的寫法,麻煩私信謝謝
你降生在一個看似平凡,卻暗藏…的小鎮
現在你長大了,你從小居住的小鎮遭到了
奇怪的襲擊,你義無反顧的站了出來
新的英雄故事已經開始,
結局由你書寫…
代碼如下:
#include<bits/stdc++.h> #include<windows.h> void wuqidian();//武器店 void yaopindian();//藥品店 // { void maoxian();//冒險 void daguai();//大怪void xiaoguai();//小怪void BOOS(); //boos void ziliao(); // }void zhuangtai();//狀態 //}int shengming=1000,shanghai=50,fangyu=10,jinbi=200,jijiubao=0,jingyan=100;//主角資料int xhp,xsh,xjb,xdj,xfy;//小怪 int dhp,dsh,djb,ddj,dfy;//大怪int boosHP,boosSH,boosfy;//BOOS using namespace std; int main() {system("cls");system("color fc");int i=0,n=0,l=1; while (l) {cout<<" [小鎮1.0<降生>]\n";cout<<"-------------------------------------------------------------------------------\n" ; cout<<"輸入 1 冒險"<<endl;cout<<"輸入 2 武器店"<<endl;cout<<"輸入 3 藥品店"<<endl; cout<<"輸入 4 自己狀態"<<endl; cout<<"輸入 5 查看游戲資料"<<endl;cout<<"輸入 0 結束游戲"<<endl; cin>>l;switch(l) {case 1:cout<<"-------------------------------------------------------------------------------\n" ; maoxian();cout<<"-------------------------------------------------------------------------------\n" ; break; case 2:cout<<"-------------------------------------------------------------------------------\n" ; wuqidian();cout<<"-------------------------------------------------------------------------------\n" ; break;case 3:cout<<"-------------------------------------------------------------------------------\n" ; yaopindian();cout<<"-------------------------------------------------------------------------------\n" ; break;case 4:cout<<"-------------------------------------------------------------------------------\n" ; zhuangtai();cout<<"-------------------------------------------------------------------------------\n" ; break;case 5:cout<<"-------------------------------------------------------------------------------\n" ; ziliao();cout<<"-------------------------------------------------------------------------------\n" ; break;case 0:break; default:cout<<"不要亂輸入"<<endl;} } }void maoxian() {int i=0,n=0,l=1;while(l){cout<<"輸入 1 打小怪(1~5級)"<<endl;cout<<"輸入 2 打大怪(5~10級)"<<endl;cout<<"輸入 3 打BOOS(15級)"<<endl; cout<<"輸入 0 返回小鎮"<<endl; cin>>l; switch(l){case 1:cout<<"-------------------------------------------------------------------------------\n" ;xiaoguai();if(shengming<=0){break;}cout<<"-------------------------------------------------------------------------------\n" ;break;case 2:cout<<"-------------------------------------------------------------------------------\n" ;if(jingyan/100<5){cout<<"等級過低"<<endl;cout<<"-------------------------------------------------------------------------------\n" ; break;} daguai();if(shengming<=0){break;}cout<<"-------------------------------------------------------------------------------\n" ;break;case 3:cout<<"-------------------------------------------------------------------------------\n" ;if(jingyan/100<10){cout<<"等級過低"<<endl;cout<<"-------------------------------------------------------------------------------\n" ; break;} cout<<"-------------------------------------------------------------------------------\n" ;BOOS();if(shengming<=0){Sleep(1000);break;}if(boosHP==0){break; }cout<<"-------------------------------------------------------------------------------\n" ;case 0:break; default:cout<<"不要亂輸入"<<endl; cout<<"-------------------------------------------------------------------------------\n" ; } } } void zhuangtai() {cout<<"你的生命為:"<<shengming<<endl;cout<<"你的金幣為:"<<"$"<<jinbi<<endl;cout<<"你的防御為:"<<fangyu<<endl;cout<<"你的傷害為:"<<shanghai<<endl;cout<<"你的經驗為(100經驗=1級):"<<jingyan<<endl;cout<<"你的等級為:"<<jingyan/100<<endl; } void xiaoguai() {if(shengming<=0){return xiaoguai();}int i=1,n=0,l=1,taopao,cg;char r,w; srand(static_cast<unsigned int >(time(0))) ; int randomNumber=rand(); xdj=(randomNumber% 5)+1;cg=(randomNumber% 5)+1;xhp=xdj*100;xsh=xdj*20;xjb=xdj*10;xfy=xdj*5; cout<<"你面對的是"<<xdj<<"級小怪,是否迎戰(y/n)"<<endl;cin>>r;if(r=='y'){while(shengming>0&&xhp>0&&l!=123&&i<=15){cout<<"第"<<i<<"回合"<<endl;cout<<"你的生命:"<<shengming<<endl;cout<<"小怪生命:"<<xhp<<endl;cout<<"輸入1攻擊(造成攻擊(你的傷害-怪的傷害),防御減半)"<<endl;cout<<"輸入2防御(不造成攻擊,防御*2)"<<endl; cout<<"輸入3使用技能(此功能將在小鎮2.0開啟,敬請期待)"<<endl;cout<<"輸入4逃跑(20%幾率,逃跑失敗也要減少血(無視防御),實在打不過撐過15回合自動結束)"<<endl; taopao=(randomNumber% 5)+1;cin>>l;switch(l){case 1:if((fangyu/2)<xsh){shengming-=xsh-fangyu/2; } if(shanghai>xfy ) {xhp-=shanghai-xfy; } i++; break; case 2: if(fangyu*2<xsh){shengming-=xsh-fangyu*2; } i++; break;case 3:cout<<"敬請期待....\n";break;case 4:if(taopao=1){cout<<"逃跑成功!!!"<<endl; l=123;} break; } }if(shengming<=0){cout<<"你死了"<<endl;Sleep(1000);return xiaoguai(); }if(xhp<=0){cout<<"你打敗了"<<xdj<<"級小怪"<<endl;cout<<"獎勵金幣"<<xjb<<"$"<<endl;jinbi+=xjb; cout<<"獎勵經驗"<<xdj*10<<endl;jingyan+=xdj*10; }}else{cout<<"你已逃跑"<<endl; } } void daguai() {if(shengming<=0){return daguai();}int i=1,n=0,l=1,taopao,cg;char r,w; srand(static_cast<unsigned int >(time(0))) ; int randomNumber=rand(); ddj=(randomNumber% 5)+6;dhp=ddj*100;dsh=ddj*20;djb=ddj*10;dfy=ddj*5; cout<<"你面對的是"<<ddj<<"級大怪,是否迎戰(y/n)"<<endl;cin>>r;if(r=='y'){while(shengming>0&&dhp>0&&l!=123&&i<=20){cout<<"第"<<i<<"回合"<<endl;cout<<"你的生命:"<<shengming<<endl;cout<<"大怪生命:"<<dhp<<endl;cout<<"輸入1攻擊(造成攻擊(你的傷害-怪的傷害),防御減半)"<<endl;cout<<"輸入2防御(不造成攻擊,防御*2)"<<endl; cout<<"輸入3使用技能(此功能將在小鎮2.0開啟,敬請期待)"<<endl;cout<<"輸入4逃跑(20%幾率,逃跑失敗也要減少血(無視防御),實在打不過撐過20回合自動結束)"<<endl; taopao=(randomNumber% 5)+1;cin>>l;switch(l){case 1:if((fangyu/2)<dsh){shengming-=dsh-fangyu/2; } if(shanghai>dfy ) {dhp-=shanghai-xfy; } i++; break; case 2: if(fangyu*2<dsh){shengming-=dsh-fangyu*2; } i++; break;case 3:cout<<"敬請期待....\n";break;case 4:if(taopao=3){cout<<"逃跑成功!!!"<<endl; l=123;} break; } }if(shengming<=0){cout<<"你死了"<<endl;Sleep(1000);return daguai(); }if(dhp<=0){cout<<"你打敗了"<<ddj<<"級大怪"<<endl;cout<<"獎勵金幣"<<djb<<"$"<<endl;cout<<"獎勵經驗"<<ddj*10<<endl;jinbi+=djb; jingyan+=ddj*10; }}else{cout<<"你已逃跑"<<endl; } } void BOOS() {int i=1,n=0,l=1,taopao,cg;srand(static_cast<unsigned int >(time(0))) ; int randomNumber=rand(); boosHP=5000;boosSH=700;boosfy=500;cout<<"你面對的是"<<"BOOS"<<endl;while(shengming>0&&boosHP>0&&l!=123&&i<=30){cout<<"第"<<i<<"回合"<<endl;cout<<"你的生命:"<<shengming<<endl;cout<<"BOOS生命:"<<boosHP<<endl;cout<<"輸入1攻擊(造成攻擊(你的傷害-怪的傷害),防御減半)"<<endl;cout<<"輸入2防御(不造成攻擊,防御*2)"<<endl; cout<<"輸入3使用技能(此功能將在小鎮2.0開啟,敬請期待)"<<endl;cout<<"輸入4逃跑(10%幾率,逃跑失敗也要減少血(無視防御),實在打不過撐過30回合自動結束)"<<endl; taopao=(randomNumber%10)+1;cin>>l;switch(l){case 1:if((fangyu/2)<boosSH){shengming-=boosSH-fangyu/2; } if(shanghai>boosfy ) {boosHP-=shanghai-boosfy; } i++; break; case 2: if(fangyu*2<boosSH){shengming-=boosSH-fangyu*2; } i++; break;case 3:cout<<"敬請期待....\n";break;case 4:if(taopao=1){cout<<"逃跑成功!!!"<<endl; l=123;} break; } }if(shengming<=0){cout<<"你死了"<<endl;Sleep(1000);return BOOS(); }if(boosHP<=0){cout<<"你打敗了BOOS"<<endl;boosHP=0; } } void wuqidian() {int i=1,n=0,l=1;char w,r; while(l) { cout<<"武器店規則:傷害不能疊加!!!,例如:假如你目前傷害50 ,購買匕首后,傷害不會+20,而是替換成20"<<endl;cout<<"你目前傷害:"<<shanghai<<"目前防御:"<<fangyu<<endl; Sleep(250); cout<<"歡迎來到 武器店!"<<endl; cout<<"1、買匕首($10加40攻擊力)"<<endl; cout<<"2、買巨劍($50加60攻擊力)"<<endl; cout<<"3、買光刃($100加120攻擊力)"<<endl; cout<<"4、買X光刃($150加180攻擊力)"<<endl; cout<<"5、買木盾($200加100防御力)"<<endl; cout<<"6、買鐵盾($500加200防御力)"<<endl; cout<<"0、離開武器店"<<endl; cin>> l; switch(l) { case 1 : if(jinbi<10) {cout<<"你的錢不夠"<<endl; break;} else{cout<<"購買成功!"<<endl;//錢足夠時返回True shanghai=40; jinbi-=10; cout<<"你的傷害現在為"<<shanghai;cout<<"-------------------------------------------------------------------------------\n" ; break;} case 2 : if(jinbi<50) { cout<<"你的錢不夠"<<endl;//錢不夠時返回Flase break;} else {cout<<"購買成功!"<<endl; shanghai=60; jinbi-=50; cout<<"你的傷害現在為"<<shanghai; cout<<"-------------------------------------------------------------------------------\n" ; break; } case 3 : if(jinbi<100) {cout<<"你的錢不夠"<<endl;//錢不夠時返回Flase break;}else {cout<<"購買成功!"<<endl; shanghai=120; jinbi-=100; cout<<"你的傷害現在為"<<shanghai;cout<<"-------------------------------------------------------------------------------\n" ; break; } case 4 :if(jinbi<150) {cout<<"你的錢不夠"<<endl;//錢不夠時返回Flase break;}else{cout<<"購買成功!"<<endl; shanghai=180; jinbi-=150; cout<<"你的傷害現在為"<<shanghai; cout<<"-------------------------------------------------------------------------------\n" ; break; } case 5 : if(jinbi<200) {cout<<"你的錢不夠"<<endl;//錢不夠時返回Flase break;}else{cout<<"購買成功!"<<endl; fangyu=100; jinbi-=200; cout<<"你的防御現在為"<<fangyu; cout<<"-------------------------------------------------------------------------------\n" ; break; } case 6: if(jinbi<500) {cout<<"你的錢不夠"<<endl;//錢不夠時返回Flase break;}else {fangyu=200; jinbi-=500; cout<<"你的防御現在為"<<fangyu; cout<<"-------------------------------------------------------------------------------\n" ; break; } case 0:break;default: cout<<"看清楚"<<endl; break; } }} void yaopindian() {int i=1,n=0,l=1;char w,r; while(l) { cout<<"歡迎來到 武器店!"<<endl; cout<<"1、壞藥水(小)($50加50血)"<<endl; cout<<"2、一般的藥水($100加100血)"<<endl; cout<<"3、正常的藥水($150加200血)"<<endl; cout<<"4、好藥水 ($200加300血)"<<endl; cout<<"5、優質藥水 ($500加300血,50點防御)"<<endl; cout<<"6、神圣藥水 ($700加400血,50點防御,100點攻擊(+100))"<<endl; cout<<"0、離開藥品店"<<endl; cin>> l; switch(l) { case 1 : if(jinbi<50) {cout<<"你的錢不夠"<<endl; break;} else{cout<<"購買成功!"<<endl; shengming+=50; jinbi-=50; break;} case 2 : if(jinbi<100) { cout<<"你的錢不夠"<<endl; break;} else {cout<<"購買成功!"<<endl; shengming+=100; jinbi-=100; break; } case 3 : if(jinbi<150) {cout<<"你的錢不夠"<<endl;break;}else {cout<<"購買成功!"<<endl; shengming+=200; jinbi-=150; break; } case 4 :if(jinbi<200) {cout<<"你的錢不夠"<<endl;break;}else{cout<<"購買成功!"<<endl; shengming+=300; jinbi-=200; break; } case 5 : if(jinbi<500) {cout<<"你的錢不夠"<<endl;break;}else{cout<<"購買成功!"<<endl; shengming+=300; fangyu+=50; jinbi-=500; break; } case 6: if(jinbi<700) {cout<<"你的錢不夠"<<endl; break;}else {shengming+=400; fangyu+=50; jinbi-=700; break; } case 0:break;default: cout<<"看清楚"<<endl; break; } } } void ziliao() {cout<<"游戲講述的是一個小鎮有一天被一群怪包圍了,作為鎮中唯一的一名戰士,你勇敢的站在了小鎮的一線,目標:擊敗BOOS"<<endl; }求點評!!謝謝
總結
以上是生活随笔為你收集整理的C++ 打怪游戏 原创 小镇1.0--降生的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 点菜宝
- 下一篇: 破解“超级穿海”工程难题,BIM+3D