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

项目: 用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<<"nnnnnn";cout<<" 1、查看状态nn";cout<<" 2、安排行程nn";cout<<" 3、与父亲谈话nn";cout<<" 4、存档nn";cout<<" 5、读档nn";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<<"nnnnnnnnn人物加载中";for(j=1;j<=i;j++){cout<<"-";Sleep(5);}}cout<<"nn 人物初始化完成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<<"nn你的信息: "<<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<<"nn经过一段时间的练武,你有了很大的进步"<<endl<<endl;cout<<"n属性发生了如下变化:"<<endl<<endl;cout<<" 体力 : "<<value_daughter_baseinfo[0]<<"----->"<<value_daughter_baseinfo[0]+w;printf("nn");cout<<" 道德 : "<<value_daughter_baseinfo[3]<<"----->"<<value_daughter_baseinfo[3]+d;printf("nn");value_daughter_baseinfo[0]+=w;value_daughter_baseinfo[3]+=d;money=money-60;cout<<"学习武术你花费了60金币"<<endl<<endl;}else{cout<<" nnn你的金钱不足!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<<"nn经过一段时间的学习,你有了很大的进步"<<endl<<endl;cout<<"n属性发生了如下变化:"<<endl<<endl;cout<<" 体力 : "<<value_daughter_baseinfo[0]<<"----->"<<value_daughter_baseinfo[0]+n1;printf("nn");cout<<" 智力 : "<<value_daughter_baseinfo[1]<<"----->"<<value_daughter_baseinfo[1]+n2;printf("nn");cout<<" 魅力 : "<<value_daughter_baseinfo[2]<<"----->"<<value_daughter_baseinfo[2]+n3;printf("nn");cout<<" 道德 : "<<value_daughter_baseinfo[3]<<"----->"<<value_daughter_baseinfo[3]+n4;printf("nn");cout<<" 气质 : "<<value_daughter_baseinfo[4]<<"----->"<<value_daughter_baseinfo[4]+n5;printf("nn");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<<" nnn你的金钱不足!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<<"nn经过一段时间礼法的学习,你有了很大的进步"<<endl<<endl;cout<<"n属性发生了如下变化:"<<endl<<endl;cout<<" 气质 : "<<value_daughter_baseinfo[4]<<"----->"<<value_daughter_baseinfo[4]+w;printf("nn");cout<<" 道德 : "<<value_daughter_baseinfo[3]<<"----->"<<value_daughter_baseinfo[3]+d;printf("nn");value_daughter_baseinfo[4]+=w;value_daughter_baseinfo[3]+=d;money=money-100;cout<<"学习礼仪你花费了100金币"<<endl<<endl;}else{cout<<" nnn你的金钱不足!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<<"nn出城修炼的一路,你斩妖除魔。"<<endl<<endl;cout<<"n属性发生了如下变化:"<<endl<<endl;cout<<" 体力 : "<<value_daughter_baseinfo[0]<<"----->"<<value_daughter_baseinfo[0]+w;printf("nn");cout<<" 魅力 : "<<value_daughter_baseinfo[2]<<"----->"<<value_daughter_baseinfo[2]+d;printf("nn");value_daughter_baseinfo[0]+=w;value_daughter_baseinfo[2]+=d;money=money-80;cout<<"修行的路上你花费了80金币"<<endl<<endl;}else{cout<<" nnn你的金钱不足!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<<"nn经过一段时间的打工-------"<<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("nnnn");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<<"nnnn父亲 : "<< value_daughter_name<<"你最近干的不错"<<endl<<endl;cout<<" 谢谢父亲大人:你"<<endl<<endl;cout<<"......."<<endl<<endl;cout<<"n在与父亲的谈话中你获得了100零花钱"<<endl;money=money+100;}if(a>30&&a<=80){cout<<"nnnn父亲 : "<< 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<<"nnn父亲 : "<< 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<<"nnnnnnn 维修中----------nnn";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<<"nnn 游戏说明nn";cout<<" 该游戏是一个养成类游戏,游戏的背景是nn";cout<<"从1988年6月开始,你要通过操作企鹅来干一nn" ;cout<<"些事情来提高企鹅的等级。nnn";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<<"nn 彩蛋情节触发n"<<endl;cout<<"本月是你的生日。nn你的父亲"<<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<<"nnnnnn";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; } 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877

相关知识

项目: 用c++写一个养成类的游戏【QQ宠物】
QQ宠物都停运了养成类游戏路在何方?
QQ宠物下线了,但为什么养成类游戏越来越火?
类似qq宠物的游戏
用java写的小宠物游戏
腾讯放弃了QQ宠物,而阿里却养起了新的宠物
宠物养成类游戏大全
请问QQ宠物的ID是什么, 在哪里可以看到
有趣的宠物养成类游戏推荐
好玩的宠物养成类手游排行榜 热门宠物养成游戏大全2023

网址: 项目: 用c++写一个养成类的游戏【QQ宠物】 https://m.mcbbbk.com/newsview260734.html

所属分类:萌宠日常
上一篇: 【合集】左右脑智力开发
下一篇: 从黑白格子到3D萌物美如画,虚拟