【C语言】猜数字游戏(凸(艹皿艹 )超级超级详解)!!!(一)

简介: 【C语言】猜数字游戏(凸(艹皿艹 )超级超级详解)!!!

前言

猜数字在C语言的学习中是非常经典的一道题目,这道题目对以后我们写更大的项目是有好处的

游戏规则

猜数字游戏

  1. 电脑随机生成一个数字(1~100)
  2. 玩家猜数字
    玩家猜小了,就告知猜小了
    玩家猜大了,就告知猜大了
    直到猜对为止
  3. 游戏可以一直玩

思路整理

看到规则我们应该知道,肯定是需要用到循环,而生成随机数是一个难点,
这里咱们先暂时放着。按道理我们应该有一个菜单,让玩家选择玩与不玩

菜单打印

#include<stdio.h>
void menu()
{
  printf("*******************\n");
  printf("*0.EXIT *** 1.PLAY*\n");
  printf("*******************\n");
  printf("*******************\n");
}
int main()
{
  menu();
  return 0;
}

这就是菜单的打印方式,然后咱们来实现整体结构,为什么要这么快就全盘脱出而不多加一点引导呢?因为没有必要,因为你只是没有见到怎么使用,所以你看一遍基本上下次就知道要怎么写。

整体大概结构

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

可以看到我们利用Switch 和 do-while实现了,选什么就干什么的一个基本逻辑,接下来就是在case1 中添加game()程序。

游戏程序

现在实现游戏最困难的地方就是生成随机数,希望大家不要因为它是一个新的知识点就害怕它,每天学一点新知识我们才能成长。

其实,C语言提供给我们了一个生成随机数的函数就rand,咱们先来学习一下它

rand函数

我把中英文版本都放在这里,我们只需要知道函数参数,返回值,头文件就行了,

返回值介于0-RAND_MAX就是介于0-32767。也就是它的返回的随机数的范围也是0-32767,那我们可不可以就直接用rand来生成随机数呢?

我们实践一下

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
void menu()
{
  printf("*******************\n");
  printf("*0.EXIT *** 1.PLAY*\n");
  printf("*******************\n");
  printf("*******************\n");
}
void game()
{
  int ret = rand();
  printf("%d\n", ret);
}
int main()
{
  int input = 0;
  do
  {
    menu();
    printf("请选择->");
    scanf("%d", &input);
    switch (input)
    {
    case 0:
      printf("退出游戏\n");
      break;
    case 1:
      printf("猜数字游戏\n");
      game();
        break;
    default :
      printf("输入错误,请重新输入\n");
      break;
    }
  } while (input);
  return 0;
}

下面是ret 打印的结果

可以看到两次打印结果居然都是呈现同样的数,这样的游戏合理吗?

当然不,所以我们还要深化学习

srand函数

上面的图片看完大家也可能还是不是很懂怎么使用,那么我讲解一下,一般rand函数与srand是要一起使用的,用srand这个函数,在调用rand之前设置随机数的生成器。,来咱们看看咱们使用。当然这两个函数的头文件是一样的,都是stdlib.h

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
void menu()
{
  printf("*******************\n");
  printf("*0.EXIT *** 1.PLAY*\n");
  printf("*******************\n");
  printf("*******************\n");
}
void game()
{
  srand(100); //我们人为的加了个100;看看打印会是什么样子
  int ret = rand();
  printf("%d\n", ret);
}
int main()
{
  int input = 0;
  do
  {
    menu();
    printf("请选择->");
    scanf("%d", &input);
    switch (input)
    {
    case 0:
      printf("退出游戏\n");
      break;
    case 1:
      printf("猜数字游戏\n");
      game();
        break;
    default :
      printf("输入错误,请重新输入\n");
      break;
    }
  } while (input);
  return 0;
}

无论我们打印多少次结果都是365,但是一但srand里面的值改变,打印的结果也就改变。

我们发挥合理的想象,只要srand的值能够不断的变化,那么我们就会真正得到随机值,那这就难办了,本来我就是要一个随机数,结果你要我在srand里放一个随机数,这到底怎么搞呢?其实我们再在srand里放一个一直在变化的值就可以了,那么什么是一直变化的呢?对了,TIME ,time一直在变化。

接下来我们引出最后的函数 time


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

热门文章

最新文章