一个抽签似的《剪刀石头布》(C语言)

一个抽签似的《剪刀石头布》(C语言)

今天我们来介绍一个游戏他叫:~~ 剪刀石头布 ~~哦!!布………他其实是一个抽签来的。
一个传统的剪刀石头布,大概是这样的——>在这里插入图片描述
就是一个根据双方出什么来判断,一个游戏谁胜谁负。

但是不觉得这样的规则,放在编程中,就对我们程序员稍微有点不友好了吗?(就是有点麻烦……)

于是我想到了一个简单的方法,来判断双方谁胜谁负。
就是,

*不 考 虑

玩家出什么,而是通过计算机随机出的数字,来判断到底是胜、是负、是平局*

温馨提醒 :以下两个函数的头文件分别是 stdlib.htime.h

通过srand()函数与time()之间的配合来产生一个真随机数

再通过rand()%3,得到0、1、2之间的某一个数字

然后就是运用 if 语句:

  1. 若是0,则玩家赢;
  2. 若是1,则电脑赢;
  3. 若是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;
}

以上纯属萌新发言,大佬见了莫怪,莫笑。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入一下?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值