一、游戏函数主体的实现:
#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,导致每一次重新启动的数组相同,故需要引入无符号时间函数(已被换算成一个自动增量)来提高游戏可玩性。