猜数字游戏代码+设计思路分析

#define _CRT_SECURE_NO_WARNINGS 1
# include<stdio.h>
#include<Windows.h>
#include<time.h>
#include<stdlib.h>
void menu() {
	printf("*****欢迎来到猜数字游戏界面*****\n");
	printf("*****1.play*********0.exit.*****\n");
	printf("********************************\n");
}
void game() {
	int ret = 0;
	//rand生成随机数,但只能是固定的一个随机数
	//rand的范围在0~32767之间,%100后取到余数(两位),最大的余数可以为99,所以范围就变成了0——99,+1后是:1-100
	ret = rand() % 100+ 1;//给予猜数字的范围(1-100)
	//若是想范围在:1000——9999的话  可以为(0-8999)+1000
	int guess = 0;
	while (1) {
		printf("请输入你想猜的数字:>\n");
		scanf("%d", &guess);
		if (guess > ret) {
			printf("猜大了!重新猜\n");
		}
		else if (guess < ret) {
			printf("猜小了!重新猜\n");
		}
		else {
			printf("恭喜你,猜对了!\n");
			break;
		}
	}
}
int main() {
	int input = 0;
	//想要使rand随机的生成一个随机数就要用到srand函数。
	//srand设置随机数的起点,但这个起点得是随机的,所以用到了时间戳
	srand((unsigned int) time(NULL));//time--时间戳(与系统从1970-0-0至今的时间,时时刻刻在变化),增强随机数的随机性(使系统在输出随机数的时候能保持随机性)
	do {
		menu();//菜单
		printf("请输入你的选择:>\n");
		scanf("%d", &input);
		switch (input) {
		case 1:
			game();
			break;
		case 0:
			printf("即将退出程序!\n");
			Sleep(1000);
			exit(0);//终止游戏
			break;
		default:
			printf("输入的选择有误,请重新输入!\n");
			break;
		}
	} while (input);
	return 0;
}

        猜数字游戏的关键核心在于猜,所以用到了rand函数与srand函数,这两个函数的用法与我上篇文章讲到的井字棋游戏 用法相同,都是为了让系统产生的随机数能够更加随机性的产生,时间戳是关键语句:

srand((unsigned int) time(NULL))

        而rand函数能够设置系统产生数字的范围,我们在每次输入的数字中可以通过二分查找的算法思维去判断数字所在的具体范围。若是觉得设置猜数字的范围过小的话,调大即可。

        而其他方面就是用到了大部分游戏都会用到的do..while循环语句,它是先执行一次循环体再进行判断是否继续下一次循环;想要一直玩的话,就把判断条件设置成永真。

 

讲解就到这里,如果觉得有用的话就点个关注走一走吧!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

橙予清的zzz~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值