关于猜数字游戏的实现

这篇博客介绍了如何实现一个简单的猜数字游戏,包括玩家输入选择、随机数生成及比较、游戏循环与退出机制。代码使用C语言编写,通过do-while循环和switch-case结构控制游戏流程,使用rand()函数生成1到100的随机数,玩家输入与之比较,直至猜中。此外,还展示了如何通过srand()函数设置随机数起点,并对代码进行了美化,提高用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于简易猜数字游戏的实现

对于今天的三子棋游戏,有以下几个特性:

  • 玩家通过输入数字来选择是否进行游戏或退出游戏,选错时会提示并重新输入
  • 通过键盘输入数据后,电脑会提示玩家所猜的数据过大或过小,若猜对则打印恭喜你,猜对了,然后让玩家重新选择是否重新进行游戏
  • 随机数的范围为1-100

废话不多说,直接上代码:>

#include <stdio.h>

#include <time.h>

#include <stdlib.h>


void menu()
{
	printf("**********************\n");
	printf("******  1.play *******\n");
	printf("******  0.exit *******\n");
	printf("**********************\n");
}



void game()
{
	int input2 = 0;
	int ret = rand() % 100 + 1;//生成一个随机数;
	while (1)
	{
		printf("请猜数字:>");
		scanf("%d", &input2);
		if (input2 < ret)
		{
			printf("猜小了\n");
		}
		else if (input2 > ret)
		{
			printf("猜大了\n");
		}
		else
		{
			printf("恭喜你,猜对了\n");
			break;
		}
	}
}




int main()
{
	int input1 = 0;
	srand((unsigned int)time(NULL));//设置随机数的起点
	do
	{
		menu();//此处的menu为菜单函数
		printf("请输入数字:>");
		scanf("%d", &input1);
		switch(input1)
		{
		case 1:
			printf("猜数字游戏\n");
			game();
			break;
		case 0:
			printf("退出程序\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}
	} while (input1);
	return 0;
}

各处代码讲解

在这里插入图片描述

关于主函数中的srand函数,为设置一个随机数起点,但若要生成一个随机数,还需要给他传一个随机数,因此,我们想到了用时间来作为参数,并且强制转换为(unsigned int)类型,来匹配srand的语法

menu为我们自己创建的菜单函数,用来输出并提示玩家要输入什么

在这里插入图片描述

关于do-while循环:

在这里插入图片描述

因为游戏至少执行一次,因此用do while循环来进行切入,其中的switch case用来判断玩家输入为几来执行相应的结果

若选1.则进行游戏,若选0,则退出游戏,若选择其他数字,则重新输入

对game函数的讲解:

在这里插入图片描述

game函数中,rand函数用来生成一个随机数,在while循环中,玩家输入的数字会与rand函数产生的随机数进行比较,如果输入过小或过大,电脑都会进行提示,让玩家重新输入,若玩家猜对,则跳出循环,让玩家重新开始游戏或退出程序。

对于程序的一点变动

在这里插入图片描述

前面所打印的内容占了一部分屏幕,看起来好像不太爽,因此对程序进行以下改动:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这样的话打印出来会变得漂亮一些(我个人是这么认为的)!。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值