标题: 一个有着bug的游戏 [打印本页] 作者: 卖毛玉的小贩 时间: 2015-7-17 21:21 标题: 一个有着bug的游戏 今天去问老师的,结果因为让次调函数当主调函数,所以有一个小bug,发来特地来警告大伙
#include <stdio.h>
#include <stdlib.h>
int suiJi(int a);
int suiJi1 (int a);
int suiJi2 (int a);
int shuRu();
int shuRu1();
int shuRu2();
int biJiao(int a,int b, int c,int d);
int biJiao1(int a,int b, int c);
int biJiao2(int a,int b);
int main(int argc, const char * argv[])
{
suiJi(2);
}
/*
黑白配游戏思路:
先定义三个随机数。
定义玩家输入数。
对四个数进行判定,如果两两相同,就重新来,三一就判定一输,并且剩下三个继续游戏,直到剩下两个。
两个进行剪刀石头布游戏。
玩家在此输一次都将被淘汰,电脑不在分出胜负。
*/
//这是四个人的游戏设定与比较:
int suiJi(int a)//随机三个电脑数,并且从键盘上获取数。
{
int i,n,k,f;
i = n = k =0;
i = arc4random_uniform(a);
n = arc4random_uniform(a);
k = arc4random_uniform(a);
f = shuRu();
biJiao(i, n, k, f);//调用函数,并淘汰一人。
return 0;
}
int shuRu()//在键盘上输入参与游戏的数
{
int a=0;
printf("0为黑,1为白,请输入:\n");
for (; ; ) {
scanf("%d",&a);
if (a==0||a==1) {
return a;
}else
printf("你看不懂字幕吗?\n");
}
return 0;
}
int biJiao(int a,int b, int c,int d)//四个人进行比较
{
if (!((a==b&&b==c)&&(c==d&&b==d)&&(a==c&&a==d))&&((a==c&&c==d)||(b==c&&c==d)||(a==b&&b==d)))
//玩家在第一局胜利,淘汰一个电脑
{
printf("恭喜你进入第二回合\n");
printf("小王=%d\t,小明=%d\t,小红=%d\t自己=%d\n",a,b,c,d);
if ((a!=b)&&(a!=c)&&(a!=d)) {
printf("未来隔壁小王已被淘汰了\n");
}else if ((b!=c)&&(b!=d)){
printf("数学课本调皮小明以出局\n");
}else{
printf("唯一妹子小红已惨遭淘汰\n");
}
int suiJi1(int a)//随机两个电脑数,并且从键盘上获取数。
{
int i,n,k;
k = -1;
i = n =0;
i = arc4random_uniform(a);
n = arc4random_uniform(a);
k = shuRu1();
biJiao1(i, n, k);//调用函数,并淘汰一人。
return 0;
}
int shuRu1()//在键盘上输入参与游戏的数
{
int a=0;
printf("\n依旧是0为黑,1为白\n");
for (; ; ) {
scanf("%d",&a);
if (a==0||a==1) {
return a;
}else
printf("对于你这种到了第二局依旧傻傻分不清的家伙我没话说\n");
}
return 0;
}
int biJiao1(int a,int b, int c)//三个人进行比较
{
if (((a==c)||(b==c))&&(a!=b)) {
printf("恭喜你又赢了,即将进入最后一回合\n");
printf("蒙面的小X=%d\t,蒙面的小小X=%d\t自己=%d\n",a,b,c);
suiJi2(3);
}
else if (a==b&&b==c){
printf("平局,请重新输入:\n");
printf("蒙面的小X=%d\t,蒙面的小小X=%d\t自己=%d\n",a,b,c);
shuRu1();
}else{
printf("可惜,你倒在了这关\n");
}
return 0;
}
//现在开始进行一对一的剪刀石头布游戏
//两个人的设定:
int suiJi2 (int a)//开始随机并提示用户输入
{
int j = -1;
int n = -1;
j=arc4random_uniform(3);
printf("0是石头,1是布,2是剪刀\n");
n= shuRu2();
biJiao2(j, n);
return 0;
}
int shuRu2()
{
printf("已经是最后一局了哦,加把劲啊!\n");
for (int b=-1; ; ) {
scanf("%d",&b);
if (b==0||b==1||b==2) {//对用户输入进行判定
return b;
}else
printf("你傻不傻啊,这都最后一把了啊!\n");
}
return 0;
}
int biJiao2 (int a,int b)//对两个数在一次进行判断
{