布置给一个小学生的作业,刚刚讲完随机函数。随堂写了个石头剪刀布的程序。要求他们以此为蓝本,扩充一下。
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include<cstdio>
using namespace std;
int 判断输赢(int n, int p)
{
if (n == 1) //人出石头
{
if (p == 2) return 1;
if (p == 3) return 2;
return 0;
}
if (n == 2) //人出剪刀
{
if (p == 3) return 1;
if (p == 1) return 2;
return 0;
}
if (n == 3) //人出布
{
if (p == 1) return 1;
if (p == 2) return 2;
return 0;
}
}
void game()
{
srand(time(0));
int pc = rand() % 3 + 1; //1石头 2 剪刀 3布
int n = 0;
cin >> n;
if (1 == 判断输赢(n, pc))
{
cout << "人类胜利" << endl;
}
else if (2 == 判断输赢(n, pc))
{
cout << "电脑胜利" << endl;
}
else
{
cout << "平局" << endl;
}
}
int tmain()
{
while (1)
{
game();
}
return 0;
}
练习一下函数的使用。然后两天过后有个孩子交上来了一份这样的代码。
虽然代码整体设计还是有所混乱,但是从控制力上来说。真的是蛮不错了,再想想自己当年的五年级,似乎还在打弹珠,和同学炫耀刚刚抽到的数码宝贝小玩具。
#include<bits/stdc++.h>
#include<cmath>
#include<cstdlib>
#include<ctime>
using namespace std;
int a=0;
int jb=0;
int zuanshi=0;
int game2();
int shangdian2();
int time();
int game();
int jb2(int m);
int guocheng();
int zs(int m)
{
if(m==1)
{
zuanshi=zuanshi+1000;
return zuanshi;
}
if(m==2)
{
zuanshi=zuanshi+500;
return zuanshi;
}
}
int jb2(int m)
{
int jinbi=0;
if(m==1)
{
jb=jb+2000;
return jb;
}
if(m==0)
{
jb=jb+1000;
return jb;
}
}
int shangdian1(int m2)
{
if(m2==1)
{
printf("您的金币数为");
cout<<jb;
cout<<endl;
int a;
printf("这里有1.AK47(3000),2.巴雷特(20000),3.沙漠之鹰(2000),4.军用轻斧(1500)");
cin>>a;
if(a==1)
{
if(jb>=3000)
{
jb=jb-3000;
printf("购买成功");
printf("是否继续游戏\n1.是 2.否");
int jixu;
cin>>jixu;
if(jixu==1)
{
game2();
}
}
else
{
printf("金币不够");
printf("是否继续游戏\n1.是 2.否");
int jixu;
cin>>jixu;
if(jixu==1)
{
game2();
}
}
}
if(a==2)
{
if(jb>=20000)
{
jb=jb-20000;
printf("购买成功");
printf("是否继续游戏\n1.是 2.否");
int jixu;
cin>>jixu;
if(jixu==1)
{
game2();
}
}
else
{
printf("金币不够");
printf("是否继续游戏\n1.是 2.否");
int jixu;
cin>>jixu;
if(jixu==1)
{
game2();
}
}
}
if(a==3)
{
if(jb>=2000)
{
jb=jb-2000;
printf("购买成功");
printf("是否继续游戏\n1.是 2.否");
int jixu;
cin>>jixu;
if(jixu==1)
{
game2();
}
}
else
{
printf("金币不够");
printf("是否继续游戏\n1.是 2.否");
int jixu;
cin>>jixu;
if(jixu==1)
{
game2();
}
}
}
if(a==4)
{
if(jb>=1500)
{
jb=jb-1500;
printf("购买成功");
printf("是否继续游戏\n1.是 2.否");
int jixu;
cin>>jixu;
if(jixu==1)
{
game2();
}
}
else
{
printf("金币不够");
printf("是否继续游戏\n1.是 2.否");
int jixu;
cin>>jixu;
if(jixu==1)
{
game2();
}
}
}
}
}
int guocheng()
{
int jinbi=0;
int zuanshi=0;
double dengji=1;
int m2;
int a;
do
{
int s;
m2=game();
if(m2==1)
{
printf("胜利了!!!\n");
printf("金币加2000\n");
printf("钻石加1000\n");
printf("等级加1\n");
jb2(m2);
zs(m2);
dengji=dengji+1;
}
if(m2==0)
{
printf("输了。\n");
printf("金币加1000\n");
printf("钻石加500");
printf("等级加0.5");
jb2(m2);
zs(m2);
dengji=dengji+0.5;
}
printf("是否结束游戏\n");
printf("1是 2否\n(输入序号)");
int m;
cin>>m;
while(m!=1&&m!=2)
{
printf("输入错误\n");
printf("是否结束游戏\n");
printf("1是 2否\n(输入序号)");
cin>>m;
}
if(m==1)
{
break;
}
if(m==2)
{
printf("好的,我们继续游戏\n");
printf("您要去哪里?\n1.商店购买枪 2.继续游戏\n");
printf("(输入序号)");
int xuhao2;
cin>>xuhao2;
while(xuhao2!=1&&xuhao2!=2)
{
printf("输入错误\n");
printf("您要去哪里?\n1.商店购买枪 2.继续游戏\n");
printf("(输入序号)");
cin>>xuhao2;
}
if(xuhao2==1)
{
shangdian1(xuhao2);
}
}
}while(1);
printf("游戏结束!!!");
}
int gamezhongjian(int n)
{
int s;
srand(time(0));
int z=rand(),zhaoshu=z%3+1;
if(n==1)
{
if(zhaoshu==1)
{
printf("平局\n");
return s=2;
}
if(zhaoshu==2)
{
printf("人类胜利\n");
return s=0;
}
if(zhaoshu==3)
{
printf("电脑胜利\n");
return s=1;
}
}
if(n==2)
{
if(zhaoshu==1)
{
printf("电脑胜利\n");
return s=1;
}
if(zhaoshu==2)
{
printf("平局\n");
return s=2;
}
if(zhaoshu==3)
{
printf("人类胜利\n");
return s=0;
}
}
if(n==3)
{
if(zhaoshu==1)
{
printf("人类胜利\n");
return s=0;
}
if(zhaoshu==2)
{
printf("电脑胜利\n");
return s=1;
}
if(zhaoshu==3)
{
printf("平局\n");
return s=2;
}
}
}
void jiemian2(int a)
{
int b;
if(a==1)
{
printf("1终结战士\n");
printf("2哪吒将军\n");
printf("3月宫守卫\n");
printf("4斗罗大陆--唐三\n");
printf("5阳光沙滩\n");
printf("(输入序号)\n");
cin>>b;
if(b==1)
{
printf("好的,你已经成为终结战士\n");
}
if(b==2)
{
printf("好的,你已经成为哪吒将军\n");
}
if(b==3)
{
printf("好的,你已经成为月宫守卫\n");
}
if(b==4)
{
printf("好的,你已经成为唐三\n");
}
if(b==5)
{
printf("好的,你已经成为阳光沙滩\n");
}
while(b<=0||b>=6)
{
printf("输入错误,请重新输入\n");
printf("1终结战士\n");
printf("2哪吒将军\n");
printf("3月宫守卫\n");
printf("4斗罗大陆--唐三\n");
printf("(输入序号)\n");
cin>>b;
if(b==1)
{
printf("好的,你已经成为终结战士\n");
}
if(b==2)
{
printf("好的,你已经成为哪吒将军\n");
}
if(b==3)
{
printf("好的,你已经成为月宫守卫\n");
}
if(b==4)
{
printf("好的,你已经成为唐三\n");
}
}
}
if(a==2)
{
printf("1兔兔战士\n");
printf("2月宫仙子\n");
printf("3阳光校花\n");
printf("4斗罗大陆--小舞\n");
printf("5古代公主\n");
printf("(输入序号)\n");
cin>>b;
if(b==1)
{
printf("好的,你已经成为兔兔战士\n");
}
if(b==2)
{
printf("好的,你已经成为月宫仙子\n");
}
if(b==3)
{
printf("好的,你已经成为阳光校花\n");
}
if(b==4)
{
printf("好的,你已经成为小舞\n");
}
if(b==5)
{
printf("好的,你已经成为古代公主\n");
}
while(b<=0||b>=6)
{
printf("输入错误,请重新输入\n");
printf("1兔兔战士\n");
printf("2月宫仙子\n");
printf("3阳光校花\n");
printf("4斗罗大陆--小舞");
printf("(输入序号)\n");
cin>>b;
if(b==1)
{
printf("好的,你已经成为兔兔战士\n");
}
if(b==2)
{
printf("好的,你已经成为月宫仙子\n");
}
if(b==3)
{
printf("好的,你已经成为阳光校花\n");
}
if(b==4)
{
printf("好的,你已经成为小舞\n");
}
}
return;
}
}
void jiemian()
{
int a;
printf("欢迎进入《吃鸡(剪刀、石头、布版)》\n");
printf("请输入密码:(密码是");
srand(time(0));
int mima2=rand()%100+1;
cout<<mima2<<"*15的积)";
cout<<endl;
printf("不要空格!!!");
int mima;
printf("\n");
cin>>mima;
while(mima!=mima2*15)
{
printf("输入错误,请重新输入\n");
printf("请重新输入密码:(密码");
cout<<mima2<<"*15的积)";
cout<<endl;
printf("不要空格!!!");
cin>>mima;
}
printf("你好,请输入性别\n");
printf("1男,2女(输入序号)\n");
cin>>a;
int b;
while(a!=1&&a!=2)
{
printf("输入错误,请重新输入\n");
printf("你好,请输入性别\n");
printf("1男,2女(输入序号)\n");
cin>>a;
}
jiemian2(a);
return;
}
int game()
{
printf("游戏开始!!!");
int m;
int i=0;
int j=0;
for(;;)
{
int renxue=100;
int dianxue=100;
printf("\n请先出招\n");
printf("(1石头)\n");
printf("(2剪刀)\n");
printf("(3布)\n");
printf("(输入序号)\n");
int n;
cin>>n;
srand(time(0));
int z=rand(),qiang2=z%6+1;
int s;
int m;
while(n!=1&&n!=2&&n!=3)
{
printf("输入错误,请重新输入\n");
printf("\n请再次出招\n");
printf("(1石头)\n");
printf("(2剪刀)\n");
printf("(3布)\n");
printf("(输入序号)\n");
cin>>n;
}
int game3=gamezhongjian(n);
if(game3==0)
{
i++;
do
{
if(i==1)
{
printf("人类准备降落");
break;
}
if(i==2)
{
printf("人类落地");
break;
}
if(i==3)
{
printf("人类找枪!!!");
printf("\n");
}
if(i==4)
{
printf("人类拿到枪\n");
printf("什么枪 1.AK47 2.巴雷特 3.AWM 4.98k 5.冲锋枪--采薇\n");
printf("(选择序号)");
int qiang;
cin>>qiang;
while(qiang<=0&&qiang>=6)
{
printf(" 输入错误,请重新输入\n");
printf(" 1.AK47 2.巴雷特 3.AWM 4.98k 5.冲锋枪--采薇\n");
printf("(选择序号)\n");
printf("人类离胜利近了一步!!");
cin>>qiang;
}
if(qiang==1)
{
cout<<endl;
printf("恭喜获得AK47");
cout<<endl;
break;
}
if(qiang==2)
{
cout<<endl;
printf("恭喜获得巴雷特");
cout<<endl;
break;
}
if(qiang==3)
{
cout<<endl;
printf("恭喜获得AWM");
cout<<endl;
break;
}
if(qiang==4)
{
cout<<endl;
printf("恭喜获得98K");
cout<<endl;
break;
}
if(qiang==5)
{
cout<<endl;
printf("恭喜获得冲锋枪--采薇");
cout<<endl;
break;
}
}
if(i==5)
{
printf("人类找子弹!!!\n");
}
if(i==6)
{
printf("人类找到子弹!!!\n");
break;
}
if(i==7)
{
dianxue=dianxue/2;
printf("电脑血量只剩百分之50");
printf("人类离胜更近一步!!");
break;
}
if(i==8)
{
printf("电脑死亡!KO!!\n");
m=1;
return m;
break;
}
}while(s==1);
}
if(game3==1)
{
j++;
do
{
if(j==1)
{
printf("电脑准备降落");
break;
}
if(j==2)
{
printf("电脑落地");
break;
}
if(i==3)
{
printf("电脑找枪!!!");
printf("\n");
}
if(j==4)
{
printf("电脑拿到枪\n");
printf("什么枪 1.AK47 2.巴雷特 3.AWM 4.98k 5.冲锋枪--采薇\n");
printf("(选择序号)\n");
printf("选择");
cout<<qiang2<<endl;
printf("电脑离胜利近了一步!!");
break;
}
if(qiang2==1)
{
cout<<endl;
printf("恭喜获得AK47");
cout<<endl;
break;
}
if(qiang2==2)
{
cout<<endl;
printf("恭喜获得巴雷特");
cout<<endl;
break;
}
if(qiang2==3)
{
cout<<endl;
printf("恭喜获得AWM");
cout<<endl;
break;
}
if(qiang2==4)
{
cout<<endl;
printf("恭喜获得98K");
cout<<endl;
break;
}
if(qiang2==5)
{
cout<<endl;
printf("恭喜获得冲锋枪--采薇");
cout<<endl;
break;
}
if(j==5)
{
printf("电脑找子弹!!!\n");
}
if(j==6)
{
printf("电脑找到子弹!!!\n");
}
if(j==7)
{
renxue=renxue/2;
printf("人类血量只剩百分之50");
printf("电脑离胜更近一步!!");
break;
}
if(j==8)
{
printf("人类死亡!KO!!\n");
m=0;
return m;
}
}while(s==0);
}
}
}
int main()
{
jiemian();
guocheng();
}
int game2()
{
guocheng();
}