前言:
今天加大点难度,直接开始用C语言代码来做一个小游戏:石头剪刀布。这个游戏看似很简单,但是我们这里要跟计算机比猜拳,就要用到一些随机种子函数和头文件了,今天先打算做一个简易版的石头剪刀布,能完成相应功能,输出结果就行,后续会补充更高级的一些代码来实现。
思路分析;
首先要猜拳,肯定要想好自己怎么出拳对吧?我们这里为了简化问题:用1代表拳头,2代表剪刀,3代表布。这里我们出拳问题解决了,那怎么实现计算机也会出拳呢?这里用到了srand((unsigned)time(NULL))函数
用法如下:函数初始化随机种子,会提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数,如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复,常常使用系统时间来初始化,然后再用rand函数对3取余+1,实现随机数从1-3选出一个数,即随机出石头剪刀布,这样电脑出拳的问题也解决了。
最后再用简单的if语句来判定条件来输出游戏结果这个简易版的石头剪刀布就做好了。
代码实现:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int player;
int computer;
int playerWin = 0, computerWin = 0, balance = 0;
scanf( "%d", &player );
while( player != 0 )
{
srand( time( NULL ) );
computer = rand() % 3 + 1;
if( computer == player )
{
printf( "%s\n", "平局" );
balance++;
}
else if( ( player == 1 && computer == 2 ) || ( player == 2 && computer == 3 ) || ( player == 3 && computer == 1 ) )
{
printf( "%s\n", "玩家胜利" );
playerWin++;
}
else
{
printf( "%s\n", "电脑胜利" );
computerWin++;
}
scanf( "%d", &player );
}
printf( "玩家胜利%d次, 电脑胜利%d次,平局%d次\n", playerWin, computerWin, balance );
return 0;
}
小结:
因为要用到srand函数和rand函数需要使用stdlib.h和time.h工具箱,之后使用了一连串if条件判断语句实现了对于结果的判定最后到输出结果,这个小程序就做好了。后续依然会对这个游戏进行一个升级,让这个代码高级一点。明天准时更新。