C语言实战:打造趣味猜数字游戏

1. 猜数字游戏

猜数字游戏(又称“猜谜游戏”)是一个经典的编程练习,非常适合C语言初学者来练手。它不仅能够帮助巩固基础语法知识,还能锻炼逻辑思维和程序设计能力。下面,我们将一步步构建一个简单而有趣的猜数字游戏,并探讨其背后的编程逻辑。

2. 游戏规则

游戏规则非常简单:计算机随机生成一个介于预设最小值和最大值之间的整数,玩家尝试猜测这个数字。每次猜测后,程序会根据猜测结果给出提示(太高、太低或猜对了),猜测次数超过3次后玩家猜中为止,并输出正确结果。

3. 编程准备

1. 引入必要的头文件

#include <stdio.h>
#include <stdlib.h> // 用于随机数生成
#include <time.h>   // 用于设置随机数种子

2. 生成随机数

C语⾔提供了⼀个函数叫 rand,这函数是可以⽣成随机数的,函数原型如下所示:

int rand (void);

rand函数会返回⼀个伪随机数,这个随机数的范围是0~RAND_MAX之间,这个RAND_MAX的大小是依赖编译器上实现的,但是⼤部分编译器上是32767。
rand函数的使用需要包含⼀个头⽂件是:<stdlib.h>
因为rand函数生成的随机数是伪随机的,伪随机数不是真正
的随机数,是通过某种算法生成的随机数。真正的随机数的是无法预测下⼀个值是多少的。而rand函数是对⼀个叫“种子”的基准值进行运算生成的随机数。
所以使用rand()函数生成随机数前,需要先用srand()函数设置随机数种子,以确保每次运行程序时都能得到不同的随机数。通常,我们会用当前时间作为种子。

srand的原型如下:

void srand (unsigned int seed);

使用方法:

int main() {
    srand(time(NULL)); // 使用当前时间作为随机数种子
    int secretNumber = rand() % (MAX_NUMBER - MIN_NUMBER + 1) + MIN_NUMBER;
    // 假设MIN_NUMBER和MAX_NUMBER分别为猜测范围的最小值和最大值
}

3. 主循环:接收用户输入并给出反馈

接下来,我们进入游戏的核心循环,不断接收用户的输入并给出相应的提示。

int main() 
{
	int input = 0;
	
	do {
		menu();
		printf("请选择:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			_Srand();
			game(ret);
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("请重新选择\n");
			break;
		}
	} while (input);
	return 0;
}
  1. 完整示例代码
//猜数字游戏

#include<stdio.h>
#include<time.h>
#include<stdlib.h>


int ret = 0;
//菜单
void menu() {
	printf("********************\n");
	printf("**0.exit    1.play**\n");
	printf("********************\n");
}
//产生随机数
 int _Srand()
{
	srand((unsigned int)time(NULL));
	ret = rand()%100+1;
	return ret;
}

 void game(int ret) 
 {

	 int count = 3;
	 printf("你所拥有的猜测次数:%d\n",count);
	 while(count>0)
	 {
		 printf("请输入你所猜测的数字:");
		 int guess = 0;
		 scanf("%d", &guess);
		 if (ret > guess) {
			 printf("猜测数字偏小\n");
		 }
		 else if (ret < guess) {
			 printf("猜测数字偏大\n");
		 }
		 else
			 printf("恭喜你,猜对了\n");
		 --count;
		 printf("剩余次数:%d\n",count);
	 }
	 if (count == 0) {
		 printf("挑战失败,正确结果是:%d\n", ret);
	 }
	 
 }

int main() 
{
	int input = 0;
	
	do {
		menu();
		printf("请选择:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			_Srand();
			game(ret);
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("请重新选择\n");
			break;
		}
	} while (input);
	return 0;
}

总结

通过上述步骤,我们完成了一个基本的猜数字游戏程序。这个游戏虽小,却包含了C语言编程中的许多关键概念,如变量定义、条件判断、循环控制、输入输出操作,以及随机数的生成和使用。它不仅能够帮助初学者加深对这些基础知识的理解,也是学习如何构建逻辑流程、提升编程技巧的好方法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值