游戏玩法:每次随机生成一个1~100之间的数字,玩家通过输入数字来猜这个数,如果没猜中则提示玩家猜大了或者猜小了,直到玩家猜中数字结束游戏。
游戏玩法非常简单,那么怎么实现呢?
首先对内容进行分析,我们首先需要生成一个随机数,可以考虑通过rand函数来实现:
num = rand() % 100 + 1
但是当我们写完代码调试试玩会发现每次的随机数都是相同的,并不能达到游戏效果,所以我们要在之前加入如下代码:
srand((int)time(NULL));//随机数发生器初始化
这样,每次我们都会重新产生一个新的随机数。
接下来我们则需要构造循环来实现玩家猜数字的过程,并且通过玩家给入的数字不断提示玩家猜大了还是猜小了。代码实现如下:
void Game() {int num = rand() % 100 + 1;//生成随机数int x = 0;while (1) {printf("请输入你猜的数字:");scanf("%d", &x);if (x == num) {printf("恭喜你,猜对了!\n");break;}else if (x < num) {printf("猜小了。\n");}else {printf("猜大了。\n");}}
}
这样,我们游戏的主体就已经实现了,除此之外,我们还可以为游戏写一个菜单来供玩家选择玩游戏还是结束游戏退出。实现比较简单,直接上代码:
void Menu(){printf("--------------------------------\n");printf("----------- 1. Play --------\n");printf("----------- 0. Exit --------\n");printf("--------------------------------\n");
}
最后,我们只需要写一个选择函数来判断玩家的选择和进行对应的操作就完成了!
游戏完整代码实现如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>void Game();
void Menu();int main() {int i = 0;srand((int)time(NULL));//随机数发生器初始化do {Menu();//调用菜单打印函数printf("请输入你的选择:");scanf("%d", &i);switch (i) {case 1:Game();//调用游戏函数break;case 0:printf("游戏结束!");break;default:printf("你的输入有误,请重新输入!\n");break;}} while (i);printf("再见!\n");return 0;
}void Menu(){printf("--------------------------------\n");printf("----------- 1. Play --------\n");printf("----------- 0. Exit --------\n");printf("--------------------------------\n");
}void Game() {int num = rand() % 100 + 1;//生成随机数int x = 0;while (1) {printf("请输入你猜的数字:");scanf("%d", &x);if (x == num) {printf("恭喜你,猜对了!\n");break;}else if (x < num) {printf("猜小了。\n");}else {printf("猜大了。\n");}}
}
效果展示: