猜数字游戏(C语言)

游戏:猜数字
电脑将生成一个1到100之内的随机数
玩家将猜那个随机数的大小是多少
若猜的数要大于随机数时将提示猜大了
猜的数要小于随机数时将提示猜小了
直到猜对为止,游戏结束
可选择再来一盘或退出游戏
猜数字游戏(C语言)
代码实现:
一,首先选择开始游戏或退出游戏

创建一个菜单
让玩家能够选择开始或退出
猜数字游戏(C语言)
假设玩家选择1.play则游戏开始
若玩家选择0.exit则退出游戏
选择开始:
猜数字游戏(C语言)
利用do while循环使代码至少执行一次
防止玩家输入除1.0之外的其余值后游戏出现bug
当玩家输入除1.0之外的其余值后会提示输入错误将从新选择
当玩家选择1时提示玩家游戏开始
当玩家选择0时提示玩家游戏结束,退出游戏ide

二,实现游戏game()函数
电脑将利用时间戳随机生成一个会变化的随机数
猜数字游戏(C语言)
C语言中提供了一个函数专门用来生成随机数
rand();
此函数将随机生成一个0-32767之间的一个数
猜数字游戏(C语言)
int rand(void)
rand 函数使用时不须要传递参数;可是会返回一个int类型的随机值
而且因为引用的是库函数因此须要引有文件 #include<stdlib.h>
猜数字游戏(C语言)
用变量ret接收rand函数的返回值,这个返回值就是这个随机数
注意:
生成随机数每次游戏生成的随机数将相同
猜数字游戏(C语言)
在调用rand这个函数以前要先调用srand函数
猜数字游戏(C语言)
猜数字游戏(C语言)
void srand(unsigned int seed);用来设置一系列的随机数
须要传递一个无符号的整形设置
不会产生返回值
若是随便输入一个不变的数字的话,每次游戏生成随机数都将不变
猜数字游戏(C语言)
猜数字游戏(C语言)
猜数字游戏(C语言)
猜数字游戏(C语言)
因此srand里面须要设置一个随机值
时间每秒都在变化
因此使用时间戳来设置随机值
猜数字游戏(C语言)
猜数字游戏(C语言)
猜数字游戏(C语言)
使用time_t time(time_t timer);函数获取计算机时间
不过它是以time_t的形式返回的
time_t本质上是一个长整形
须要传递(time_t
timer)的是timer的地址
须要引头文件#include<time.h>
猜数字游戏(C语言)
将time函数的返回值强制类型转化为unsigned int
NULL为空指针
猜数字游戏(C语言)
注意:不要每次都设置时间起止点,时间相近时,生成的随机数也相近
猜数字游戏(C语言)
因此只须要在开始游戏的时候设置一次随机数的时间起点就能够了
猜数字游戏(C语言)
生成的随机数有点太大了
建议生成一个1-100之间的随机数
猜数字游戏(C语言)
将生成的随机数模上100,那么这个随机数将在1-99之间,而后再加1,将这个随机数设置在1-100之间了
猜数字游戏(C语言)
玩家开始猜数字
猜数字游戏(C语言)
若是玩家输入的数字比随机数大,电脑将提示猜大了,而后接着猜
若是玩家输入的数字比随机数小,电脑将提示猜小了,而后接着猜
若是玩家输入的数字与随机数相同,将不须要继续猜了,要退出循环,游戏结束
来到main函数switch 中的case1:game();语句 的后面,break;跳出switch
来到do while()循环处,从新开始选择游戏的继续或结束,
能够选择继续游戏或退出游戏
代码
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("############################\n");
printf("#### 1.play 0.exit ######\n");
printf("############################\n");
}
void game()
{
//生成一个随机数
int ret = 0;
//拿时间戳来设置来设置随机数
//time_t time(time_t,*timer)
//time_t
//srand(unsigned int (time_t(NULL))
ret = rand()%100+1;//生成了100之内的随机数
//printf("%d\n", ret);
//2.开始猜数字
int guss = 0;
while ( 1 )
{
printf("请猜数字:");
scanf("%d", &guss);
if (guss > ret)
{
printf("猜大了\n");
}
else if (guss < ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜,猜对了\n");
break;
}
}
}
int main()
{
srand((unsigned)time(NULL));
int input = 0;
do
{
menu();//菜单
printf("请输入(1/0):");
scanf("%d", &input);
switch (input)
{
case 0:
{
printf("退出游戏\n");
break;
}
case 1:
{
game();//猜数字游戏
break;
}
default:
{
printf("选择错误\n");
break;
}
}
} while (input);
return 0;
}函数

相关文章
相关标签/搜索