猜数字小游戏的实现(循环、分支语句的初级综合应用)

 一、游戏函数主体的实现:

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

//程序在正式运行之前就应该有一个主菜单供玩家选择,无返回类型
void menu()
{
	printf("*********************************\n");
	printf("******     1/go on         ******\n");
	printf("******     0/quit          ******\n");
	printf("*********************************\n");
}


//创建游戏逻辑函数
void game()
{
	int input = 0;
	int rand_num = rand() % 100 + 1;  //这个步骤主要是为了给所产生的随机数限制生成范围在1到100之间
	while (1)  //因为只要选择1确定进入游戏以后,游戏就必然执行,所以不需要判断条件,一直为真
	{
		printf("Please input the guessed number\n");
		scanf("%d", &input);
		if (input > rand_num)
			printf("the guessed munber is bigger\n");
		else if (input < rand_num)
			printf("the guessed number is smaller\n");
		else
			printf("well done\n");


	}

}

//游戏主函数,
int main()
{
	int input = 0;
	srand((unsigned)time(NULL));  //为了保证游戏每一次重新运行所输出的数字都是随机值,引入时间函数
	do
	{
		menu();
		printf("PleaseChoose:>");
		scanf("%d", &input);
		switch(input)
		{
		case 1:
			game();
		case 0:
			printf("GameOver\n");
			break;
		default:
			printf("Please choose 1 or 0\n");

		}
	} while (input); //do while语句保证了menu函数直接执行一次

	return 0;
}

二、游戏的运行界面:

 三、游戏设计的具体逻辑:

为了更加生动形象的理解,具体逻辑都以注释形式穿插在代码中。主要是一个初级综合应用,用到scanf(输入值)、printf(生成菜单界面,输出界面)、time(时间函数)、srand(随机值函数)等库函数,自定义函数menu(菜单界面)、game(游戏逻辑主体)。对于新手来说,比较难理解在于srand、time综合应用,由于srand产生的随机值在操作系统重新启动之后会置0,导致每一次重新启动的数组相同,故需要引入无符号时间函数(已被换算成一个自动增量)来提高游戏可玩性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值