题目:电脑随机生成1~100的随机数;玩家猜数字过程中,根据猜测数据的大小给出或多或少的反馈,直到猜对,游戏结束。
首先,随机数的生成:①rand函数可以生成随机数,rand 函数会返回一个伪随机数,这个随机数的范围是0~RANDMAX之间;②srand函数:用来初始化随机数的生成器;③time函数:在程序中,我们一般使用程序运行时间作为种子,因为时间在时刻变化,time函数用于获得时间;④注意本次需要用到的头文件:<stdio.h>,<stdlib.h>(rand函数,srand函数),<time.h>(time函数) 。
一、简单版猜数字。
首先是主函数,三个版本只有调用函数有区别。
先看主函数:
int main()
{
int input = 0;
//设置随机数的起点
//整个工程只调用一次该函数
srand((unsigned int)time(NULL));
//使用一个do-while循环让猜对数字后重新进入
do
{
menu();//做一个进入游戏的菜单,可以选择进入或者不进入
printf("请选择:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,请重新选择\n");
break;
}
} while (input);
return 0;
}
主函数的话,三个版本都没有改变哦
接下来看完整的代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("*************************\n");
printf("*******1.play************\n");
printf("*******0.exit************\n");
printf("*************************\n");
}
void game()
{
int r = rand() % 100 + 1;
int guess = 0;
while (1)
{
printf("请猜数字:\n");
scanf("%d", &guess);
if (guess > r)
{
printf("猜大了\n");
}
else if (guess < r)
{
printf("猜小了\n");
}
else
{
printf("恭喜你猜对了\n");
break;
}
}
}
int main()
{
int input = 0;
//设置随机数的起点
//整个工程只调用一次该函数
srand((unsigned int)time(NULL));
//使用一个do-while循环让猜对数字后重新进入
do
{
menu();//做一个进入游戏的菜单,可以选择进入或者不进入
printf("请选择:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,请重新选择\n");
break;
}
} while (input);
return 0;
}
输出结果是这样的:
是不是很有趣呢,这个猜数字游戏,咱们可以用来当真心话大冒险的骰子,输入数字让系统帮你找一下幸运儿是谁呢。那这个都这么好玩了,如果咱们再加上限制的次数呢?咱们一起来看看
二、加次数版的猜数字游戏
话不多说,咱们只要在调用的函数上面加上一个count就可以啦,看到这里,有想要自己动脑的宝宝,可以想一下在哪里加呢。话不多说,直接丢代码啦:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void game()
{
int r = rand() % 100 + 1;
int guess = 0;
int count = 5;
while (count)
{
printf("您还剩%d次机会\n",count);
printf("请猜数字:\n");
scanf("%d", &guess);
if (guess > r)
{
printf("猜大了\n");
}
else if ("guess<r")
{
printf("猜小了\n");
}
else
{
printf("恭喜你猜对了!\n");
break;
}
count--;
}
if (count == 0)
{
printf("用完了所有机会,猜数字失败,正确值为%d\n",r);
}
}
void menu()
{
printf("*********************\n");
printf("*******1. play*******\n");
printf("*******0. exit*******\n");
printf("*********************\n");
}
int main()
{
int input = 0;
srand ((unsigned int)time(NULL));
do
{
menu();
printf("请选择:");
scanf("%d", &input);
switch(input)
{
case 1:
game();
case 0:
printf("退出游戏\n");
default:
printf("选择错误,请重新选择\n");
break;
}
} while (input);
return 0;
}
输出结果如下:
这么看的话,是不是很简单,只是加了个次数,那如果在捣蛋一点呢,咱们想要恶搞朋友,也可以让朋友在限定时间内没有猜对,就会关机,哈哈哈哈哈是不是听起来很有趣呢,接下来咱们来看看是怎么样的吧。
三、会关机版猜数字游戏
首先要加一点补充:用代码关机,咱们要先认识系统的关机命令、取消关机命令:①shutdown -s -t 60
这是关系命令,这里的60是指电脑会在60秒后关机;②shutdown -a
取消关机命令
看到这里的下伙伴可以动脑想想应该把它放在那里呢,主函数还是跟前面两个一样呢,只是调用的函数里头加了一些语句,不妨想想呢。
话不多说,放上代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("********************\n");
printf("*****1. play********\n");
printf("*****0. exit********\n");
printf("********************\n");
}
void game()
{
int r = rand() % 20 + 1;//这里的数字可以设置小一点,避免猜不到正确的数字
int guess = 0;
printf("只有60秒内选择到正确的数字,才能避免关机!\n");
while (1)
{
system("shutdown -s -t 60");//用system函数使用系统命令
printf("请猜数字\n");
scanf("%d", &guess);
if (guess > r)
{
printf("猜大了\n");
}
else if (guess < r)
{
printf("猜小了\n");
}
else
{
printf("恭喜您,猜对了!\n");
system("shutdown -a");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择:\n");
scanf("%d", &input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,请重新选择\n");
break;
}
} while (input);
return 0;
}
运行图我就不放啦,自己可以去试试呢。学了这几个猜数字游戏,是不是觉得很有趣呢,不妨自己再去试试看,C语言真的太有趣了哈哈哈哈哈。有什么建议的话,欢迎在评论区留言,谢谢大家看到这里。
标签:guess,游戏,int,C语言,break,printf,input,完整版,函数 From: https://blog.csdn.net/2401_84538476/article/details/139278514