用C语言创作睿智小游戏——猜拳篇
突发奇想,打算用C语言编写一个猜拳游戏,深知网上有很多教程,未看教程,自己开始盲编,
首先需要定义猜拳游戏的精髓“石头,剪刀,布”,这里我们用数字定义:
//赋予1=石头,2=剪刀,3=布
我们平时在玩猜拳游戏的时候是玩家VS玩家,有很多心理战术(察言观色),但是我们电脑是个面无表情的玩家!我们跟电脑对战只有三分之一的几率获胜
好了,知道这个游戏是玩家VS电脑,接下来就是电脑的出拳机制,它的随机性,这时候我们使用“随机数生成”
//产生随机数
int a = rand() % 3 + 1;
但是这种随机数产生是一次性的,我们需要加入随机数种子
srand((unsigned int)time);
而且还需要引入头文件
#include<time.h>
我们来用printf()来检验每次产生的随机数是否正确(在正式运行时我们需要隐藏打印出来的随机数,以确保游戏的公平性。看着电脑出拳并没有游戏体验呐!!)
//printf("%d\n", a);
//查验随机数
在随机数中我们已经赋予电脑值为:
int a
我们要给玩家赋予:
unsigned int num = 0;
printf("请输入你要出的数字:");
scanf("%d", &num);
接下来就是判断我们游戏的胜负关系,大家都知道“石头,剪刀,布”是相互克制关系,我们赋予的值,“1,2,3”也是克制关系可以理解为“1赢2,2赢3,3赢1”,
这时候我们就开始确定玩家胜利的条件:
当电脑输入1(石头)时,玩家输入3(布)为胜利。
当电脑输入2(剪刀)时,玩家输入1(石头)为胜利。
当电脑输入3(布)时,玩家输入3(剪刀)为胜利。
a == 1 && num == 3 || a == 2 && num == 1 || a == 3 && num == 2
程序用与(&&)或(||)相连。
同理玩家失败的条件:
当电脑输入1(石头)时,玩家输入2(剪刀)为失败。
当电脑输入2(剪刀)时,玩家输入3(布)为失败。
当电脑输入3(布)时,玩家输入1(石头)为失败。
a == 1 && num == 2 || a == 2 && num == 3 || a == 3 && num == 1
其他情况则为平局:
玩家与电脑显示数值相同
a == num
用 if…else if…else…函数来判断结果:
if()
{
}
else if()
{
}
else{
}
注:(当分析这一段时,我犯了一个错误,导致整个分析方法过于复杂
当时忘记输入“= =”两个等于,只输入一个导致报错,当时分析出了这种方法:
a>num&&a!= 2&&num!=2
假设电脑出手,数值a=3,电脑获胜条件只能是玩家num=1,所以必须要电脑数值大于玩家,且电脑与玩家都不能等于2)
到这里,我们猜拳程序就差不多完成了80%,接下来要开始完善代码与程序。
加入睿智的开场白:
printf("******************************************\n");
printf("* 欢迎来到睿智游戏之家 *\n");
printf("* 本次您要玩的游戏是“剪刀,石头,布” *\n");
printf("* 请按照规定输入: *\n");
printf("* 输入数字“1”进入游戏