凡亿专栏 | 如何用C语言实现剪刀石头布?
如何用C语言实现剪刀石头布?

“剪刀石头布”这个游戏,想必小伙伴们都很熟悉了,两个人在玩游戏时,事先都不知道对方要出什么,这过程中存在随机性,那么今天将以剪刀石头布为重点,分享如何用C语言来实现它。

如上文所述,剪刀石头布游戏存在偶然性和随机性,所以我们要用上C语言的rand()函数和time()函数来实现这个随机性特点,rand()函数的作用是产生随机数,根据提供给srand()的种子值返回一个随机数,要保证每次随机结果不同,需要在srand()里调用time()函数,因为每次运行时间是不同的,所以seed也会不同,运行出来的结果也会不同,也就能保证随机数。

需要注意的是,rand()内部是以线性同余法实现的,是伪随机数,由于它的周期较长,所以在某种程度上可以看成是随机的;rand()函数需要由srand()函数用来设置rand()产生随机数时的随机数种子,参数seed必须是整数,可通过time(0)或geypid(0)的返回值作为seed。

具体代码如下:

#include

#include

#include

#include

int main()

{

srand((unsigned)time(NULL));

char str1[] = "rock", str2[] = "scissors", str3[] = "paper";

char player[10] = { 0 }, GAMBLER[10] = { 0 };

int a = rand() % 3 + 1;

switch (a)

{

case 1:

strcpy(GAMBLER, str1); break;

case 2:

strcpy(GAMBLER, str2); break;

case 3:

strcpy(GAMBLER, str3); break;

}

printf("欢迎进入“石头剪刀布”\n准备好了么?玩家\n");

printf("请出拳:\n");

printf("提示:石头rock,剪刀scissors,布paper\n");

scanf("%s", &player);

int P = strlen(player), G = strlen(GAMBLER);

printf("你出拳:%s\nGMABLER出拳:%s\n", player, GAMBLER);

if (strcmp(GAMBLER, player) != 0)

{

if (P - G > 0)

{

if (P - G == 4)

printf("你输了\n\n");

else

printf("你赢了\n");

}

else

{

if(P-G==-4)

printf("你赢了\n");

else

printf("你输了\n");

}

}

else

printf("平局");

return 0;
}

00001. 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论