石头剪刀布的游戏可以运行,输出的结果有点不正常?求大神。。。
#include <stdio.h>#include <stdlib.h>
int pscore=0,cscore=0,count=0;
int cshowfist()
{int show;
srand(time(NULL));
show=rand()%3+1;
switch (show)
{ case 1:
printf("\n电脑出:剪刀");break;
case 2:
printf("\n电脑出:石头");break;
case 3:
printf("\n电脑出:布");break;
}
return show;}
int pshowfist()
{int show;
printf("\n请玩家出拳:1.剪刀 2.石头 3.布<输入相应的数字>");
scanf("%d",&show);
switch (show)
{ case 1:
printf("玩家出:剪刀");break;
case 2:
printf("玩家出: 石头");break;
case 3:
printf("玩家出: 布");break;
}
return show;}
void judge(int p ,int c )
{ if(p=2 && c==2)
{printf("\n结果,令人意外!竟以和局收场。");}
else if(p=1 && c==1)
{printf("\n结果,令人意外!竟以和局收场。");}
else if(p=3 && c==3)
{printf("\n结果,令人意外!竟以和局收场。");}
else if (p==1 && c==3)
{printf("\n ^_^ 恭喜,玩家赢得胜利!");pscore++; }
else if (p==2 && c==1)
{printf("\n ^_^ 恭喜,玩家赢得胜利!");pscore++;}
else if (p==3 && c==2)
{printf("\n ^_^ 恭喜,玩家赢得胜利!");pscore++; }
else if(p==3 && c==1)
{printf("\n真笨,输给机器!!!"); cscore++;}
else if(p==2 && c==3)
{printf("\n真笨,输给机器!!!"); cscore++;}
else
{printf("\n真笨,输给机器!!!"); cscore++;}
}
void getscore()
{int result;
printf("\n---------------------------------------------------------------------");
printf("\n对战%d次,玩家赢%d次,平%d次,输%d次!",count,pscore,count-pscore-cscore,cscore);
printf("\n-------------------------------------------------------------------");
if(pscore==cscore)
result=1;
else if(pscore>cscore)
result=2;
else
result=3;
if(result==1)
printf("\n结果:打成平手,下次再分高下!");
else if(result==2)
printf("\n结果:玩家获得最终胜利,恭喜!");
else
printf("\n结果:玩家落败,真笨!");
printf("\n");
}
int main(int argc, char *argv[])
{char x='y';
int p;
int c;
fflush(stdin);
while(x=='y')
{
p=pshowfist();
c=cshowfist();
judge(p,c);
count++;
printf("玩家是否继续游戏?(y/n)");
fflush(stdin);
x=getch();
system("cls");
}
getscore();
system("PAUSE");
return 0;
}