用C语言实现简单的猜数字游戏


前言

今天我用C语言写了一个简单的猜数字游戏。当把遇到的问题都解决时,以及想实现的功能都实现时,挺有成就感的。


一、写一个猜数字游戏需要实现哪些功能

1、菜单
一个游戏一般都有一个菜单,所以我写了一个menu()函数(比较简陋哈)。
2、生成一个随机数 1~100
这个需要用到两个函数rand和time,rand用于生成随机数,这两个函数的头文件我放在menu()函数的上面。
3、猜数字
以上两个功能的实现我都写在game()函数里。在写这个函数的时候我不小心把要输出的内容写到了scanf里,导致当我选择1时的运行结果是把“猜小了”连续打印了5次。

二、使用步骤

1.主函数部分

代码如下(示例):

int main()
{
	int input = 0;//输入0或1选择是否玩游戏
	
	srand((unsigned int)time(NULL));
	//这是rand函数的定义方法,它的返回类型是无符号整型
	//time定义了一个时间戳
	int ret1 = 0;
	do
	{
		menu();//菜单
		printf("请输入(0/1):");
		scanf("%d", &input);
		
		//是否继续玩的选择逻辑
		if (1 == input)
		{
			game();
		}
		else if (0 == input)
		{
			printf("退出游戏!\n");
			break;
		}
		else
		{
			printf("选择错误,请重新选择!\n");
		}
	} while (1);
	
	return 0;
}

2.menu()函数和game()函数

代码如下(示例):

#include <stdio.h>
#include <stdlib.h>//rand函数的头文件
#include <time.h>//time函数的头文件
//定义一个菜单函数
void menu()
{
	printf("****************************\n");
	printf("*******caishuzi-game********\n");
	printf("*******   1.start   ********\n");
	printf("*******   0.over    ********\n");
	printf("****************************\n");
}
//定义一个游戏函数
void game()
{
	//1、生成一个随机数 1~100
	int ret = rand() % 100 + 1;
	/*rand是生成随机数的函数
	  这个随机数%100时生成的是0~99的数,但是我需要的是1~100,所以加1*/
	//printf("%d\n", ret);
	//2、开始猜数字,只能猜5次
	int guess_num = 0;
	int i = 0;
	for (i = 1; i <= 5; i++)
	{
		printf("请输入你猜的数字:>");
		scanf("%d", &guess_num);
		if (guess_num < ret)
		{
			printf("猜小了!!!\n");	
		}
		else if (guess_num > ret)
		{
			printf("猜大了!!!\n");	
		}
		else
		{
			printf("恭喜你猜对了,一共猜了%d次!\n", i);
			break;
		}
	}
	//如果超过5次回到菜单界面
	if (6 == i)
	{
		printf("不好意思,你的机会用光了!答案是%d\n", ret);
	}
	
}

总结

注意:1、menu()函数和game()函数我建议写在main()函数的上面,我那时候写在了下面就弹出警告说我未定义,我看的难受,结果发现放在上面就不会。
2、然后主函数那个退出游戏那里记得写一个break,我当时没写,然后测试的时候发现,当我选择退出游戏的时候返回的是菜单,可是我想让它直接结束。

以上就是我今天要讲的内容,本文大致描述了如何用C语言写一个简单的猜数字游戏,希望能对大家有一点点帮助。

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值