C语言猜数字游戏
hania_w 人气:0前言
本文详细介绍了猜数字游戏的具体实现逻辑
一、猜数字游戏是什么
1、电脑自动生成一个1-100以内的数字
2、我们输入一个我们猜的数字
3、如果我们猜的数字比电脑随机生成的数字大,那么输出(猜大了)
4、如果我们猜的数字比电脑随机生成的数字小,那么输出(猜小了)
5、如此循环往复,猜到正确的数字之后游戏结束
二、使用步骤
- 1.首先应该打印菜单
代码如下
void menu() { printf("*********************\n"); printf("***** 1. play *******\n"); printf("***** 0. exit *******\n"); printf("*********************\n"); } int main() { menu(); printf("请选择:>"); int input = 0; while (input) { switch (input) { case 1: printf("游戏开始"); game()//选择开始游戏之后,进入我们玩游戏的一个逻辑 break; case 0: printf("退出游戏"); break; default: printf("输入错误,请重新输入!"); break; } } return 0; }
选择1,开始游戏
选择0,游戏结束
- 2.打印我们的game()函数来实现我们的游戏具体逻辑
代码如下:
void game() { int guess = 0; int ret = rand() % 100 + 1;//限制我们得到的数字为1-100之间的数字 while (1)//因为猜数字是一个多次的过程,因此需要一个循坏来解决 { printf("请输入你猜的数字:>"); scanf("%d", &guess); //将我们猜的数字与电脑随机生的数字作对比 if (guess < ret) { //如果我们猜的数字比电脑的数字要小,输出猜小了 printf("猜小了!\n"); } else if (guess > ret) { //如果我们猜的数字比电脑的数字要大,输出猜大了 printf("猜大了!\n"); } else { //数字猜对了,输出猜对了 printf("猜对了!\n"); break; } } }
注:
如果使用rand()函数,必须先调用srand()函数,再使用时间戳来形成一个随机数字。
我们调用时间戳,因此需要包含头文件#include<time.h>
【时间戳】的概念:一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。
因此我们的main()函数部分就变成了如下代码所示:
int main() { menu(); printf("请选择:>"); int input = 0; int n = 0; scanf("%d", &input); srand((unsigned int)time(NULL)); //使用srand函数,接着使用时间戳,形成一个无符号整数 //我们调用时间戳,因此需要包含头文件#include<time.h> while (input) { switch (input) { case 1: game();//猜数字游戏的的逻辑 break; case 0: printf("退出游戏"); break; default: printf("输入错误,请重新输入!"); break; } } return 0; }
总结
本文的重点是对于时间戳的理解,以及猜数字游戏的逻辑
下面是【猜数字游戏】的全部代码
猜数字游戏1-100 #include<stdio.h> #include<time.h> #include<stdlib.h> void game() { int guess = 0; int ret = rand() % 100 + 1;//限制我们得到的数字为1-100之间的数字 //printf("%d",ret); while (1) { printf("请输入你猜的数字:>"); scanf("%d", &guess); if (guess < ret) { printf("猜小了!\n"); } else if (guess > ret) { printf("猜大了!\n"); } else { printf("猜对了!\n"); break; } } } void menu() { printf("*********************\n"); printf("***** 1. play *******\n"); printf("***** 0. exit *******\n"); printf("*********************\n"); } int main() { menu(); printf("请选择:>"); int input = 0; int n = 0; scanf("%d", &input); srand((unsigned int)time(NULL)); while (input) { switch (input) { case 1: game();//猜数字的逻辑 break; case 0: printf("退出游戏"); break; default: printf("输入错误,请重新输入!"); break; } } return 0; }
加载全部内容