200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 项目: 用c++写一个养成类的游戏【QQ宠物】

项目: 用c++写一个养成类的游戏【QQ宠物】

时间:2023-04-05 03:54:41

相关推荐

项目: 用c++写一个养成类的游戏【QQ宠物】

目录

前言效果和代码

前言

用c++写了一个类似与QQ宠物的养成类游戏,不过更像精武堂。

它是一个文字类的养成类游戏。

效果和代码

效果图如下:

/************************************************项目名称: QQ宠物项目介绍: 宠物养成类游戏 游戏说明: 你做为一个小企鹅,在爸爸的带领下完成历练提高自己的修为。 ************************************************/#include<iostream>#include<iomanip>#include<windows.h>#include<ctime>#include <string>#include<vector>#include<algorithm>#include <conio.h>#include<mmsystem.h>#pragma comment(lib,"Winmm.lib")using namespace std;/************************************************/ /************************************************/int i,j;//循环变量 char choice;//选择int money=500;//金钱int level=0;//等级 string value_father_name;//父亲的姓名 string value_daughter_name; //女儿的姓名 int value_birth_month;//女儿生日的月份 int value_birth_date; //女儿生日的日期string value_daughter_constell;//女儿的星座int value_daughter_baseinfo[5];//女儿的基本信息,体力,智力,魅力,道德,气质string value_array_baseinfo_names[5]={"体力","智力","魅力","道德","气质"};string constell_names[12][2]={{"山羊座","水瓶座"},//一月 {"水瓶座","双鱼座"},//二月{"双鱼座","白羊座"},//三月{"白羊座","金牛座"},//四月{"金牛座","双子座"},//五月{"双子座","巨蟹座"},//六月{"巨蟹座","狮子座"},//七月 {"狮子座","处女座"},//八月{"处女座","天秤座"},//九月{"天秤座","天蝎座"},//十月{"天蝎座","射手座"},//十一月{"射手座","山羊座"}//十二月}; int constell_dates[]={20,19,21,20,21,22,23,23,23,24,23,22}; /************************************************/ /************************************************/void people_menu()//游戏设置 {system("title QQ宠物");system("mode 40,25"); srand(time(NULL));mciSendString("open 背景.mp3 alias bkmusic", NULL, 0, NULL);mciSendString("play bkmusic repeat", NULL, 0, NULL);//循环播放音乐}void big_menu()//大的游戏菜单{system("cls");cout<<"\n\n\n\n\n\n";cout<<" 1、查看状态\n\n";cout<<" 2、安排行程\n\n";cout<<" 3、与父亲谈话\n\n";cout<<" 4、存档\n\n";cout<<" 5、读档\n\n";cout<<" 6、帮助\n";mciSendString("stop bkmusic", NULL, 0, NULL);mciSendString("close bkmusic", NULL, 0, NULL);mciSendString("open 背景.mp3 alias bkmusic", NULL, 0, NULL);mciSendString("play bkmusic repeat", NULL, 0, NULL);//循环播放音乐}void game()//游戏加载界面{system("cls");int i,j;for(i=1;i<=29;i++){system("cls");cout<<"\n\n\n\n\n\n\n\n\n人物加载中";for(j=1;j<=i;j++){cout<<"-";Sleep(5);}}cout<<"\n\n 人物初始化完成\n";printf("\a");Sleep(350);system("cls");}void color(WORD c);//控制输出字体属性(字体颜色)void kongge(int sum);//循环打印空格void chars(int sum);//循环打印制定字符(为了效果好一些我用了'#')void print_linux();//打印Linux系统图标函数void color(WORD c){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c);//设置控制台输出字体颜色值为c的值}//循环打印空格函数void kongge(int sum){while (sum--)//循环sum次printf(" ");//打印空格}//循环打印字符void chars(int sum){while (sum--)//循环sum次printf("#");//打印#号}void print_start(){system("time /t");system("date /t");cout<<endl; /*第一行*/kongge(17);chars(6);//打印6个#号printf("\n");//会车/*第二行*/kongge(15);chars(11);printf("\n");/*第三行*/kongge(14);chars(13);printf("\n");/*第四行*/kongge(14);chars(2);color(0x04);//红chars(3);color(0x07);//黑底白色字体chars(2);color(0x04);//白色chars(3);color(0x07);//黑底白色字体chars(3);printf("\n");/*第五行*/kongge(14);chars(2);color(0x04);//红色chars(1);color(0x07);//黑底白色字体chars(1);color(0x04);//红色chars(1);color(0x07);//黑底白色字体chars(2);color(0x04);//红色chars(1);color(0x07);//黑底白色字体chars(1);color(0x04);//红色chars(1);color(0x07);//黑底白色字体chars(3);printf("\n");/*第六行*/kongge(14);color(0x07);//黑底白色字体chars(4);color(0x06);//黄色chars(4);color(0x07);//黑底白色字体chars(5);printf("\n");/*第七行*/kongge(14);color(0x07);//黑底白色字体chars(2);color(0x06);//黄色chars(8);color(0x07);//黑底白色字体chars(3);printf("\n");/*第八行*/kongge(13);chars(3);color(0x08);//灰色chars(2);color(0x06);//黄色chars(4);color(0x08);//灰色chars(2);color(0x07);//黑色chars(4);printf("\n");/*第九行*/kongge(12);color(0x07);//黑底白色字体chars(2);color(0x02);//绿色chars(11);color(0x07);//黑底白色字体chars(4);printf("\n");/*第十行*/kongge(11);chars(2);color(0x02);//绿色chars(13);color(0x07);//黑底白色字体chars(4);printf("\n");/*第十一行*/kongge(10);chars(3);color(0x02);//绿色chars(13);color(0x07);//黑底白色字体chars(5);printf("\n");/*第十二行*/kongge(9);chars(3);color(0x02);//绿色chars(15);color(0x07);//黑底白色字体chars(5);printf("\n");/*第十三行*/kongge(8);chars(3);color(0x02);//绿色chars(16);color(0x07);//黑底白色字体chars(5);printf("\n");/*第十四行*/kongge(7);chars(4);color(0x02);//绿色chars(16);color(0x07);//黑底白色字体chars(5);printf("\n");/*第十五行*/kongge(7);chars(1);color(0x06);//黄色chars(2);color(0x07);//黑底白色字体chars(1);color(0x02);//绿色chars(14);color(0x02);//黄色chars(2);color(0x07);//黑底白色字体chars(4);color(0x06);//黄色chars(1);printf("\n");/*第十六行*/kongge(7);color(0x06);//黄色chars(4);color(0x07);//黑底白色字体chars(1);color(0x02);//绿色chars(13);color(0x06);//黄色chars(3);color(0x07);//黑底白色字体chars(2);color(0x06);//黄色chars(2);printf("\n");/*第十七行*/kongge(6);color(0x06);//黄色chars(5);color(0x07);//黑底白色字体chars(2);color(0x02);//绿色chars(10);color(0x07);//黑底白色字体chars(1);color(0x06);//黄色chars(9);printf("\n");/*第十八行*/kongge(2);color(0x06);//黄色chars(9);color(0x7);//黑底白色字体chars(1);color(0x02);//绿色chars(9);color(0x07);//黑底白色字体chars(2);color(0x06);//黄色chars(11);printf("\n");/*第十九行*/kongge(5);color(0x06);//黄色chars(8);color(0x07);//黑底白色字体chars(1);color(0x02);//绿色chars(6);color(0x07);//黑底白色字体chars(3);color(0x06);//黄色chars(10);printf("\n");/*第二十行*/kongge(3);color(0x06);//黄色chars(11);color(0x07);//黑底白色字体chars(9);color(0x06);//黄色chars(6);printf("\n");/*第二十一行*/kongge(9);color(0x06);//黄色chars(4);color(0x07);//黑底白色字体chars(11);color(0x06);//黄色chars(3);printf("\n");color(0x06);//黄色}void choise_1(){char a;system("cls");cout<<"\n\n你的信息: "<<endl;cout<<"姓名: "<<value_daughter_name<<" 等级 : "<<level<<endl;printf("\n");cout<<"生日: 1988-"<<value_birth_month<<"-"<<value_birth_date<<endl;printf("\n");cout<<"星座: "<<value_daughter_constell<<endl; printf("\n");cout<<left;for(i=0;i<5;i++){cout<<value_array_baseinfo_names[i]<<" : "<<setw(2)<<value_daughter_baseinfo[i];//计算实心方框的数量int solidCount=value_daughter_baseinfo[i]/10;if(value_daughter_baseinfo[i]%10>=5)//四舍五入 {solidCount++;}for(j=0;j<10;j++) {if((j+1)<=solidCount)cout<<"■"; elsecout<<"□"; }cout<<endl<<endl;}cout<<"金钱:"<<money<<endl<<endl; cout<<"按任意键回到主菜单"; a=getch();system("cls");}void choise_2_1(){int i=0;int w,d;char a;system("cls");w=rand()%5+1;d=rand()%2+1;if(money>=60){cout<<"\n\n经过一段时间的练武,你有了很大的进步"<<endl<<endl;cout<<"\n属性发生了如下变化:"<<endl<<endl;cout<<"体力 : "<<value_daughter_baseinfo[0]<<"----->"<<value_daughter_baseinfo[0]+w;printf("\n\n");cout<<"道德 : "<<value_daughter_baseinfo[3]<<"----->"<<value_daughter_baseinfo[3]+d;printf("\n\n");value_daughter_baseinfo[0]+=w;value_daughter_baseinfo[3]+=d;money=money-60;cout<<"学习武术你花费了60金币"<<endl<<endl;}else{cout<<" \n\n\n你的金钱不足!\n";}cout<<"\n 按任何键返回上一菜单";mciSendString("stop bkmusic", NULL, 0, NULL);mciSendString("close bkmusic", NULL, 0, NULL);mciSendString("open 1练武.mp3 alias bkmusic", NULL, 0, NULL);mciSendString("play bkmusic repeat", NULL, 0, NULL);a=getch();system("cls"); }void choise_2_2(){int i=0;int n1,n2,n3,n4,n5;char a;system("cls");n1=rand()%2+1;n2=rand()%4+1;n3=rand()%1+1;n4=rand()%3+1;n5=rand()%2+1;if(money>=200){cout<<"\n\n经过一段时间的学习,你有了很大的进步"<<endl<<endl;cout<<"\n属性发生了如下变化:"<<endl<<endl;cout<<"体力 : "<<value_daughter_baseinfo[0]<<"----->"<<value_daughter_baseinfo[0]+n1;printf("\n\n");cout<<"智力 : "<<value_daughter_baseinfo[1]<<"----->"<<value_daughter_baseinfo[1]+n2;printf("\n\n");cout<<"魅力 : "<<value_daughter_baseinfo[2]<<"----->"<<value_daughter_baseinfo[2]+n3;printf("\n\n");cout<<"道德 : "<<value_daughter_baseinfo[3]<<"----->"<<value_daughter_baseinfo[3]+n4;printf("\n\n");cout<<"气质 : "<<value_daughter_baseinfo[4]<<"----->"<<value_daughter_baseinfo[4]+n5;printf("\n\n");value_daughter_baseinfo[0]+=n1;value_daughter_baseinfo[1]+=n2;value_daughter_baseinfo[2]+=n3;value_daughter_baseinfo[3]+=n4;value_daughter_baseinfo[4]+=n5;money=money-200;cout<<"上学你花费了200金币"<<endl<<endl;}else{cout<<" \n\n\n你的金钱不足!\n";}cout<<"\n 按任何键返回上一菜单";mciSendString("stop bkmusic", NULL, 0, NULL);mciSendString("close bkmusic", NULL, 0, NULL);mciSendString("open 2背书.mp3 alias bkmusic", NULL, 0, NULL);mciSendString("play bkmusic repeat", NULL, 0, NULL);a=getch();system("cls"); }void choise_2_3(){int i=0;int w,d;char a;system("cls");w=rand()%4+1;d=rand()%3+1;if(money>=100){cout<<"\n\n经过一段时间礼法的学习,你有了很大的进步"<<endl<<endl;cout<<"\n属性发生了如下变化:"<<endl<<endl;cout<<"气质 : "<<value_daughter_baseinfo[4]<<"----->"<<value_daughter_baseinfo[4]+w;printf("\n\n");cout<<"道德 : "<<value_daughter_baseinfo[3]<<"----->"<<value_daughter_baseinfo[3]+d;printf("\n\n");value_daughter_baseinfo[4]+=w;value_daughter_baseinfo[3]+=d;money=money-100;cout<<"学习礼仪你花费了100金币"<<endl<<endl;}else{cout<<" \n\n\n你的金钱不足!\n";}cout<<"\n 按任何键返回上一菜单";mciSendString("stop bkmusic", NULL, 0, NULL);mciSendString("close bkmusic", NULL, 0, NULL);mciSendString("open 3礼仪.mp3 alias bkmusic", NULL, 0, NULL);mciSendString("play bkmusic repeat", NULL, 0, NULL);a=getch();system("cls"); }void choise_2_4(){int i=0;int w,d;char a;system("cls");w=rand()%2+1;d=rand()%3+1;if(money>=80){cout<<"\n\n出城修炼的一路,你斩妖除魔。"<<endl<<endl;cout<<"\n属性发生了如下变化:"<<endl<<endl;cout<<"体力 : "<<value_daughter_baseinfo[0]<<"----->"<<value_daughter_baseinfo[0]+w;printf("\n\n");cout<<"魅力 : "<<value_daughter_baseinfo[2]<<"----->"<<value_daughter_baseinfo[2]+d;printf("\n\n");value_daughter_baseinfo[0]+=w;value_daughter_baseinfo[2]+=d;money=money-80;cout<<"修行的路上你花费了80金币"<<endl<<endl;}else{cout<<" \n\n\n你的金钱不足!\n";}cout<<"\n 按任何键返回上一菜单";mciSendString("stop bkmusic", NULL, 0, NULL);mciSendString("close bkmusic", NULL, 0, NULL);mciSendString("open 4武打.mp3 alias bkmusic", NULL, 0, NULL);mciSendString("play bkmusic repeat", NULL, 0, NULL);a=getch();system("cls"); }void choise_2_5(){char a;int b;b=rand()%100+20;system("cls");cout<<"\n\n经过一段时间的打工-------"<<endl<<endl;cout<<"你获得了"<<b<<"金钱"<<endl<<endl; money=money+b;cout<<"\n 按任何键返回上一菜单";mciSendString("stop bkmusic", NULL, 0, NULL);mciSendString("close bkmusic", NULL, 0, NULL);mciSendString("open 5工作.mp3 alias bkmusic", NULL, 0, NULL);mciSendString("play bkmusic repeat", NULL, 0, NULL);a=getch();system("cls"); }void choise_2(){char a;system("cls");while(1){mciSendString("stop bkmusic", NULL, 0, NULL);mciSendString("close bkmusic", NULL, 0, NULL); printf("\n\n\n\n");cout<<" 1.学习武艺"<<endl<<endl<<endl;cout<<" 2.上私塾"<<endl<<endl<<endl;cout<<" 3.学习礼法"<<endl<<endl<<endl;cout<<" 4.出城修炼"<<endl<<endl<<endl;cout<<" 5.打工赚钱"<<endl<<endl<<endl; cout<<"请选择(按z回到主菜单):";//cin<<choice;//这里需要注意没钱的情况,强制打工 a=getch();switch(a){case '1':choise_2_1();break;case '2':choise_2_2();break; case '3':choise_2_3();break;case '4':choise_2_4();break; case '5':choise_2_5();break;}if(a=='z')break;system("cls");}system("cls");}void choise_3(string value_daughter_name){int a;int i=0; char b;system("cls");a=rand()%100;mciSendString("stop bkmusic", NULL, 0, NULL);mciSendString("close bkmusic", NULL, 0, NULL);mciSendString("open 交谈.mp3 alias bkmusic", NULL, 0, NULL);mciSendString("play bkmusic repeat", NULL, 0, NULL);//循环播放音乐if(a<=30) {cout<<"\n\n\n\n父亲 : "<< value_daughter_name<<"你最近干的不错"<<endl<<endl;cout<<" 谢谢父亲大人:你"<<endl<<endl;cout<<"......."<<endl<<endl; cout<<"\n在与父亲的谈话中你获得了100零花钱"<<endl;money=money+100; }if(a>30&&a<=80) {cout<<"\n\n\n\n父亲 : "<< value_daughter_name<<"你要好好学习"<<endl<<endl;cout<<" 知道了:你"<<endl<<endl;cout<<"父亲 : "<< value_daughter_name<<"你的态度要端正"<<endl<<endl;cout<<"额额:你"<<endl<<endl;cout<<"......."<<endl<<endl; cout<<"\n你与父亲谈论的不愉快"<<endl<<endl;cout<<"道德-5气质-3"<<endl<<endl;if(value_daughter_baseinfo[3]>=5)value_daughter_baseinfo[3]-=5;elsevalue_daughter_baseinfo[3]=0;if(value_daughter_baseinfo[4]>=3)value_daughter_baseinfo[4]-=3;elsevalue_daughter_baseinfo[4]=0;}if(a>80) {cout<<"\n\n\n父亲 : "<< value_daughter_name<<"最近看了一首歌挺不错的。"<<endl<<endl;cout<<"父亲 : "<<"23岁的九局下半转啊转,"<<endl<<endl;cout<<"父亲 : "<<"我把帽子反戴还在期待逆转"<<endl<<endl;cout<<" 谢谢父亲:你"<<endl<<endl;cout<<" 我会努力学习的:你"<<endl<<endl; cout<<"......."<<endl<<endl; cout<<"你与父亲谈论的很开心愉快,谈论中悟出了人生哲理。"<<endl; cout<<"全属性个加2点"<<endl;for(i=0;i<5;i++){value_array_baseinfo_names[i]+=1;}}cout<<"\n 按任何键返回主菜单";a=getch();system("cls"); }void choise_45(){char a;system("cls");cout<<"\n\n\n\n\n\n\n 维修中----------\n\n\n";cout<<" 按任何键返回主菜单";mciSendString("stop bkmusic", NULL, 0, NULL);mciSendString("close bkmusic", NULL, 0, NULL);mciSendString("open 维修.mp3 alias bkmusic", NULL, 0, NULL);mciSendString("play bkmusic repeat", NULL, 0, NULL);//循环播放音乐a=getch();system("cls");}void choise_6(){char a;system("cls");cout<<"\n\n\n游戏说明\n\n";cout<<" 该游戏是一个养成类游戏,游戏的背景是\n\n";cout<<"从1988年6月开始,你要通过操作企鹅来干一\n\n" ;cout<<"些事情来提高企鹅的等级。\n\n\n"; cout<<"按任意键回到主菜单"; mciSendString("stop bkmusic", NULL, 0, NULL);mciSendString("close bkmusic", NULL, 0, NULL);mciSendString("open 打字.mp3 alias bkmusic", NULL, 0, NULL);mciSendString("play bkmusic repeat", NULL, 0, NULL);a=getch();system("cls");}void birthday(int month,int value_birth_month,string value_father_name){//判断本月是否是你的生日,触发彩蛋 int a;char b;a=rand()%300+200; system("cls");cout<<"\n\n 彩蛋情节触发\n"<<endl; cout<<"本月是你的生日。\n\n你的父亲"<<value_daughter_name<<"先生给你送了"<<a<<"金币。\n"<<endl;//根据用户的输入进行判断 cout<<"按任意键回到主菜单"; money=money+a;b=getch();system("cls");}void level_start()//等级判断函数 {int i=0;int temp=999999; int a[5];for(i=0;i<5;i++){if(value_daughter_baseinfo[i]>0&&value_daughter_baseinfo[i]<10){a[i]=1;continue;}if(value_daughter_baseinfo[i]>=10&&value_daughter_baseinfo[i]<20){a[i]=2;continue;}if(value_daughter_baseinfo[i]>=20&&value_daughter_baseinfo[i]<32){a[i]=3;continue;}if(value_daughter_baseinfo[i]>=32&&value_daughter_baseinfo[i]<48){a[i]=4;continue;}if(value_daughter_baseinfo[i]>=48&&value_daughter_baseinfo[i]<66){a[i]=5;continue;}if(value_daughter_baseinfo[i]>=66&&value_daughter_baseinfo[i]<96){a[i]=6;continue;}if(value_daughter_baseinfo[i]>=96&&value_daughter_baseinfo[i]<120){a[i]=7;continue;}if(value_daughter_baseinfo[i]>=120){a[i]=8;continue;}}for(i=0;i<5;i++){if(a[i]<temp)temp=a[i];}level=temp;} /************************************************/ int main(void){char a;people_menu();//设置菜单 print_start();//游戏片头 cout<<"\n 按任意键进入游戏!"; a=getch(); system("cls");system("color 03");system("title 游戏中"); value_daughter_baseinfo[0]=rand()%10+1;//体力value_daughter_baseinfo[1]=rand()%10+3;//智力value_daughter_baseinfo[2]=rand()%10+6;//魅力value_daughter_baseinfo[3]=rand()%10+5;//道德value_daughter_baseinfo[4]=rand()%10+6;//气质cout<<"\n\n\n\n\n\n";cout<<"父亲的姓名 :";cin>>value_father_name;cout<<endl;cout<<"你的姓名 :";cin>>value_daughter_name;cout<<endl;cout<<"你的生日(月) :";cin>>value_birth_month;cout<<endl;cout<<"你的生日(日) :";cin>>value_birth_date;cout<<endl; value_daughter_constell=constell_names[value_birth_month-1][value_birth_date/constell_dates[value_birth_month-1]];//game();//游戏加载 //游戏从1988年6月开始 for(int year=1988;year<=1988 + 9;year++){for(int month = (year == 1988)? 6:1;month<=12;month++){if(month == value_birth_month){birthday(month,value_birth_month,value_father_name);}big_menu();//显示游戏主菜单choice=getch();//用户的选择 switch(choice){case '1'://查看状态level_start();choise_1(); break;case '2'://安排行程:一个月最多三次行程 {choise_2();break;}case '3':choise_3(value_daughter_name);break;case '4': //存档 choise_45();break;case '5': //读档 choise_45();break;case '6': //帮助 choise_6();break;default:system("cls");break;}}}//1.为父女取名字//2.为女儿录入初始信息//根据女儿的星座,设置游戏的基本参数(体力、智力、魅力、道德、气质) //3. 开始游戏大循环//4.设置各项参数,判断游戏结果 return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。