猜数字游戏


在这里插入图片描述


前言

程序生成随机数字供玩家猜测,猜测错误则有相应的提示,以辅助玩家猜测。


一、使用步骤

1.引入随机数------rand()srand()time()的使用

猜数字游戏的核心是每次游戏开始是系统需要生成不同的随机数字
生成随机数字就需要使用 rand()
在这里插入图片描述
随机数字的大小为0~32767

代码如下(示例):

include<stdlib.h>
int ret=rand();

测试结果显示每次生成的随机数字都相同无法满足每次生成不同随机数字的需求之时候就需要引入srand()
在这里插入图片描述
srand使用时()内需要传入不同的随机数字种子-----时间在每次运行时都是不同的,这时候就需要引入时间戳的概念。
时间戳----当前时间相对于计算机起始时间的差值每时每刻都是不同的
时间变化时间戳就不同正好符合我们的需求
C语言当中使用time函数获取时间戳
在这里插入图片描述

srand((unsigneint)time(NULL))//在整个工程开始时生成一次随机

需要生成的数字为1-100之间而rand生成数字大于要求
1.将rand生成的ret%100-----任何数字%100都是0-99之间

int ret=rand()%100+1//生成0-100之间的随机数字

2.主函数(while(),do while(),switch())

使用do while循环结构构成主循环结构

代码如下(示例):

int main()
{
 int input = 0;
 srand((unsigned)time(NULL));
 do
 {
 menu();
 printf("请选择>:");
 scanf("%d", &input);
 switch(input)
 {
 case 1:
 game();
 break;
 case 0:
 break;
 default:
 printf("选择错误,请重新输入!\n");
 break;
 }
 }while(input);//当input==0时,对应退出游戏此时游戏结束退出程序
 //当输入为1时循环继续猜数字游戏也继续
 return 0;
}

3. menu函数

void menu()
{
 printf("**********************************\n");
 printf("*********** 1.play     **********\n");
 printf("*********** 0.exit     **********\n");
 printf("**********************************\n");
}

4.game()函数

使用while()循环实现反复的猜数字,
当猜测小于被猜数字时提示猜小了继续循环,
当猜测大于被猜数字时提示猜大了继续循环,
当猜测正确时break语句跳出当前的while循环猜测结束。

void game()
{
 int random_num = rand()%100+1;
 int input = 0;
 while(1)
 {
 printf("请输入猜的数字>:");
 scanf("%d", &input);
 if(input > random_num)
 {
 printf("猜大了\n");
 }
 else if(input < random_num)
 {
 printf("猜小了\n");
 }
 else
 {
 printf("恭喜你,猜对了\n");
 break;
 }
 }
}

总结—总代码

整体代码的实现

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
 printf("**********************************\n");
 printf("*********** 1.play     **********\n");
 printf("*********** 0.exit     **********\n");
 printf("**********************************\n");
}
//RAND_MAX--rand函数能返回随机数的最大值。
void game()
{
 int random_num = rand()%100+1;
 int input = 0;
 while(1)
 {
 printf("请输入猜的数字>:");
 scanf("%d", &input);
 if(input > random_num)
 {
 printf("猜大了\n");
 }
 else if(input < random_num)
 {
 printf("猜小了\n");
 }
 else
 {
 printf("恭喜你,猜对了\n");
 break;
 }
 }
}
int main()
{
 int input = 0;
 srand((unsigned)time(NULL));
 do
 {
 menu();
 printf("请选择>:");
 scanf("%d", &input);
 switch(input)
 {
 case 1:
 game();
 break
 case 0:
 break;
 default:
 printf("选择错误,请重新输入!\n");
 break;
 }
 }while(input);
 return 0;
}

在这里插入图片描述

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值