【C语言初阶】猜数字游戏的实现

简介: 目录1.猜数字游戏规则2.猜数字的实现(1)猜数字的主体(2)猜游戏的真正主体3.总代码 4.最后

目录

1.猜数字游戏规则

2.猜数字的实现

(1)猜数字的主体

(2)猜游戏的真正主体

3.总代码

4.最后


1.猜数字游戏规则

猜数字顾名思义就是让系统产生一个随机数,然后由玩家猜这个随机数,猜大了会给出提示说猜大了,猜小了会提示猜小了,直到玩家猜对为止。


2.猜数字的实现

(1)猜数字的主体

1)首先,我们先创建一个游戏菜单,选择1进入游戏(1.PLAY),选择0退出游戏(0.EXIT)


2)然后使用循环语句,构建游戏框架,使玩家可以进行多次游戏。


3)最后设计游戏具体思路。使系统生成一个随机数,让玩家输入一个数字,然后两个数字进行比较,给出提示,直到玩家猜对。


4)设定随机数的范围为1~100之间


代码如下

1.#include<stdio.h>
void menu()
{
  printf("******************************\n");
  printf("*********  按1:PLAY  *********\n");
  printf("*********  按0:EXIT  *********\n");
  printf("******************************\n");
}
int main()
{
  int intput = 0;
  do
  {
    menu();
    printf("请选择:\n");
    scanf("%d", &intput);
    switch (intput)
    {
    case 0:
      printf("退出游戏\n");
      break;
    case 1:
      printf("玩游戏\n");
      break;
    default:
      printf("选择错误,请重新选择\n");
      break;
    }
  } while (intput);
  return 0;
}

(2)猜游戏的真正主体

case 1:

           printf("玩游戏\n");

           break;

猜游戏的主体已经完成,但是真正的主体还没有开始,猜数字游戏并不是只有“玩游戏”这三个字那么简单,我们写一个函数来真正实现猜数字游戏的过程。

case 1:

           game();

           break;

1)生成随机数

好了,到这里我们需要了解如何生成随机数。

C语言中 rand() 函数可以生成随机数,使用它引头文件即可,生成随机数的范围为0 to RAND_MAX(0 ~ 32767)

image.png

但是这样使用 rand 函数是错误的,导致它每一次生成的随机数都是相同的

image.png

我们先来看下图圈起来的,在使用 rand 函数之前必须调用 srand 函数

image.png

我们看一下 srand 函数,图中框起来必须要输入一个整型参数并且是随机的,这样才能满足我们的需求,这时候就要用到时间戳了。

image.png

2)时间戳

什么是时间戳?简单一句话就是可以满足猜数字游戏的需求(≖_≖ )

不会的可以自行了解( ﹡ˆoˆ﹡ )

C语言里面有一个 time 函数,它可以返回一个时间戳,我们直接用它就行了。

image.png

time 函数括号内的参数直接填 NULL ,我们只要它产生返回一个随机数数就行了;


time 函数简单用就行了,我不过多解释,解释又得一篇文章了...(自行摸索)


值得注意的是生成确定范围随机数

那么我们怎么生成确定范围的数字?


很简单,在rand()后面进行取余,如果%100,取到的值就是0-99了,那么再减去某个值,就是一个确定范围了。


比如我们想取1-100,那么就需要rand()%100+1。


3)game() 函数代码如下:

1.void game()
{
  srand((unsigned int)time(NULL));
  int ret = rand() % 100 + 1;//%100的余数是0-99,然后加1,范围就是1-100
  int guess = 0;//猜数字
  while (1)
  {
    printf("请猜数字:\n");
    scanf("%d", &guess);
    if (guess < ret)
    {
      printf("猜小了!\n");
    }
    else if (guess > ret)
    {
      printf("猜大了!\n");
    }
    else
    {
      printf("恭喜你,猜对了!\n");
      break;
    }
  }
}

3.总代码

1.#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()
{
  srand((unsigned int)time(NULL));
  int ret = rand() % 100 + 1;//%100的余数是0-99,然后加1,范围就是1-100
  int guess = 0;//猜数字
  while (1)
  {
    printf("请猜数字:\n");
    scanf("%d", &guess);
    if (guess < ret)
    {
      printf("猜小了!\n");
    }
    else if (guess > ret)
    {
      printf("猜大了!\n");
    }
    else
    {
      printf("恭喜你,猜对了!\n");
      break;
    }
  }
}
int main()
{
  int intput = 0;
  do
  {
    menu();
    printf("请选择:\n");
    scanf("%d", &intput);
    switch (intput)
    {
    case 0:
      printf("退出游戏\n");
      break;
    case 1:
      game();
      break;
    default:
      printf("选择错误,请重新选择\n");
      break;
    }
  } while (intput);
  return 0;
}

4.最后

最后文章到此结束!希望这篇文章能帮助到你!

相关文章
|
2月前
|
C语言
C语言之斗地主游戏
该代码实现了一个简单的斗地主游戏,包括头文件引入、宏定义、颜色枚举、卡牌类、卡牌类型类、卡牌组合类、玩家类、游戏主类以及辅助函数等,涵盖了从牌的生成、分配、玩家操作到游戏流程控制的完整逻辑。
86 8
|
3月前
|
C语言
扫雷游戏(用C语言实现)
扫雷游戏(用C语言实现)
136 0
|
2月前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
52 2
|
2月前
|
C语言 Windows
C语言课设项目之2048游戏源码
C语言课设项目之2048游戏源码,可作为课程设计项目参考,代码有详细的注释,另外编译可运行文件也已经打包,windows电脑双击即可运行效果
41 1
|
3月前
|
C语言 C++
【C语言】编写“猜数字“小游戏
【C语言】编写“猜数字“小游戏
108 1
|
3月前
|
编译器 C语言
猜数字游戏实现#C语言
猜数字游戏实现#C语言
108 1
|
3月前
|
存储 C语言
揭秘C语言:泊舟的猜数字游戏
揭秘C语言:泊舟的猜数字游戏
103 2
|
3月前
|
C语言 开发者
C语言实现猜数字小游戏(详细教程)
C语言实现猜数字小游戏(详细教程)
|
3月前
|
存储 算法 安全
C语言实现扫雷游戏
C语言实现扫雷游戏
|
3月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)