概述
用C语言实现简单的猜数字游戏
目录
前言
一、代码
二、组成部分
1.思路
2.菜单
3.主函数
4.游戏体
5.测试游戏
前言
各位如果觉得博主写的不错,请诸位多多支持(点赞+收藏+关注)。如果有不对的地方,欢迎指出。
一、代码
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
//菜单
void menu()
{
printf("**********************n");
printf(" 1.play n");
printf(" 0.exit n");
printf("**********************n");
}
//游戏
int game()
{
srand((unsigned int)time(NULL)); //随机生成数字
int number=rand()%100;
printf("请输入数字n");
while(1)
{
int input = 0;
scanf("%d", &input); //玩家猜数字
if (input > number)
{
printf("猜大了,请重新输入数字n");
}
else if (input < number)
{
printf("猜小了,请重新输入数字n");
}
else
{
printf("猜对了n");
break;
}
}
}
//主函数
int main()
{
int i;
do
{
menu(); //打印菜单
scanf("%d", &i);
switch (i) //选择是否开始游戏
{
case 1:
{
printf("开始游戏n");
game(); //输入1进入游戏
}
case 0:
{
printf("游戏结束n"); //输入0结束游戏
break;
}
default:
printf("输入错误,请重新输入n"); //输入错误时提示
break;
}
} while (i);
return 0;
}
二、组成部分
1.思路
猜数字游戏顾名思义,就是给出一个随机的给出一个0~100的整数。
玩家猜这个整数,猜对了,恭喜玩家,游戏结束;玩家猜错了,在屏幕上给出提示,玩家继续猜。
那么我们怎么用代码来实现这样一个游戏呢?
2.菜单
代码如下:
//菜单
void menu()
{
printf("**********************n");
printf(" 1.play n");
printf(" 0.exit n");
printf("**********************n");
}
游戏开始前通常会给玩家说明供玩家游戏选项选择,比如选择开始游戏和结束游戏,那么我们就需要一个菜单;这个菜单很简单,用几个printf()库函数打印出几行字符串就行。玩家输入1表示玩游戏,玩家输入0就表示游戏结束。
3.主函数
代码如下:
//主函数
int main()
{
int i;
do
{
menu(); //打印菜单
printf("请输入->");
scanf("%d", &i); //输入
switch (i) //选择是否开始游戏
{
case 1:
{
printf("开始游戏n");
game(); //玩家输入1进入游戏
break;
}
case 0:
{
printf("游戏结束n"); //玩家输入0结束游戏
break;
}
default:
printf("输入错误,请重新输入n"); //输入错误时提示
break;
}
} while (i); //玩家输入0循环结束
return 0;
}
主函数当中,我采用do while的结构这样就能先执行一遍循环体;当程序运行时我们可以看到屏幕上打印出了菜单,这是提示玩家要输入选择开始游戏还是结束游戏。然后我们还需要一个分支语句,这里我用的是switch,在玩家输入相应的数字后,进入相应的分支。(1--玩游戏 0--结束游戏)
可以看到玩家输入1游戏开始,玩家输入0游戏结束程序结束。
4.游戏体
代码如下:
//游戏
int game()
{
srand((unsigned int)time(NULL));
int number=rand() % 100 + 1; //随机生成数字
printf("请输入数字n");
while(1)
{
int input = 0;
scanf("%d", &input);
if (input > number)
{
printf("猜大了,请重新输入数字n");
}
else if (input < number)
{
printf("猜小了,请重新输入数字n");
}
else
{
printf("猜对了n");
break;
}
}
}
srand((unsigned int)time(NULL)); //随机生成数字
int number=rand()%100;
#include <time.h> //包含头文件(time())
#include <stdlib.h> //包含头文件(srand()和rand())
首先,我们要生成一个随机数,而C语言中有一个函数rand()可以用来生成随机数。
当我们直接使用rand()库函数时,会发现这个函数的值并不是那么随机甚至会出现连续相等的值,这样一个不够随机的数是无法实现猜数字游戏的。
rand()的使用之前,我们还要调用srand()来设置一个随机的起点,srand()需要一个参数来生成随机的起点;当我们给srand()传的参数是随机的时候,rand()也就是随机的。
srand((unsigned int)time(NULL));
所以这里我们需要时刻变化的值传给srand(),而时间是时刻变化的所以我们把时间也就是时间戳传进去;time()就是C语言获取时间戳的库函数,time()函数有参数所以我们传空指针过去,其返回类型为time_t,srand()需要一个无符号整型,用(unsigned int)把 time() 强制转换成无符号整型。(时间戳就是一个时间转换成数字)
srand()只需要调用一次,所以把它放在循环体的外面。
int number=rand() % 100 + 1;
rand()生成一个整数再对100取余加1就得到一个1~100的随机数了。
while(1)
{
int input = 0;
scanf("%d", &input); //玩家猜数字
if (input > number) //判断猜大了
{
printf("猜大了,请重新输入数字n");
}
else if (input < number) //判断猜小了
{
printf("猜小了,请重新输入数字n");
}
else //判断是否猜对
{
printf("猜对了n");
break;
}
}
随机数确定后,玩家就可以开始玩游戏了。玩家猜数字可能猜很多次,所以我们把玩家猜数字的过程放在一个死循环当中;当玩家猜对数字时循环结束,否则给出相应的提示游戏继续。
5.测试游戏
运行代码,输入1开始游戏,可以看到猜错了程序会给出相应的提示,而玩家猜对了游戏结束,玩家可以选择继续玩游戏。
最后
以上就是安详冬瓜为你收集整理的简易的猜数字游戏前言一、代码二、组成部分1.思路5.测试游戏 的全部内容,希望文章能够帮你解决简易的猜数字游戏前言一、代码二、组成部分1.思路5.测试游戏 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复