猜数字游戏
//猜数字游戏
void menu() {
printf("=========================\n");
printf("====== 1. play =======\n");
printf("====== 0. exit =======\n");
printf("=========================\n");
}
//游戏主体
void game()
{
int guess = 0;//存放用户猜的数字
//1,生成随机数
//因为单纯的调用rand,会使用唯一的种子,这样的会生成的数,就是伪随机数。有一定的规律
int num = rand() % 100 + 1;//调用rand函数生成1~100之间的随机数
//2,猜数字
while (1) {
printf("请猜数字:\n");
scanf("%d", &guess);
if (guess > num) {
printf("抱歉,猜大了~~\n");
}
else if (guess < num) {
printf("抱歉,猜小了~~\n");
}
else {
printf("恭喜你猜对了,你真的太棒了~~~\n");
break;//跳出循环
}
}
}
int main(void)
{
int input = 0;//控制进入游戏的变量
srand((unsigned int)time(NULL));//利用系统时间来为rand提供种子
do {
//打印菜单
menu();//调用函数打印菜单
printf("请输入‘1’或‘0’进行选择\n");//输出提示
scanf("%d", &input);//用户输入
switch (input) {
case 1:
game();//输入1,进入游戏
break;
case 0:
printf("谢谢,退出游戏~\n");//输入0退出游戏
default :
printf("输出错误,请重新输入‘1’或‘0’进行选择");//如果输入结果不是0或1进行提示
}
}while (input);
return 0;
}
这是最基本的模式,可以在此基础上添加条件来限制用户的输入次数。可以将game函数更改为
void game()
{
int guess = 0;//存放用户猜的数字
//1,生成随机数
//因为单纯的调用rand,会使用唯一的种子,这样的会生成的数,就是伪随机数。有一定的规律
int num = rand() % 100 + 1;//调用rand函数生成1~100之间的随机数
int count = 5;//利用count来控制输入的次数
//2,猜数字
while (count) {
printf("你还有%d次机会\n", count);
printf("请猜数字:\n");
scanf("%d", &guess);
if (guess > num) {
printf("抱歉,猜大了~~\n");
}
else if (guess < num) {
printf("抱歉,猜小了~~\n");
}
else {
printf("恭喜你猜对了,你真的太棒了~~~\n");
break;//跳出循环
}
count--;
}
if (count == 0) {
printf("非常抱歉,您的机会已经使用完了~,正确的值是:%d\n", num);
}
}
当然也是可以更加的有趣的,比如添加倒计时之类的,这边将会再演示一个较为有趣的办法,先看代码,一定要仔细观察
void game()
{
int guess = 0;//存放用户猜的数字
//1,生成随机数
//因为单纯的调用rand,会使用唯一的种子,这样的会生成的数,就是伪随机数。有一定的规律
int num = rand() % 100 + 1;//调用rand函数生成1~100之间的随机数
int count = 5;//利用count来控制输入的次数
//2,猜数字
while (count) {
printf("你还有%d次机会\n", count);
printf("请猜数字,但是不要轻易的相信提示呦:\n");
scanf("%d", &guess);
if (guess < num) {
printf("抱歉,猜大了~~\n");//实际上是猜小了
}
else if (guess > num) {
printf("抱歉,猜小了~~\n");//实际上是猜大了
}
else {
printf("恭喜你猜对了,你真的太棒了~~~\n");
break;//跳出循环
}
count--;
}
if (count == 0) {
printf("非常抱歉,您的机会已经使用完了~,正确的值是:%d\n", num);
}
}
结果是这样的:
也就是说,你猜的数大了,但是实际上会显示小了,这不是一种特别的趣味嘛~~~~