导言:
本篇博客将介绍一个简单的C代码示例——猜数字游戏,通过解析代码中的各个部分,帮助读者了解如何使用基本的C语言语法和逻辑来开发一个简单而有趣的游戏。
先给出运行的结果:
1.我们先在main()函数里把框架搭好,考虑猜数字的特性:用户需要输入自己猜的数字,将数字与答案进行比较,根据不同的结果打印不同的提示信息。考虑到猜数字很难一次猜中,同时用户至少要进行一次选择,所以我们可以利用do{} while()循环进行重复的游戏,同时游戏结束用户可以选择继续玩或者退出游戏。整体代码的框架我们可以用switch()语句实现。代码如下:
int main() {
int choice = 0;
do {
menu();//菜单
printf("请输入您的选择:\n");
scanf("%d", &choice);
switch (choice) {
case 1:
game();//游戏函数
break;
case 2:
printf("退出游戏\n");
break;
default:
break;
}
} while (choice != 2);
return 0;
}
2. 接着我们实现猜数字游戏的菜单页面,定义一个菜单函数:menu(),根据用户的不同输入进入不同的功能。在菜单里面可以简单的打印出想要的菜单格式,也可以自己改变图形背景等。这里从简处理,代码如下:
void menu() {
printf("*****************\n");
printf("***1.play 2.exit***\n");
printf("*****************\n");
}
3.最后我们来实现游戏的代码,猜数字首先得有一个数字,我们采用随机的方式产生一个随机数,这需要rand()函数,同时为了让游戏的范围更加可控,可以对rand()函数进行取余操作来保证产生的随机数在1~100之间,便于用户进行游戏。
int ret = rand() % 100 + 1;//控制范围1~100
这样仅仅是产生了一个伪随机数,为了真正实现随机我们还需要一个随机数种子,我们只需要利用srand()函数即可实现该功能,其中该函数的参数需要随时间变换,利用time(),再将time()强制类型转化成unsigned int即可。考虑到一局游戏我们只产生一次随机数,所以该函数的位置我们也只需main()函数中。
srand((unsigned int)time(NULL));//随机数种子
产生完随机数后,我们需要接收用户的输入,并判断其与随机数的大小,根据不同情况打印不同的提示语句。首先要先打印提示信息,提醒用户进行输入,利用scanf()函数接收其值。再通过if(){} else{}分支语句对不同的情况进行不同的处理,如果猜的数比随机值大,则打印提示语句:猜大了,猜的数比随机值小就提醒:猜小了,猜的数和随机值相等就提醒用户:恭喜你,猜对了。用户猜对后再让用户进行选择,可以继续游戏也可以直接退出。代码如下:
void game() {
int ret = rand() % 100 + 1;//控制范围1~100
int guess = 0;
while (1) {
printf("请输入您要猜的数字:\n");
scanf("%d", &guess);
if (guess > ret) {
printf("猜大了\n");
}
else if (guess < ret) {
printf("猜小了\n");
}
else {
printf("恭喜您猜对了\n");//猜对后,直接跳出循环
break;
}
}
}
4.最后再给出完整的代码:
#pragma warning(disable:4996)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu() {
printf("*****************\n");
printf("***1.play 2.exit***\n");
printf("*****************\n");
}
void game() {
int ret = rand() % 100 + 1;//控制范围1~100
int guess = 0;
while (1) {
printf("请输入您要猜的数字:\n");
scanf("%d", &guess);
if (guess > ret) {
printf("猜大了\n");
}
else if (guess < ret) {
printf("猜小了\n");
}
else {
printf("恭喜您猜对了\n");
break;
}
}
}
int main() {
int choice = 0;
srand((unsigned int)time(NULL));//随机数种子
do {
menu();
printf("请输入您的选择:\n");
scanf("%d", &choice);
switch (choice) {
case 1:
game();
break;
case 2:
printf("退出游戏\n");
break;
default:
break;
}
} while (choice != 2);
return 0;
}
总结:
这篇博客介绍了一个简单的C代码示例,展示了如何使用C语言编写一个猜数字游戏。通过了解代码中的各个部分,读者可以更好地理解C语言的基本语法和逻辑。