C语言和猜数字小游戏


在这里插入图片描述

🌟写在前面

  作为编程初学者,大家想必都和我一样,想写出一个可以稍微把玩的代码,那么今天我就带着猜数字游戏来喽,希望大家有所收获,在大家重复的敲代码生活中增添一分色彩!

作者:Shining-point
作者的博客主页:Shining-point的博客
如果觉得博主的博客写的不错或者有所收获的话,希望大家多多🚀点赞 🚀评论🚀收藏,你们的支持是我的最大动力,不驰于空想,不骛于虚声,我们一起加油!!!

Ⅰ.游戏规则

猜数字游戏呢,就是让你猜一个数,然后根据提示的猜大了或者猜小了继续猜,直到猜中为止,相信大家都在现实中玩过,我也就不再过多赘述,请看具体思路和代码实现

Ⅱ.游戏逻辑

逻辑:
1.电脑自动产生一个1-100之间的随机数
2.玩家猜数字
a.猜对了,恭喜你,游戏结束
b.猜错了,将被告知猜大了还是猜小了,继续猜,直到猜对
3.游戏可以一直玩,除非退出游戏

Ⅲ.游戏代码实现

ⅰ.打印菜单

void menu()	//使用自定义menu()函数来打印菜单,不需返回值故使用void
{
	printf("************************************\n");
	printf("*************1. play ***************\n");	//选择1开始游戏
	printf("*************0. exit ***************\n");	//选择2退出游戏
	printf("************************************\n");
}

ⅱ.开始游戏

#include <stdio.h>

int main()
{
	int input = 0;
	do	//游戏至少要玩一次,故使用do while循环
	{
		menu();	//此处调用自定义menu函数用于打印菜单
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)	//switch语句用于选择开始游戏or退出游戏
		{
		case 1:
			game();//调用自定义game函数执行游戏主逻辑
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,请重新选择\n");
			break;
		}
	} while (input);
	return 0;
}

ⅲ.产生1-100的随机数

猜数字游戏的关键在于如何产生随机数,试想一下电脑中什么东西一直在发生变化,没错,是时间。我们在这里引入一个新的概念——时间戳
那么我们如何在C语言中使用它呢,请看如下代码

//使用srand时需要引头文件stdlib.h		//使用time时需要引头文件time.h
srand((unsigned int)time(NULL));	//时间一直在发生变化--时间戳,设置一个随机的起点

有了它,再配合C语言中的rand函数,我们就可以得到一个随机数啦

//生成随机数 
//使用rang函数时需要引头文件stdlib.h
int ret = rand() % 100 + 1;   
//rand函数返回了一个0-32767之间的数字  //%100的余数为0-99,然后+1,范围就是1-100

ⅳ.判断还是猜大猜小

void game()	//不需返回值故使用void
{							
	int ret = rand() % 100 + 1;	//rand函数的使用  
	int quess = 0;
	while (1)	//判断条件一直为真,游戏可以一直玩下去
	{
		//猜数字
		printf("请猜数字(范围1-100):>");
		scanf("%d", &quess);
		if (quess < ret)
		{
			printf("猜小了\n");
		}
		else if (quess > ret)
		{
			printf("猜大了\n");
		}
		else
		{
			printf("恭喜你,猜对了\n");
			break;
		}
	}
}

Ⅳ.游戏完整代码

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

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

void game()
{							
	int ret = rand() % 100 + 1;
	int quess = 0;
	while (1)
	{
		printf("请猜数字(范围1-100):>");
		scanf("%d", &quess);
		if (quess < ret)
		{
			printf("猜小了\n");
		}
		else if (quess > ret)
		{
			printf("猜大了\n");
		}
		else
		{
			printf("恭喜你,猜对了\n");
			break;
		}
	}
}

int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));

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

那么到这,我们的猜数字小游戏就实现啦,虽然显得简单,但却体现了我们编写代码的逻辑和顺序👍👍👍

🌟写在最后

每个人的青春里都有一条弯路,谁也没法替你走完,但未来总还在。愿有人陪你颠沛流离,如果没有,愿你成为自己的太阳。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Shining-point

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

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

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

打赏作者

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

抵扣说明:

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

余额充值