#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int choiceUser();
int choiceComputer();
void adjudicate(int u, int c);
void main()
{
int u,c;//u为用户出拳,c为电脑出拳
char ans;
do
{
u=choiceUser();
c=choiceComputer();
adjudicate(u,c);
printf("你还要玩吗?(y/n)");
fflush(stdin);//清空键盘缓冲区
scanf("%c",&ans);
}while(ans=='y');
}
int choiceUser()//用户出拳函数
{
int u;
do{
printf("请出拳(1--石头;2--剪刀;3--布):");
scanf("%d",&u);
switch(u)
{
case 1:printf("你出的是:石头/n");break;
case 2:printf("你出的是:剪刀/n");break;
case 3:printf("你出的是:布/n");break;
default:printf("你的输入不正确/n");continue;//输入错误,继续出拳
}
return u;
}while(u<1||u>3);
}
int choiceComputer()//电脑出拳函数
{
int c;
srand(time(0));//种下时间种子
c=rand()%3+1;//随机产生1~3的正整数
switch(c)
{
case 1:printf("电脑出的是:石头/n");break;
case 2:printf("电脑出的是:剪刀/n");break;
case 3:printf("电脑出的是:布/n");break;
}
return c;
}
void adjudicate(int u,int c)
{
if(u==1&&c==2||u==2&&c==3||u==3&&c==1)
{
printf("你赢了");
}
if(u==1&&c==3||u==2&&c==1||u==3&&c==2)
{
printf("你输了");
}
if(u==c)
{
printf("你和电脑平手.");
}
printf("/n");
}