用python写一个电子宠物系统代码 电子宠物代码教程
/*加入猜数字游戏和数洼地(深度搜索)和手机键盘游戏(codevs)和原创打怪,基础实训能力有限欢迎指导*/ #include <iostream> #include <ctime> #include <cmath> #include <cstdlib> #include <cstring> using namespace std; /*三. 宠物类的实现:建立一个宠物类pet 1. 构造函数 2. 提取各个私有成员 3. 饥饿、口渴及心情随时间变化函数P2() 随机产生0~14之间的数m,若m<5,心情-2;若5<m<12,心情-1;其他 心情+1; 年龄+1; 饥饿度+1; 口渴度+1; */ #include <cstdlib> #define MAX_N 110 int N, M; char field[MAX_N][MAX_N];//创建园子 char a[2] = { '.', 'W' }; using namespace std; void lvbu() { int xueliang = 100; int nn = 100; int t; int xingdongdiren=35; int xingdongzishen=35; int counts = 1; cout << "请开始输入您的技能" << endl; cout <<"--------------------------------------------------------------" << endl; while(cin >>t) { cout <<"第" << counts <<"回合" << endl; cout <<"--------------------------------------------------------------" << endl; switch(t) { case 1: cout << "您使用的是技能宠物顶计" << endl; cout <<"--------------------------------------------------------------" << endl; break; case 2: cout << "您使用的技能是宠物快跑" << endl; cout <<"--------------------------------------------------------------" << endl; break; case 3: cout << "您使用的是技能萌系诱饵" << endl; cout <<"--------------------------------------------------------------" << endl; break; case 4: cout << "您使用的是技能免疫奶瓶" << endl; cout <<"--------------------------------------------------------------" << endl; break; } counts++; switch(t) { case 1: xueliang=xueliang-10; xingdongzishen=xingdongzishen-2; cout << "当前敌人的血量为" << xueliang << "当前你的行动值为" << xingdongzishen << endl; cout <<"--------------------------------------------------------------" << endl; break; case 2: xueliang=xueliang-20; xingdongzishen=xingdongzishen-4; cout << "当前敌人的血量为" << xueliang << "当前你的行动值为" << xingdongzishen << endl; cout <<"--------------------------------------------------------------" << endl; break; case 3: xueliang=xueliang-20; xingdongzishen=xingdongzishen-5; cout << "当前敌人的血量为" << xueliang << "当前你的行动值为" << xingdongzishen << endl; cout <<"--------------------------------------------------------------" << endl; break; case 4: xueliang=xueliang-30; xingdongzishen=xingdongzishen-6; cout << "当前敌人的血量为" << xueliang << "当前你的行动值为" << xingdongzishen << endl; cout <<"--------------------------------------------------------------" << endl; break; } cout << "敌人使用的技能为" ; int a[4]= {1,2,3,4}; int bb =a[rand()%4]; cout << bb << endl; switch(bb) { case 1: cout << "敌人使用的技能为温侯连环斩" << endl; cout <<"--------------------------------------------------------------" << endl; nn=nn-15; xingdongdiren=xingdongdiren-3; cout << "宠物的血量为" << nn <<"敌人的行动值为"<< xingdongdiren << endl; cout <<"--------------------------------------------------------------" << endl; break; case 2: cout << "敌人使用的技能为十方横扫" << endl; nn=nn-20; xingdongdiren=xingdongdiren-5; cout << "宠物的血量为" << nn <<"敌人的行动值为"<< xingdongdiren << endl; cout <<"--------------------------------------------------------------" << endl; break; case 3: cout << "敌人使用的技能为刚愎" << endl; cout <<"--------------------------------------------------------------" << endl; nn=nn-5; xingdongdiren--; cout << "宠物的血量为" << nn <<"敌人的行动值为"<< xingdongdiren << endl; cout <<"--------------------------------------------------------------" << endl; break; case 4: cout <<"敌人使用的技能为无双!" << endl; cout <<"--------------------------------------------------------------" << endl; nn=nn-20; xingdongdiren=xingdongdiren-3; cout << "宠物的血量为" << nn <<"敌人的行动值为"<< xingdongdiren << endl; cout <<"--------------------------------------------------------------" << endl; break; } cout << "请您继续选择技能" << endl; if(xingdongdiren==0 || xueliang==0 || xingdongdiren<0 || xueliang <0) { cout <<"恭喜您击败了敌人" << endl; cout <<"--------------------------------------------------------------" << endl; break; } if(xingdongzishen==0 || nn==0 || xingdongzishen<0 || nn<0) { cout <<"很遗憾您失败了" << endl; cout <<"--------------------------------------------------------------" << endl; break; } } } void xiangyu() { int xueliang = 100; int nn = 100; int t; int xingdongdiren=35; int xingdongzishen=35; int counts = 1; cout << "请开始输入您的技能" << endl; cout <<"--------------------------------------------------------------" << endl; while(cin >>t) { cout <<"第" << counts <<"回合" << endl; cout <<"--------------------------------------------------------------" << endl; switch(t) { case 1: cout << "您使用的是技能宠物顶计" << endl; cout <<"--------------------------------------------------------------" << endl; break; case 2: cout << "您使用的技能是宠物快跑" << endl; cout <<"--------------------------------------------------------------" << endl; break; case 3: cout << "您使用的是技能萌系诱饵" << endl; cout <<"--------------------------------------------------------------" << endl; break; case 4: cout << "您使用的是技能免疫奶瓶" << endl; cout <<"--------------------------------------------------------------" << endl; break; } counts++; switch(t) { case 1: xueliang=xueliang-10; xingdongzishen=xingdongzishen-2; cout << "当前敌人的血量为" << xueliang << "当前你的行动值为" << xingdongzishen << endl; cout <<"--------------------------------------------------------------" << endl; break; case 2: xueliang=xueliang-20; xingdongzishen=xingdongzishen-4; cout << "当前敌人的血量为" << xueliang << "当前你的行动值为" << xingdongzishen << endl; cout <<"--------------------------------------------------------------" << endl; break; case 3: xueliang=xueliang-20; xingdongzishen=xingdongzishen-5; cout << "当前敌人的血量为" << xueliang << "当前你的行动值为" << xingdongzishen << endl; cout <<"--------------------------------------------------------------" << endl; break; case 4: xueliang=xueliang-30; xingdongzishen=xingdongzishen-6; cout << "当前敌人的血量为" << xueliang << "当前你的行动值为" << xingdongzishen << endl; cout <<"--------------------------------------------------------------" << endl; break; } cout << "敌人使用的技能为" ; int a[4]= {1,2,3,4}; int bb =a[rand()%4]; cout << bb << endl; switch(bb) { case 1: cout << "敌人使用的技能为剑刃风暴" << endl; cout <<"--------------------------------------------------------------" << endl; nn=nn-15; xingdongdiren=xingdongdiren-3; cout << "宠物的血量为" << nn <<"敌人的行动值为"<< xingdongdiren << endl; cout <<"--------------------------------------------------------------" << endl; break; case 2: cout << "敌人使用的技能为剑气" << endl; nn=nn-20; xingdongdiren=xingdongdiren-5; cout << "宠物的血量为" << nn <<"敌人的行动值为"<< xingdongdiren << endl; cout <<"--------------------------------------------------------------" << endl; break; case 3: cout << "敌人使用的技能为剑舞" << endl; cout <<"--------------------------------------------------------------" << endl; nn=nn-5; xingdongdiren--; cout << "宠物的血量为" << nn <<"敌人的行动值为"<< xingdongdiren << endl; cout <<"--------------------------------------------------------------" << endl; break; case 4: cout <<"敌人使用的技能为鬼雄!" << endl; cout <<"--------------------------------------------------------------" << endl; nn=nn-20; xingdongdiren=xingdongdiren-3; cout << "宠物的血量为" << nn <<"敌人的行动值为"<< xingdongdiren << endl; cout <<"--------------------------------------------------------------" << endl; break; } cout << "请您继续选择技能" << endl; if(xingdongdiren==0 || xueliang==0 || xingdongdiren<0 || xueliang <0) { cout <<"恭喜您击败了敌人" << endl; cout <<"--------------------------------------------------------------" << endl; break; } if(xingdongzishen==0 || nn==0 || xingdongzishen<0 || nn<0) { cout <<"很遗憾您失败了" << endl; cout <<"--------------------------------------------------------------" << endl; break; } } } void ximenfeixue() { int xueliang = 100; int nn = 100; int t; int xingdongdiren=35; int xingdongzishen=35; int counts = 1; cout << "请开始输入您的技能" << endl; cout <<"--------------------------------------------------------------" << endl; while(cin >>t) { cout <<"第" << counts <<"回合" << endl; cout <<"--------------------------------------------------------------" << endl; switch(t) { case 1: cout << "您使用的是技能宠物顶计" << endl; cout <<"--------------------------------------------------------------" << endl; break; case 2: cout << "您使用的技能是宠物快跑" << endl; cout <<"--------------------------------------------------------------" << endl; break; case 3: cout << "您使用的是技能萌系诱饵" << endl; cout <<"--------------------------------------------------------------" << endl; break; case 4: cout << "您使用的是技能免疫奶瓶" << endl; cout <<"--------------------------------------------------------------" << endl; break; } counts++; switch(t) { case 1: xueliang=xueliang-10; xingdongzishen=xingdongzishen-2; cout << "当前敌人的血量为" << xueliang << "当前你的行动值为" << xingdongzishen << endl; cout <<"--------------------------------------------------------------" << endl; break; case 2: xueliang=xueliang-20; xingdongzishen=xingdongzishen-4; cout << "当前敌人的血量为" << xueliang << "当前你的行动值为" << xingdongzishen << endl; cout <<"--------------------------------------------------------------" << endl; break; case 3: xueliang=xueliang-20; xingdongzishen=xingdongzishen-5; cout << "当前敌人的血量为" << xueliang << "当前你的行动值为" << xingdongzishen << endl; cout <<"--------------------------------------------------------------" << endl; break; case 4: xueliang=xueliang-30; xingdongzishen=xingdongzishen-6; cout << "当前敌人的血量为" << xueliang << "当前你的行动值为" << xingdongzishen << endl; cout <<"--------------------------------------------------------------" << endl; break; } cout << "敌人使用的技能为" ; int a[4]= {1,2,3,4}; int bb =a[rand()%4]; cout << bb << endl; switch(bb) { case 1: cout << "敌人使用的技能为落花吹雪" << endl; cout <<"--------------------------------------------------------------" << endl; nn=nn-15; xingdongdiren=xingdongdiren-3; cout << "宠物的血量为" << nn <<"敌人的行动值为"<< xingdongdiren << endl; cout <<"--------------------------------------------------------------" << endl; break; case 2: cout << "敌人使用的技能为追风剑" << endl; nn=nn-20; xingdongdiren=xingdongdiren-5; cout << "宠物的血量为" << nn <<"敌人的行动值为"<< xingdongdiren << endl; cout <<"--------------------------------------------------------------" << endl; break; case 3: cout << "敌人使用的技能为追魂剑" << endl; cout <<"--------------------------------------------------------------" << endl; nn=nn-5; xingdongdiren--; cout << "宠物的血量为" << nn <<"敌人的行动值为"<< xingdongdiren << endl; cout <<"--------------------------------------------------------------" << endl; break; case 4: cout <<"敌人使用的技能为天外飞仙!" << endl; cout <<"--------------------------------------------------------------" << endl; nn=nn-20; xingdongdiren=xingdongdiren-3; cout << "宠物的血量为" << nn <<"敌人的行动值为"<< xingdongdiren << endl; cout <<"--------------------------------------------------------------" << endl; break; } cout << "请您继续选择技能" << endl; if(xingdongdiren==0 || xueliang==0 || xingdongdiren<0 || xueliang <0) { cout <<"恭喜您击败了敌人" << endl; cout <<"--------------------------------------------------------------" << endl; break; } if(xingdongzishen==0 || nn==0 || xingdongzishen<0 || nn<0) { cout <<"很遗憾您失败了" << endl; cout <<"--------------------------------------------------------------" << endl; break; } } } void dfs(int x, int y) { field[x][y] = '.';//把现在的位置改为. //循环遍历移动的八个方向 for (int dx = -1; dx <= 1; dx++) { for (int dy = -1; dy <= 1; dy++) { //向x方向移动dx,向y方向移动dy,移动的结果为(nx,ny) int nx = x + dx; int ny = y + dy; //判断(nx,ny)是不是在园子里面,以及是否有积水。 if (0 <= nx && nx<N && 0 <= ny && ny<M && field[nx][ny] == 'W') { dfs(nx, ny); } } } } int tim(char a) { int times = 0; switch (a) { case 'a': case 'd': case 'g': case 'j': case 'm': case 'p': case 't': case 'w': case ' ': times = 1; break; case 'b': case 'e': case 'h': case 'k': case 'n': case 'q': case 'u': case 'x': times = 2; break; case 'c': case 'f': case 'i': case 'l': case 'o': case 'r': case 'v': case 'y': times = 3; break; case 's': case 'z': times = 4; break; } return times; } class pet { int age, hunger, thirsty, mood, health, hp, mdp, movepoint; public: pet(int a = 0, int b = 0, int c = 0, int d = 50, int e = 50, int z = 50) { age = a;//年龄 hunger = b;//饥饿度 thirsty = c;//口渴度 mood = d;//心情 health = e;//健康度 //hp = x;// //mdp = y; movepoint = z;//行动点数 } int getage() { return age; } int gethunger() { return hunger; } int getthirsty() { return thirsty; } int getmood() { return mood; } int gethealth() { return health; } //int gethp(){ // return hp; //} /*int getmdp(){ return mdp; }*/ int getmovepoint() { return movepoint; }//提取各个属性 /* 饥饿、口渴及心情随时间变化函数P2() 随机产生0~14之间的数m,若m<5,心情-2;若5<m<12,心情-1;其他 心情+1; 年龄+1; 饥饿度+1; 口渴度+1;*/ void p2() //随时间变化 { int m; m = rand() % 15; if (m<5) mood = mood - 2; if (5<m && m <12) mood--; else mood++; age++; hunger++; thirsty++; //cout << "现在的年龄是" << age << endl; //cout <<"现在的心情是" << endl; //cout << "现在的饥饿度是" << endl; //cout << "现在的口渴度为" << endl; } /*4. 各个数值输出函数show():各个数值的输出函数 显示出现在的状态,如年龄,饥饿度,口渴度,心情指数,健康指数;*/ void show() //各数值输出函数 { cout << "当前的状况是" << endl; cout << "年龄:" << age; cout << "心情" << mood; cout << "饥饿" << hunger; cout << "口渴度" << thirsty; cout << "健康指数" << health << endl; } //特殊状况函数 /*5. 各个特殊状态函数emergency(emg) 特殊状态(随机值emg) 行动点数+5; emg等于20(表示生病了),健康-1; 饥饿值=3 心情-1(饿了); 饥饿值=-2,心情-1(很饱了); 饥饿值>3,心情-1,(要饿死了); 饥饿值<-2,心情-2,健康-1(要撑死了); 口渴值=2,心情-1(好渴); 口渴值=-2,心情-1(喝够了); 口渴值>2,心情-2,健康-1(渴的受不了); 口渴值<-2,心情-2,健康-1,(喝撑了); 饥饿值>6或者口渴值>5,年龄=100,宠物死亡(万恶的主人); 饥饿值>5并且口渴值>4,年龄=100,宠物死亡(来世不跟你混了); 健康<-6,年龄=100,宠物死亡(倒下了)*/ void emergency(int emg) { movepoint = movepoint + 5; if (emg == 20) { health--; cout << "主人,人家好难受,生病了呀。" << endl; } if (hunger == 3) { mood--; cout << "主银,人家好饿呀" << endl; } if (hunger == -2) { mood--; cout << "主银,你把人家问的很饱了" << endl; } if (hunger > 3) { mood--; cout << "主银!!!还不喂喂人家,人家都快饿死了" << endl; } if (hunger <-2) { mood = mood - 2; health--; cout << "主银,人家胃好难受啊!" << endl; } /*口渴值=2,心情-1(好渴); 口渴值=-2,心情-1(喝够了); 口渴值>2,心情-2,健康-1(渴的受不了); 口渴值<-2,心情-2,健康-1,(喝撑了);*/ if (thirsty == 2) { mood--; cout << "主银,我好渴啊" << endl; } if (thirsty == -2) { cout << "主银,我喝够了" << endl; } if (thirsty > 2) { mood = mood - 2; health--; cout << "主银,人家已经很渴了" << endl; } if (thirsty < -2) { mood = mood - 2; health--; cout << "主银,人家已经喝撑了,不能再喝了。" << endl; } /*饥饿值>6或者口渴值>5,年龄=100,宠物死亡(万恶的主人); 饥饿值>5并且口渴值>4,年龄=100,宠物死亡(来世不跟你混了); 健康<-6,年龄=100,宠物死亡(倒下了)*/ if (hunger > 6 || thirsty > 5) { age = 100; cout << "他走了,走的很惨,临走之前还不忘说,****,你这个万恶的主人" << endl; } if (hunger > 5 && thirsty > 4) { age = 100; cout << "如果有来世,我一定不会跟着你了" << endl; } if (health < -6) { age = 100; cout << "他只是默默的看着你,然后走了" << endl; } } /*6. 喂食函数feed() 饥饿值-1; 行动点数-5; */ void feed() //喂食函数 { hunger--; movepoint = movepoint - 5; } /*7. 喂水函数drink() 口渴度-1; 行动点数-3*/ void drink() //喂水函数 { thirsty--; movepoint = movepoint - 3; } /* 8. 看医生函数doctor() 行动点-10*/ void doctor() { movepoint = movepoint - 10; } /*9. 抚摸函数touch(w) 抚摸(消耗3点行动力,天气w)。 w=0,心情+2; w=1、w=2,心情+1; w=3,心情-1,口渴-1; w=4,心情-1,饥饿值-1;*/ void touch(int w) //w为天气 { movepoint = movepoint - 3; switch (w) { case 0: mood = mood + 2; break; case 1: mood++; break; case 2: mood++; break; case 3: mood--; thirsty--; case 4: mood--; hunger--; } } /*10. 玩耍函数fun(w) 玩耍(消耗8点行动力,受天气w影响)。 w=0,心情+2; w=1,心情+1; w=2,饥饿值+1,口渴值+1,健康值+1; w=3,饥饿值+2,口渴值+1,健康值+1; w=4,饥饿值+1,口渴值+1,健康+1;*/ void fun(int w) { movepoint = movepoint - 8; switch (w) { case 0: mood = mood + 2; case 1: mood++; case 2: hunger++; thirsty++; health++; case 3: hunger = hunger + 2; thirsty++; health++; case 4: hunger++; thirsty++; health++; } } void playing() { movepoint = movepoint + 3; int m, n; srand(time(NULL)); n = rand() % 100; cout << "主人我们来进行猜数字游戏吧" << endl; cout << "游戏规则是我在心里想一个数字,注意这个数字在0-100之间" << endl; cout << "然后主人您才,如果能对了,我会告诉您,如果您猜大了或者您猜小了我都会给您提示" << endl; cout << "go!!!!" << endl; cout << "主人请输入您猜的数字" << endl; while (cin >> m) { if (m == n) { cout << "恭喜您猜对了,我的主人" << endl; break; } if (m<n) { cout << "哎呀,主人你猜小了" << endl; } if (m>n) { cout << "哎呀主人您猜大了" << endl; } } mood++; hunger--; } void playing1() { movepoint = movepoint + 3; int bb; int ans = 0; srand(time(NULL)); N = rand() % 6; M = rand() % 10; cout << "这个游戏是有一个大小为N*M的园子,雨后积了很多水。八连通的积水被认为是在一起的。请求出园子里共有多少个水洼?(八连通是指相邻的八个方向)" << endl; cout << "现在在给您图" << endl; for (int i = 0; i<N; i++) { for (int j = 0; j<M; j++) { field[i][j] = a[rand() % 2]; } } for (int i = 0; i<N; i++) { for (int j = 0; j<M; j++) { cout << field[i][j]; } cout << endl; } cout << "请您猜数字" << endl; while (cin >> bb) { for (int i = 0; i<N; i++) { for (int j = 0; j<M; j++) { if (field[i][j] == 'W') { //从有w的地方开始dfs dfs(i, j); ans++; } } } if (bb != ans) { cout << "你真是个大笨蛋" << endl; cout << "算了人家再给你次机会" << endl; } if (bb == ans) { cout << "男朋友你好厉害啊!!!" << endl; break; } } } void playing2() { movepoint = movepoint + 3; int i, j; char a[1000]; cout << "手机的键盘是这样的:" << endl; cout << "1 2 abc 3 def" << endl; cout << "4 ghi 5 jkl 6 mno" << endl; cout << "7 pqrs 8 tuv 9 wxyz" << endl; cout << "* 0 #" << endl; cout << "要按出英文字母就必须要按数字键多下。例如要按出x就得按9两下,第一下会出w,而第二下会把w变成x。0键按一下会出一个空格。" << endl; cout << "你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。" << endl; char b[29] = { ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' }; cout << "现在给您这些字母你去猜,哈哈哈" << endl; srand(time(NULL)); for (i = 0; i<29; i++) a[i] = b[rand() % 29]; for (i = 0; i<29; i++) cout << a[i]; cout << "主人请输入您猜的数字" << endl; while (cin >> j) { int length, ans = 0; length = strlen(a); for (int i = 0; i<length; i++) { ans += tim(a[i]); } if (j != ans) cout << "呵呵,伦家再给你次机会" << endl; if (j == ans) { cout << "n男朋友你真棒" << endl; break; } } } void daguai() { mood++; int t; cout << "您可以选择一下的boss 1,吕布,2,项羽,3,西门飞雪" << endl; cout << "请您选择" ; cin >> t; switch(t) { case 1: cout <<"您选择打的是吕布,吕布有以下几个技能1,温侯连环戟2,十方横扫3,刚愎4,无双" << endl; lvbu(); break; case 2: cout <<"您选择打的是项羽,项羽有以下几个技能1,剑刃风暴2,剑气3,剑舞4,鬼雄" << endl; xiangyu(); break; case 3: cout <<"您选择打的是西门飞雪,西门飞雪有以下几个技能1,落花飞雪2,追风剑3,追魂剑4,天外飞仙" << endl; ximenfeixue(); break; } } virtual int getl() { return age; } virtual void action(int act, int w, int emg) = 0; /*派生类应当增加寿命,实现action方法。 action(act,w,emg) 0:饲养说明,1.喂食,2.喂水,3.抚摸,4玩耍,5什么也不做,6看病*/ }; void instruction() { cout << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; cout << "+饲养说明: +" << endl; cout << "+每个时间段作为主人的你新增5点行动点,未用完可以累积到下一时段,初始有50点。 +" << endl; cout << "+当行动点相当低时,出现bad end,饲养结束。 +" << endl; cout << "+每天有三个时间段,你可以进行5项操作,喂食、喂水、抚摸、玩耍、不做任何事、玩猜数字大小游戏、数洼地、还有比较难的算手机按键游戏。 +" << endl; cout << "下面介绍一下打怪,每打一次怪无论输赢,宠物心情加一,饥饿度加二,口渴度加二 +" << endl; cout << "+行动点对应消耗:喂食5点,喂水3点,抚摸3点,玩耍8点。玩猜数字大小游戏、数洼地、还有比较难的算手机按键游戏。各加三点行动点 +" << endl; cout << "+打怪游戏中有三个boss,分别是吕布项羽和西门飞雪,在打怪游戏中默认生命值为100,默认行动点为30 +" << endl; cout << "+现在介绍一下宠物以及boss的技能,宠物的技能1,宠物顶计2,宠物快跑3,萌系诱饵4,免疫奶瓶 +" << endl; cout << "+宠物顶计消耗2点技能点,造成20点伤害,宠物快跑消耗4点消耗值,造成20点伤害,萌系诱饵造成20点伤害消耗5点,免疫奶瓶分别是30,6. +" << endl; cout << "+选择不做任何事,则跳到下一时间段。 +" << endl; cout << "+当饥饿与口渴相当低的时候,或者健康指数相当低的时候,会出现bad end,宠物死亡。 +" << endl; cout << "+当宠物年龄到达寿命极限时,出现happy end,宠物寿终正寝。 +" << endl; cout << "+PS:不同的天气对宠物的心情和健康又影响。 +" << endl; cout << "+在不同天气中进行抚摸玩耍会有特殊情况发生,请注意。 +" << endl; cout << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; } class rabbit :virtual public pet { int life; public: rabbit(int l = 28) { life = l; } int getl() { return life; } void action(int act, int w, int emg) { switch (act) { case 0: instruction(); break; case 1: feed(); break; case 2: drink(); break; case 3: touch(w); break; case 4: fun(w); case 5: cout << "什么也不做" << endl; break; case 10: emg = 0;//清零 doctor(); break; case 6: playing(); break; case 7: playing1(); break; case 8: playing2(); break; case 9: daguai(); } } }; class horse :virtual public pet { int life; public: horse(int l = 52) { life = l; } int getl() { return life; } void action(int act, int w, int emg) { switch (act) { case 0: instruction(); break; case 1: feed(); break; case 2: drink(); break; case 3: touch(w); break; case 4: fun(w); break; case 5: cout << "什么也不做" << endl; break; case 10: emg = 0;//清零 doctor(); break; case 6: playing(); break; case 7: playing1(); break; case 8: playing2(); break; case 9: daguai(); } } }; class niu :virtual public pet { int life; public: niu(int l = 28) { life = l; } int getl() { return life; } void action(int act, int w, int emg) { switch (act) { case 0: instruction(); break; case 1: feed(); break; case 2: drink(); break; case 3: touch(w); break; case 4: fun(w); break; case 5: cout << "什么也不做" << endl; break; case 10: emg = 0;//清零 doctor(); break; case 6: playing(); break; case 7: playing1(); break; case 8: playing2(); break; case 9: daguai(); break; } } }; /*五. 时间函数和天气函数 时间函数:表示一天的3个时间段,0表示上午,1表示下午,2表示晚上 天气函数:使用随机数生成0~4之间的数,0:晴,1:阴,2:小雨,3暴雨,4:大风。*/ void period(int t) { t = t % 3; switch (t) { case 0: cout << "上午" << endl; break; case 1: cout << "下午" << endl; break; case 2: cout << "晚上" << endl; break; } } int weather() //天气函数 { int w; w = rand() % 5; switch (w) { case 0: cout << "天气:晴。" << endl; break; case 1: cout << "天气:阴。" << endl; break; case 2: cout << "天气:小雨。" << endl; break; case 3: cout << "天气:暴雨。" << endl; break; case 4: cout << "天气:大风。" << endl; break; } return w; } int raise(int select) { int life, date, w, act; int t = 0; int emg, newstep, newage; pet *petc; //动态建立对象,实现领养 switch (select) { case 1: petc = new rabbit; break; case 2: petc = new horse; break; case 3: petc = new niu; break; } life = petc->getl(); for (date = 1; date<life; date++) { cout << "今天是您领养的第" << date << "天" << endl; w = weather(); //调用天气函数 t = t % 3; petc->p2(); while (t<3) { cout << "现在的时间段是" << endl; period(t); srand(time(NULL)); emg = rand() % 21; cout << "-------------------------------------------------------------------------------------------------------------------" << endl; do { newstep = petc->getmovepoint(); cout << "您的行动点数还有:" << newstep << endl; cout << "您的宠物当前的状态"; petc->show(); cout << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl; if (emg == 20) cout << " 宠物现在的健康状况:生病" << endl; else cout << " 宠物现在的健康状况:良好" << endl; cout << "请选择你想做的事:" << endl; cout << "0、参看说明 1、喂食 2、喂水 3、抚摸 4、逗它玩耍 5、不做任何事" << "6、猜数字大小游戏7、算数洼地的个数8、手机键盘输入游戏,9、宠物打怪"; if (emg == 20) cout << " 10、看医生。" << endl; else cout <<"----------------------------------------------------------------------------" << endl; cout << "请选择您的操作:"; cin >> act; cout << "-------------------------------------------------------------------------------" << endl; petc->action(act, w, emg); cout << "----------------------------------------------------------------------------------------"<<endl; } while (act!=5); petc->emergency(emg); cout << "--------------------------------------------------------------" << endl; newage = petc->getage(); if (newage>life) { cout << "-------------------------------------------------------------------------------" << endl; cout << "由于您的疏忽您的宠物非正常死亡!!!!!bad end" << endl; cout << "-------------------------------------------------------------------------------" << endl; break; } if (newstep<0) { cout << "-------------------------------------------------------------------------------" << endl; cout << "bad end 呵呵,你真鸡儿厉害,还养宠物,真他妈不负责任,你知道从责任俩字咋写么??来来我告诉你" << endl; cout << "-------------------------------------------------------------------------------" << endl; break; } t++; cout << "-------------------------------------------------------------------------------" << endl; } if (newage>life || newstep<0) { cout <<"-------------------------------------------------------------" << endl; cout << "非正常死亡 bad end" << endl; cout << "--------------------------------------------------------------" << endl; break; } } if (date == life) { cout << "-------------------------------------------------------------------------------" << endl; cout << "恭喜,你的宠物已经寿终正寝。" << endl; cout << "-------------------------------------------------------------------------------" << endl; } return 0; } void petshop(int w) { if (w == 1) { cout << " ( ( ( " << endl; cout << " ) ) _..-.._ " << endl; cout << " __)/ ,*,* *. " << endl; cout << " ,* ** ,--. *. " << endl; cout << " ,* 0 *' * " << endl; cout << " (Y ( ;**. " << endl; cout << " *--.____, , ; " << endl; cout << " ((_ ,----* ,---* _,*_,* " << endl; cout << " (((_,- (((______,-* " << endl; cout << "-------------------------------------------------------------------------------" << endl; } if (w == 2) { cout << " ~~%%%%%%%%_,_, " << endl; cout << " ~~%%%%%%%%%-*/./ " << endl; cout << " ~~%%%%%%%-* / *. " << endl; cout << " ~~%%%%%%%%* . ,--; " << endl; cout << " ~~%%%%%%%%* : O " << endl; cout << " ~~%%%%%%%%* : *. " << endl; cout << " ~~%%%%%%%%* *. -, * " << endl; cout << " ~~%%%%%%%%* .**-.- *. " << endl; cout << " ~~%%%%%%%%%* : *-. (,; " << endl; cout << " ~~%%%%%%%%* : *.--.* " << endl; cout << " ~~%%%%%%%* ; " << endl; cout << "-------------------------------------------------------------------------------" << endl; } if (w == 3) { cout << "-------------------------------------------------------------------------------" << endl; cout << " /~~~~/ /~~~~/ " << endl; cout << " / / / / " << endl; cout << " | |_____| | " << endl; cout << " /~ ~/ " << endl; cout << " /~~~~~-_| /~~/ /~~~/ |_-~~~~~ " << endl; cout << " / ==== /| | O| |O | |/ ==== / " << endl; cout << " ~-__-~ | |_---+--+----_| | ~-__-~ " << endl; cout << " |/~ ~/| " << endl; cout << " / / " << endl; cout << " ( O O ) " << endl; cout << " / ./ " << endl; cout << " ~-__________-~| " << endl; cout << " | |/__/| | " << endl; cout << " | |/~~/| | " << endl; cout << " | /~~~~~~~~~/ | " << endl; cout << " | | | | " << endl; cout << " | | | | " << endl; cout << "-------------------------------------------------------------------------------" << endl; } } /*二. 领养函数(adopt):实现领养功能,返回所选的宠物。 1. 说明宠物的种类 2. 选择宠物(调用petshop函数) 3. 给宠物起名字 4. 查看饲养说明(调用instruction函数) 5. 返回所选宠物的种类 */ int adopt() { int hc, b; char name[20]; cout << "现在宠物店里面还有这些可选择的宠物 1.小兔子,2,小马驹,3.大牛 " << endl; cout << "请输入您的选择" << endl; cin >> hc; petshop(hc); cout << "再给您的宠物七个名字呗" << endl; cin >> name; cout << "恭喜您领养了一只名为" << name << "的宠物" << endl; cout << "您是否杨查看饲养说明 是 1,否 2" << endl; cin >> b; if (b == 1) instruction(); return hc; } int main() /*主函数main:实现整个函数的循环 调用领养函数(adopt),返回所选的种类。 判断是否开始饲养。 调用饲养函数(raise),传入所选宠物。 判断是否继续领养宠物(即判断是否跳出循环) */ { int ch, a, sel, choose = 0; while (choose == 0) { sel = adopt(); cout << "您是否开始选择领养的宠物,是 1,否 2" << endl; cout << "您的选择是" << endl; cin >> ch; if (ch == 1) { raise(sel); } cout << "是否继续领养宠物 是 1,否 2" << endl; cin >> a; choose = a - 1; } return 0; }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.95.96.97.98.99.100.101.102.103.104.105.106.107.108.109.110.111.112.113.114.115.116.117.118.119.120.121.122.123.124.125.126.127.128.129.130.131.132.133.134.135.136.137.138.139.140.141.142.143.144.145.146.147.148.149.150.151.152.153.154.155.156.157.158.159.160.161.162.163.164.165.166.167.168.169.170.171.172.173.174.175.176.177.178.179.180.181.182.183.184.185.186.187.188.189.190.191.192.193.194.195.196.197.198.199.200.201.202.203.204.205.206.207.208.209.210.211.212.213.214.215.216.217.218.219.220.221.222.223.224.225.226.227.228.229.230.231.232.233.234.235.236.237.238.239.240.241.242.243.244.245.246.247.248.249.250.251.252.253.254.255.256.257.258.259.260.261.262.263.264.265.266.267.268.269.270.271.272.273.274.275.276.277.278.279.280.281.282.283.284.285.286.287.288.289.290.291.292.293.294.295.296.297.298.299.300.301.302.303.304.305.306.307.308.309.310.311.312.313.314.315.316.317.318.319.320.321.322.323.324.325.326.327.328.329.330.331.332.333.334.335.336.337.338.339.340.341.342.343.344.345.346.347.348.349.350.351.352.353.354.355.356.357.358.359.360.361.362.363.364.365.366.367.368.369.370.371.372.373.374.375.376.377.378.379.380.381.382.383.384.385.386.387.388.389.390.391.392.393.394.395.396.397.398.399.400.401.402.403.404.405.406.407.408.409.410.411.412.413.414.415.416.417.418.419.420.421.422.423.424.425.426.427.428.429.430.431.432.433.434.435.436.437.438.439.440.441.442.443.444.445.446.447.448.449.450.451.452.453.454.455.456.457.458.459.460.461.462.463.464.465.466.467.468.469.470.471.472.473.474.475.476.477.478.479.480.481.482.483.484.485.486.487.488.489.490.491.492.493.494.495.496.497.498.499.500.501.502.503.504.505.506.507.508.509.510.511.512.513.514.515.516.517.518.519.520.521.522.523.524.525.526.527.528.529.530.531.532.533.534.535.536.537.538.539.540.541.542.543.544.545.546.547.548.549.550.551.552.553.554.555.556.557.558.559.560.561.562.563.564.565.566.567.568.569.570.571.572.573.574.575.576.577.578.579.580.581.582.583.584.585.586.587.588.589.590.591.592.593.594.595.596.597.598.599.600.601.602.603.604.605.606.607.608.609.610.611.612.613.614.615.616.617.618.619.620.621.622.623.624.625.626.627.628.629.630.631.632.633.634.635.636.637.638.639.640.641.642.643.644.645.646.647.648.649.650.651.652.653.654.655.656.657.658.659.660.661.662.663.664.665.666.667.668.669.670.671.672.673.674.675.676.677.678.679.680.681.682.683.684.685.686.687.688.689.690.691.692.693.694.695.696.697.698.699.700.701.702.703.704.705.706.707.708.709.710.711.712.713.714.715.716.717.718.719.720.721.722.723.724.725.726.727.728.729.730.731.732.733.734.735.736.737.738.739.740.741.742.743.744.745.746.747.748.749.750.751.752.753.754.755.756.757.758.759.760.761.762.763.764.765.766.767.768.769.770.771.772.773.774.775.776.777.778.779.780.781.782.783.784.785.786.787.788.789.790.791.792.793.794.795.796.797.798.799.800.801.802.803.804.805.806.807.808.809.810.811.812.813.814.815.816.817.818.819.820.821.822.823.824.825.826.827.828.829.830.831.832.833.834.835.836.837.838.839.840.841.842.843.844.845.846.847.848.849.850.851.852.853.854.855.856.857.858.859.860.861.862.863.864.865.866.867.868.869.870.871.872.873.874.875.876.877.878.879.880.881.882.883.884.885.886.887.888.889.890.891.892.893.894.895.896.897.898.899.900.901.902.903.904.905.906.907.908.909.910.911.912.913.914.915.916.917.918.919.920.921.922.923.924.925.926.927.928.929.930.931.932.933.934.935.936.937.938.939.940.941.942.943.944.945.946.947.948.949.950.951.952.953.954.955.956.957.958.959.960.961.962.963.964.965.966.967.968.969.970.971.972.973.974.975.976.977.978.979.980.981.982.983.984.985.986.987.988.989.990.991.992.993.994.995.996.997.998.999.1000.1001.1002.1003.1004.1005.1006.1007.1008.1009.1010.1011.1012.1013.1014.1015.1016.1017.1018.1019.1020.1021.1022.1023.1024.1025.1026.1027.1028.1029.1030.1031.1032.1033.1034.1035.1036.1037.1038.1039.1040.1041.1042.1043.1044.1045.1046.1047.1048.1049.1050.1051.1052.1053.1054.1055.1056.1057.1058.1059.1060.1061.1062.1063.1064.1065.1066.1067.1068.1069.1070.1071.1072.1073.1074.1075.1076.1077.1078.1079.1080.1081.1082.1083.1084.1085.1086.1087.1088.1089.1090.1091.1092.1093.1094.1095.1096.1097.1098.1099.1100.1101.1102.1103.1104.1105.1106.1107.1108.1109.1110.1111.1112.1113.1114.1115.1116.1117.1118.1119.1120.1121.1122.1123.1124.1125.1126.1127.1128.1129.1130.1131.1132.1133.1134.1135.1136.1137.1138.1139.1140.1141.1142.1143.1144.1145.1146.1147.1148.1149.1150.1151.1152.1153.1154.1155.1156.1157.1158.1159.1160.1161.1162.1163.1164.1165.1166.1167.1168.1169.1170.1171.1172.1173.1174.1175.1176.1177.1178.1179.1180.1181.1182.1183.1184.1185.1186.1187.1188.1189.1190.1191.1192.1193.1194.1195.1196.1197.1198.1199.1200.1201.1202.1203.1204.1205.1206.1207.1208.1209.1210.1211.1212.1213.1214.1215.1216.1217.1218.1219.1220.1221.1222.1223.1224.1225.1226.1227.1228.1229.1230.1231.1232.1233.1234.1235.1236.1237.1238.1239.1240.1241.1242.1243.1244.1245.1246.1247.1248.1249.1250.1251.1252.1253.1254.1255.1256.1257.1258.1259.1260.1261.1262.1263.1264.1265.1266.1267.1268.1269.1270.1271.1272.1273.1274.1275.1276.1277.1278.1279.1280.1281.1282.1283.1284.1285.1286.1287.1288.1289.1290.1291.1292.1293.1294.1295.1296.1297.1298.1299.1300.1301.1302.1303.1304.1305.1306.1307.1308.1309.1310.1311.1312.1313.1314.1315.1316.1317.1318.1319.1320.1321.1322.1323.1324.1325.1326.1327.1328.1329.1330.1331.1332.1333.1334.1335.1336.1337.1338.1339.1340.1341.1342.1343.1344.1345.1346.1347.1348.1349.1350.1351.1352.1353.1354.1355.1356.1357.1358.1359.1360.1361.1362.1363.1364.1365.1366.1367.1368.1369.
相关知识
电子宠物C++完整代码可直接运行
【Python程序】用200行Python代码制作有趣的桌面宠物(源码可分享),大打工人解压放松程序,如何用Python制作一个桌面宠物!
【Python教程】教你用Python代码制作一个桌面宠物,专属桌宠,体验感升级1000%(附源码)
python代码宠物
电子宠物系统
【附源码】教你用Python代码制作一只你的专属宠物,桌面体验感升级100%!!
数你用Python代码。制作一个专属桌宠,附源代码
python 250行代码开发一个贪吃蛇
【附源码】用Python代码,制作出一只专属桌面宠物,确定不来一只?保姆级教程,小白也能学会!!
远程宠物自动喂食系统代码
网址: 用python写一个电子宠物系统代码 电子宠物代码教程 https://www.mcbbbk.com/newsview725810.html
上一篇: lora无线通信串口模块 |
下一篇: 电子宠物机中文版vv1.11 |
推荐分享

- 1我的狗老公李淑敏33——如何 5096
- 2南京宠物粮食薄荷饼宠物食品包 4363
- 3家养水獭多少钱一只正常 3825
- 4豆柴犬为什么不建议养?可爱的 3668
- 5自制狗狗辅食:棉花面纱犬的美 3615
- 6狗交配为什么会锁住?从狗狗生 3601
- 7广州哪里卖宠物猫狗的选择性多 3535
- 8湖南隆飞尔动物药业有限公司宠 3477
- 9黄金蟒的价格 3396
- 10益和 MATCHWELL 狗 3352