C语言--实现猜数字游戏

猜数字游戏:

  1. 需要一个游戏菜单,决定玩家是否进行游戏
  2. 既然是猜数字,那么就需要一个随机值,而且为了确保游戏的意义,这个随机数范围就不能设置的太大,或者太小
  3. 设置一个循环,使玩家可以无限进行游戏,只要玩家想玩
#define _CRT_SECURE_NO_WARNINGS
//完成猜数字游戏。
//		首先要生成一个随机数,开始游戏后这个随机数就不再改变
//
//	rand 函数生成随机数,他的功能是:返回一个 (0 - RAND_MAX)->(0 - 32767) 的一个随机整数,
//srand 设置随机数生成的一个起点,在调用 rand 函数之前设置,可以用 时间(time) 来作为随机数的起点
//time 的返回值是 time_t, time_t 其实是一个类型 -- 整数
//time 函数返回的是:当前程序执行这个 time 函数的时候的时间点 和 计算机的起始时间的一个差值
//计算机的起始时间:1970.01.01.00:00:00

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

// 设置游戏菜单,开始(1)/退出(0)
void menu()
{
	printf("*******************************\n");
	printf("***********  1. play  *********\n");
	printf("***********  0. exit  *********\n");
	printf("*******************************\n");
}

// 设置游戏
void game()
{
	//time_t  是 time 的返回值

	//1. 生成随机数:rand 函数,这个函数可以生成随机数,他是一个库函数
	int ret = 0;
	int tmp = 0;
	ret = rand()%100;	// 生成一个 0 - 99 的随机数
	
	//ret = rend;
	//printf("%d\n", ret);	// 测试游戏是否可以玩

	//2. 猜数字(循环)
	while (1)
	{
		printf("请猜数字:>");
		scanf("%d", &tmp);
		if (tmp > ret) 
		{
			printf("猜大了\n");
		}
		else if (tmp < ret) 
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜你,猜对了!\n");
			break;
		}
	}
}

int main()
{
	int input = 0;

	//(unsigned int)time(NULL) 强制类型转换,把 time 这个函数的类型转换为 unsigned int 型
	//NULL 是 time 函数的参数,time 函数是一个 指针 ,所以传一个 空指针

	//在这里的作用是每玩一次游戏,随机数的起点改变一次
	//如果放在 gime() 里,则随机数的起点一直不改变,失去的游戏的意义
 	srand((unsigned int)time(NULL));	

	//do…while 循环使程序至少执行一次

	do
	{
		//选择 1 或 0, 来决定 玩游戏 还是 退出游戏
		menu();	// menu 菜单函数
		printf("请选择:>");
		scanf("%d", &input);

		switch (input)
		{
		case 1:
			// 玩游戏
			game();
			//printf("玩游戏\n");	// 测试是否可以进入游戏
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误\n");
			break;
		}

	} while (input);
}
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值