C语言编程:剪刀石头布的小游戏

2024-12-18 02:40:19
推荐回答(3个)
回答1:

原创:
TC2.0以及gcc 编译通过

/*=======================================================
*Author :wacs5
*Date :20100601(YYYYMMDD)
*Function :剪刀石头布
*=======================================================*/
#include
#include
#include
#include

int main()
{
char name[4][15]={"","scissors","stone","cloth"};
int x[2];
int i;

srand(time(NULL));
for (i=0;i<10;i++) /*10 times game*/
{
x[0]=1+rand()%3; /*generate a number from 1 to 3*/
x[1]=1+rand()%3; /*generate another number from 1 to 3*/
printf("A=%-12sB=%-12s\t",name[x[0]],name[x[1]]);
if (x[0]==x[1])
printf("draw\n"); /*和*/
else if (x[0]%3+1==x[1]) /*lost*/
printf("lost\n");
else /*win*/
printf("win\n");
}

getch();
return 0;
}

回答2:

石头
剪子

A出
B出
a石头遇b剪子
a赢
a剪子遇b布
a赢
a布遇b石头
a赢
b石头遇a剪子
b赢
b剪子遇a布
b赢
b布遇a石头
b赢
若相同
则平局

回答3:

#include
#include
#include

const char* gits(int i)
{
switch(i)
{
case 0:
return "石头";
case 1:
return "剪子";
default:
return "布 ";
}
}

int main()
{
time_t t = time(NULL);
srand((unsigned int)t);
while(1)
{
int a = rand()%3;
int b = rand()%3;

printf("A: %s, B: %s", gits(a), gits(b));
if (
(a==0&&b==1)||
(a==1&&b==3)||
(a==3&&b==0)
)
{
printf("\tA 赢了\n");
system("pause");
continue;
}

if (
(b==0&&a==1)||
(b==1&&a==3)||
(b==3&&a==0)
)
{
printf("\tB 赢了\n");
system("pause");
continue;
}

printf("\t 持平了\n");
system("pause");
continue;
}
system("pause");
return 0;
}