一个抽签似的《剪刀石头布》(C语言)
今天我们来介绍一个游戏他叫:~~ 剪刀石头布 ~~哦!!布………他其实是一个抽签来的。
一个传统的剪刀石头布,大概是这样的——>
就是一个根据双方出什么来判断,一个游戏谁胜谁负。
但是不觉得这样的规则,放在编程中,就对我们程序员稍微有点不友好了吗?(就是有点麻烦……)
于是我想到了一个简单的方法,来判断双方谁胜谁负。
就是,
*不 考 虑
玩家出什么,而是通过计算机随机出的数字,来判断到底是胜、是负、是平局*
- 六
温馨提醒 :以下两个函数的头文件分别是 stdlib.h 和 time.h
通过srand()函数与time()之间的配合来产生一个真随机数
再通过rand()%3,得到0、1、2之间的某一个数字
然后就是运用 if 语句:
- 若是0,则玩家赢;
- 若是1,则电脑赢;
- 若是2,则是平局;
这样子来看是不是很像抽签呢?
要是想看看你的运势,就把代码复制过去玩几局吧!
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int game();
void menu()
{
printf("#####################################\n");
printf("### ###\n");
printf("### 1、开始 0、退出 ###\n");
printf("### ###\n");
printf("#####################################\n");
}
int begin()
{
int x = 0;
printf("键入:1 or 0\n");
while(1)
{
printf("请选择:");
scanf("%d",&x);
switch(x)
{
case 1:
printf("\n成功进入游戏\n");
game();
printf("\n上场游戏结束。\n 1 or 0\n");
break;
case 0:
printf("退出游戏\n");
goto Loop;
break;
default:
printf("输入格式错误,请重新输入!\n");
break;
}
}
Loop:
return 0;
}
int game()
{
int ps = 0;
//玩家与电脑出招
int cop = rand()%3;//cop ~~ [0,2]
printf("\n玩家:\n\n石头:0\n剪刀:1\n布 :2\n请选择:");
scanf("%d",&ps);
//玩家阶段
if(ps==0)
{
printf("\n玩家出:石头\n");
}
else if(ps==1)
{
printf("\n玩家出:剪刀\n");
}
else if(ps==2)
{
printf("\n玩家出: 布\n");
}
//电脑阶段+判断阶段
if(cop==0)//当cop==0时,电脑输 。
{
if(ps==0)
{
printf("电脑出:剪刀\n");
}
else if(ps==1)
{
printf("电脑出: 布\n");
}
else if(ps==2)
{
printf("电脑出:石头\n");
}
printf("\n玩家胜出!!\n");
}
else if(cop==1) //当cop==1时,电脑赢 。
{
if(ps==0)
{
printf("电脑出:布\n");
}
else if(ps==1)
{
printf("电脑出:石头\n");
}
else if(ps==2)
{
printf("电脑出:剪刀\n");
}
printf("\n电脑胜出!!\n");
}
else if(cop==2) //当cop==2时,平局 。
{
if(ps==0)
{
printf("电脑出:石头\n");
}
else if(ps==1)
{
printf("电脑出:剪刀\n");
}
else if(ps==2)
{
printf("电脑出: 布\n");
}
printf("\n平局……\n");
}
return 0;
}
int main()
{
srand((unsigned)time(NULL));//unsigned >= 0
menu();
begin();
return 0;
}
以上纯属萌新发言,大佬见了莫怪,莫笑。