本文章为c语言猜数字小游戏的教学
设计思路:
目录
1.菜单的创建
2.猜数字的实现
3.完整代码
1.菜单的创建
先设计一个类似菜单的界面,供选择来实现游戏或退出
void menu()
{
printf("****************\n");
printf("******猜数字*****\n");
printf("*****1.PLAY*****\n");
printf("*****0.EXIT*****\n");
printf("****************\n");
printf("请输入选项\n");
}
接收玩家的输入选项来进行分别的操作
输入1,程序则会进入game函数进行下一步
输入0,则会退出游戏
搭配do-while结构和switch结构能够很好的完成这一需求,do-while能先将菜单选项呈现出来,再根据玩家所选的选项进行操作。
switch结构则是对于多分支结构能够很好的运用
int main()
{
int input = 0;
do
{
menu();
scanf("%d", &input);
switch (input)
{
case 1:
printf("开始游玩,猜数字游戏\n");
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入无效,请重新输入\n");
break;
}
} while (input);//如果input=0,则跳出循环
return 0;
}
2.猜数字的实现
既然是猜数字,则要生成一个随机数。
rand函数是专门用来生成随机数的,返回的是0~32767范围内的数
rand函数使用之前要使用一个srand函数来设置随机数的生成器
格式:rand()%整数,能够规定随机数的范围在0~整数之间(但不包括整数
eg:rand()%100,生成的是0~99的随机数
rand()%100+1,生成的是1~100的随机数
void game()
{
srand((unsigned)time(NULL));
int a = rand() % 100 + 1;//生成随机数
int b = 0;
int count = 0;//计数菌
//printf("%d", a);
while (1)//让循环进行下去,直到数被猜出来为止
{
printf("请输出数字:");
scanf("%d", &b);
if (a < b)
{
printf("猜大了\n");
count++;
}
else if (a > b)
{
printf("猜小了\n");
count++;
}
else
{
printf("恭喜!猜中了\n");
printf("共猜了%d次\n", count);
break;
}
}
}
3.完整代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("****************\n");
printf("******猜数字*****\n");
printf("*****1.PLAY*****\n");
printf("*****0.EXIT*****\n");
printf("****************\n");
printf("请输入选项\n");
}
void game()
{
srand((unsigned)time(NULL));
int a = rand() % 100 + 1;
int b = 0;
int count = 0;
//printf("%d", a);
while (1)
{
printf("请输出数字:");
scanf("%d", &b);
if (a < b)
{
printf("猜大了\n");
count++;
}
else if (a > b)
{
printf("猜小了\n");
count++;
}
else
{
printf("恭喜!猜中了\n");
printf("共猜了%d次\n", count);
break;
}
}
}
int main()
{
int input = 0;
do
{
menu();
scanf("%d", &input);
switch (input)
{
case 1:
printf("开始游玩,猜数字游戏\n");
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入无效,请重新输入\n");
break;
}
} while (input);
return 0;
}