#include<iostream>
#include<time.h>
#include <Windows.h>
using namespace std;
struct Monster{
string name;
string jineng;
int level;
int blood;
int jineng_shanghai;
int jingyan;
};
struct Pet{
string name[3];
string jineng[3];
int level;
int blood;
int jineng_shanghai[3];
int level_jingyan;
};
string pet[3]={"小火龙","水蓝蓝","喵喵"};
int main(){
bool game_over=1;
srand(time(nullptr));
Pet mypet[3]={
{{"小火龙","火炎龙","火龙神"},{"喷火","火球","烈火球"},1,200,{20,50,100},0},
{{"水蓝蓝","水精灵","海之女"},{"喷水","水枪","水炎柱"},1,200,{20,50,100},0},
{{"喵喵","魔力喵","精灵王"},{"草鞭","叶龙卷","魔藤"},1,200,{20,50,100},0}
};
Monster monster[8]={
{"史莱姆","冲撞",1,100,10,30},
{"哥布林","斩击",2,200,25,35},
{"野兽人","重拳",3,300,50,40},
{"冰原狼","冰刺",4,400,60,45},
{"恶灵","毒雾",5,500,60,50},
{"无头骑士","穿刺",6,600,70,55},
{"冰凤凰","冰雨",7,700,70,60},
{"火麒麟","烈炎",8,800,80,65}
};
char moshi='0';
int mypet_number;
char choose_pet;
while(1){
if(game_over==1){
cout<<"请选择您的宠物:A:小火龙 B:水蓝蓝 C:喵喵"<<endl;
cin>>choose_pet;
if(choose_pet=='A'){
mypet_number=0;
mypet[0]={{"小火龙","火炎龙","火龙神"},{"喷火","火球","烈火球"},1,200,{20,50,100},0};
cout<<"恭喜你!成功获得小精灵\"小火龙\"!当前等级:1级"<<endl;
}
else if(choose_pet=='B'){
mypet_number=1;
mypet[1]={{"水蓝蓝","水精灵","海之女"},{"喷水","水枪","水炎柱"},1,200,{20,50,100},0};
cout<<"恭喜你!成功获得小精灵\"水蓝蓝\"! 当前等级:1级"<<endl;
}
else if(choose_pet=='C'){
mypet_number=2;
mypet[2]={{"喵喵","魔力喵","精灵王"},{"草鞭","叶龙卷","魔藤"},1,200,{20,50,100},0};
cout<<"恭喜你!成功获得小精灵\"喵喵\"!当前等级:1级"<<endl;
}
game_over=0;
}
cout<<"1.冒险模式 2.精灵之家 3.和小精灵玩游戏 4.退出游戏"<<endl;
cin>>moshi;
if(moshi=='1'){
cout<<"进入冒险模式,准备好刷怪请输入\"go\",退回菜单请输入\"no\""<<endl;
string maoxian;
cin>>maoxian;
if(maoxian=="go"){
cout<<"正在寻找怪物···"<<endl;
double start, stop, durationTime;
start = clock();
Sleep(1 * 1000); //程序延时1s
stop = clock();
int monster_number=rand()%8;
cout<<"出现怪物:"<<monster[monster_number].name<<" 等级:"<<monster[monster_number].level<<" 血量:"<<monster[monster_number].blood<<endl;
int t_monster_blood=monster[monster_number].blood;
char fight_or_again_or_exit;
while(1){
cout<<"输入f开始战斗! 输入r重新寻找! 输入e退出冒险模式!"<<endl;
cin>>fight_or_again_or_exit;
if(fight_or_again_or_exit=='f'){
while(mypet[mypet_number].blood>0&&monster[monster_number].blood>0){
int Use_jineng_or_run;
cout<<"你的回合:1.选择要使用的技能(0,1,2) 2.逃跑请输入-1"<<endl;
cin>>Use_jineng_or_run;
if(Use_jineng_or_run==0){
cout<<"使用技能:"<<mypet[mypet_number].jineng[Use_jineng_or_run]<<endl;
int mingzhong=rand()%100;
if(mingzhong>40){
cout<<"技能命中!造成"<<mypet[mypet_number].jineng_shanghai[Use_jineng_or_run]<<"伤害!"<<endl;
monster[monster_number].blood-=mypet[mypet_number].jineng_shanghai[Use_jineng_or_run];
cout<<monster[monster_number].name<<"还剩"<<monster[monster_number].blood<<"滴血"<<endl;
if(monster[monster_number].blood>0){
cout<<"对方回合! 对方使用技能:"<<monster[monster_number].jineng<<endl;
int mingzhong=rand()%100;
if(mingzhong>60){
cout<<"技能命中!造成"<<monster[monster_number].jineng_shanghai<<"伤害!"<<endl;
mypet[mypet_number].blood-=monster[monster_number].jineng_shanghai;
cout<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"还剩"<<mypet[mypet_number].blood<<"滴血"<<endl;
}
else{
cout<<"成功闪避!对方技能未命中!"<<endl;
}
}
}
else{
cout<<"对方闪避!技能未命中!"<<endl;
if(monster[monster_number].blood>0){
cout<<"对方回合! 对方使用技能:"<<monster[monster_number].jineng<<endl;
int mingzhong=rand()%100;
if(mingzhong>60){
cout<<"技能命中!造成"<<monster[monster_number].jineng_shanghai<<"伤害!"<<endl;
mypet[mypet_number].blood-=monster[monster_number].jineng_shanghai;
cout<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"还剩"<<mypet[mypet_number].blood<<"滴血"<<endl;
}
else{
cout<<"成功闪避!对方技能未命中!"<<endl;
}
}
}
}
else if(Use_jineng_or_run==1&&mypet[mypet_number].level>=4){
cout<<"使用技能:"<<mypet[mypet_number].jineng[Use_jineng_or_run]<<endl;
int mingzhong=rand()%100;
if(mingzhong>40){
cout<<"技能命中!造成"<<mypet[mypet_number].jineng_shanghai[Use_jineng_or_run]<<"伤害!"<<endl;
monster[monster_number].blood-=mypet[mypet_number].jineng_shanghai[Use_jineng_or_run];
cout<<monster[monster_number].name<<"还剩"<<monster[monster_number].blood<<"滴血"<<endl;
if(monster[monster_number].blood>0){
cout<<"对方回合! 对方使用技能:"<<monster[monster_number].jineng<<endl;
int mingzhong=rand()%100;
if(mingzhong>60){
cout<<"技能命中!造成"<<monster[monster_number].jineng_shanghai<<"伤害!"<<endl;
mypet[mypet_number].blood-=monster[monster_number].jineng_shanghai;
cout<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"还剩"<<mypet[mypet_number].blood<<"滴血"<<endl;
}
else{
cout<<"成功闪避!对方技能未命中!"<<endl;
}
}
}
else{
cout<<"对方闪避!技能未命中!"<<endl;
if(monster[monster_number].blood>0){
cout<<"对方回合! 对方使用技能:"<<monster[monster_number].jineng<<endl;
int mingzhong=rand()%100;
if(mingzhong>60){
cout<<"技能命中!造成"<<monster[monster_number].jineng_shanghai<<"伤害!"<<endl;
mypet[mypet_number].blood-=monster[monster_number].jineng_shanghai;
cout<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"还剩"<<mypet[mypet_number].blood<<"滴血"<<endl;
}
else{
cout<<"成功闪避!对方技能未命中!"<<endl;
}
}
}
}
else if(Use_jineng_or_run==2&&mypet[mypet_number].level>=8){
cout<<"使用技能:"<<mypet[mypet_number].jineng[Use_jineng_or_run]<<endl;
int mingzhong=rand()%100;
if(mingzhong>40){
cout<<"技能命中!造成"<<mypet[mypet_number].jineng_shanghai[Use_jineng_or_run]<<"伤害!"<<endl;
monster[monster_number].blood-=mypet[mypet_number].jineng_shanghai[Use_jineng_or_run];
cout<<monster[monster_number].name<<"还剩"<<monster[monster_number].blood<<"滴血"<<endl;
if(monster[monster_number].blood>0){
cout<<"对方回合! 对方使用技能:"<<monster[monster_number].jineng<<endl;
int mingzhong=rand()%100;
if(mingzhong>60){
cout<<"技能命中!造成"<<monster[monster_number].jineng_shanghai<<"伤害!"<<endl;
mypet[mypet_number].blood-=monster[monster_number].jineng_shanghai;
cout<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"还剩"<<mypet[mypet_number].blood<<"滴血"<<endl;
}
else{
cout<<"成功闪避!对方技能未命中!"<<endl;
}
}
}
else{
cout<<"对方闪避!技能未命中!"<<endl;
if(monster[monster_number].blood>0){
cout<<"对方回合! 对方使用技能:"<<monster[monster_number].jineng<<endl;
int mingzhong=rand()%100;
if(mingzhong>60){
cout<<"技能命中!造成"<<monster[monster_number].jineng_shanghai<<"伤害!"<<endl;
mypet[mypet_number].blood-=monster[monster_number].jineng_shanghai;
cout<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"还剩"<<mypet[mypet_number].blood<<"滴血"<<endl;
}
else{
cout<<"成功闪避!对方技能未命中!"<<endl;
}
}
}
}
else if(Use_jineng_or_run==-1){
cout<<"逃跑成功!";
break;
}
else{
cout<<"技能未学会或无此技能!请重新选择!" <<endl;
}
}
if(mypet[mypet_number].blood<=0) {
cout<<"冒险失败!请重新开始游戏!"<<endl;
game_over=1;
}
else if(monster[monster_number].blood<=0){
cout<<"成功击败怪物,获得经验"<< monster[monster_number].jingyan<<"点"<<endl;
mypet[mypet_number].level_jingyan+=monster[monster_number].jingyan;
if(mypet[mypet_number].level_jingyan>=100){
mypet[mypet_number].level++;
mypet[mypet_number].level_jingyan=mypet[mypet_number].level_jingyan%100;
cout<<"小精灵升级!!!当前等级"<< mypet[mypet_number].level<<"级"<<endl;
}
}
monster[monster_number].blood=t_monster_blood;
break;
}
else if(fight_or_again_or_exit=='r'){
cout<<"正在寻找怪物···"<<endl;
double start, stop, durationTime;
start = clock();
Sleep(1 * 1000); //程序延时1s
stop = clock();
monster_number=rand()%8;
cout<<"出现怪物:"<<monster[monster_number].name<<" 等级:"<<monster[monster_number].level<<" 血量:"<<monster[monster_number].blood<<endl;
t_monster_blood=monster[monster_number].blood;
}
else if(fight_or_again_or_exit=='e'){
break;
}
}
}
}
else if(moshi=='2'){
while(1){
int ming_ling_2;
cout<<"当前小精灵名字:"<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<" 小精灵等级:"<<mypet[mypet_number].level
<<" 小精灵血量:"<<mypet[mypet_number].blood<<" 小精灵当前经验值:"<<mypet[mypet_number].level_jingyan<<endl;
cout<<"输入1:进行疗伤 输入2:回到主页"<<endl;
cin>> ming_ling_2;
if(ming_ling_2==1){
cout<<"开始疗伤···"<<endl;
double start, stop, durationTime;
start = clock();
if(mypet[mypet_number].level==1){
Sleep(500); //程序延时1s
mypet[mypet_number].blood=200;
}
else{
Sleep((mypet[mypet_number].level*100-mypet[mypet_number].blood)/100 * 500); //程序延时1s
mypet[mypet_number].blood=mypet[mypet_number].level*100;
}
stop = clock();
cout<<"等级:"<<mypet[mypet_number].level<<endl;
cout<<"小精灵已恢复为满状态!当前血量:"<<mypet[mypet_number].blood<<endl;
}
else if(ming_ling_2==2){
break;
}
}
continue;
}
else if(moshi=='3'){
int mingling_3;
while(1){
cout<<"输入1:开始游戏 输入2:回到主页"<<endl;
cin>>mingling_3;
if(mingling_3==1){
int t,guess;
t=rand()%100+1;
cout<<"开始猜数字吧!范围在0-100!"<<endl;
while(cin>>guess){
if(guess==t){
cout<<"猜对了!!!"<<endl;
break;
}
else if(guess>t){
cout<<"太大了,重新猜"<<endl;
}
else if(guess<t){
cout<<"太小了,重新猜"<<endl;
}
}
}
else if(mingling_3==2){
break;
}
}
}
else if(moshi=='4'){
break;
}
}
return 0;
}
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com