服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C语言详解实现猜数字游戏步骤

C语言详解实现猜数字游戏步骤

2023-02-24 15:48hania_w C/C++

猜数字是兴起于英国的益智类小游戏,起源于20世纪中期,一般由两个人或多人玩,也可以由一个人和电脑玩。游戏规则为一方出数字,一方猜,今天我们来实现这个游戏案例

前言

本文详细介绍了猜数字游戏的具体实现逻辑

一、猜数字游戏是什么

1、电脑自动生成一个1-100以内的数字

2、我们输入一个我们猜的数字

3、如果我们猜的数字比电脑随机生成的数字大,那么输出(猜大了)

4、如果我们猜的数字比电脑随机生成的数字小,那么输出(猜小了)

5、如此循环往复,猜到正确的数字之后游戏结束

二、使用步骤

  • 1.首先应该打印菜单

代码如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
void menu()
{
    printf("*********************\n");
    printf("***** 1. play *******\n");
    printf("***** 0. exit *******\n");
    printf("*********************\n");
}
int main()
{
    menu();
    printf("请选择:>");
    int input = 0;
    while (input)
    {
        switch (input)
        {
        case 1:
            printf("游戏开始");
            game()//选择开始游戏之后,进入我们玩游戏的一个逻辑
            break;
        case 0:
            printf("退出游戏");
            break;
        default:
            printf("输入错误,请重新输入!");
            break;
        }
    }
    return 0;
}

选择1,开始游戏

选择0,游戏结束

  • 2.打印我们的game()函数来实现我们的游戏具体逻辑

代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void game()
{
    int guess = 0;
    int ret = rand() % 100 + 1;//限制我们得到的数字为1-100之间的数字
    while (1)//因为猜数字是一个多次的过程,因此需要一个循坏来解决
    {
        printf("请输入你猜的数字:>");
        scanf("%d", &guess);
        //将我们猜的数字与电脑随机生的数字作对比
        if (guess < ret)
        {
        //如果我们猜的数字比电脑的数字要小,输出猜小了
            printf("猜小了!\n");
        }
        else if (guess > ret)
        {
        //如果我们猜的数字比电脑的数字要大,输出猜大了
            printf("猜大了!\n");
        }
        else
        {
        //数字猜对了,输出猜对了
            printf("猜对了!\n");
            break;
        }
    }
}

注:

如果使用rand()函数,必须先调用srand()函数,再使用时间戳来形成一个随机数字。

我们调用时间戳,因此需要包含头文件#include<time.h>

【时间戳】的概念:一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。

因此我们的main()函数部分就变成了如下代码所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int main()
{
    menu();
    printf("请选择:>");
    int input = 0;
    int n = 0;
    scanf("%d", &input);
    srand((unsigned int)time(NULL));
    //使用srand函数,接着使用时间戳,形成一个无符号整数
    //我们调用时间戳,因此需要包含头文件#include<time.h>
    while (input)
    {
        switch (input)
        {
        case 1:
            game();//猜数字游戏的的逻辑
            break;
        case 0:
            printf("退出游戏");
            break;
        default:
            printf("输入错误,请重新输入!");
            break;
        }
    }
    return 0;
}

总结

本文的重点是对于时间戳的理解,以及猜数字游戏的逻辑

下面是【猜数字游戏】的全部代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
猜数字游戏1-100
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void game()
{
    int guess = 0;
    int ret = rand() % 100 + 1;//限制我们得到的数字为1-100之间的数字
    //printf("%d",ret);
    while (1)
    {
        printf("请输入你猜的数字:>");
        scanf("%d", &guess);
        if (guess < ret)
        {
            printf("猜小了!\n");
        }
        else if (guess > ret)
        {
            printf("猜大了!\n");
        }
        else
        {
            printf("猜对了!\n");
            break;
        }
    }
}
void menu()
{
    printf("*********************\n");
    printf("***** 1. play *******\n");
    printf("***** 0. exit *******\n");
    printf("*********************\n");
}
int main()
{
    menu();
    printf("请选择:>");
    int input = 0;
    int n = 0;
    scanf("%d", &input);
    srand((unsigned int)time(NULL));
    while (input)
    {
        switch (input)
        {
        case 1:
            game();//猜数字的逻辑
            break;
        case 0:
            printf("退出游戏");
            break;
        default:
            printf("输入错误,请重新输入!");
            break;
        }
    }
    return 0;
}

到此这篇关于C语言详解实现猜数字游戏步骤的文章就介绍到这了,更多相关C语言猜数字游戏内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_64634186/article/details/124233020

延伸 · 阅读

精彩推荐
  • C/C++用C语言实现扫雷游戏

    用C语言实现扫雷游戏

    这篇文章主要为大家详细介绍了用C语言实现扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Enthusiastic_boy9812021-11-12
  • C/C++C语言进阶练习二叉树的递归遍历

    C语言进阶练习二叉树的递归遍历

    树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。树结构在客观世界中...

    配的上了吗11072023-02-09
  • C/C++彻底掌握C语言strcat函数的用法

    彻底掌握C语言strcat函数的用法

    strcat是用来拼接字符串的,它会将参数 src 字符串复制到参数 dest 所指的字符串尾部,本章带你了解它的使用并模拟实现它...

    vince10952022-11-22
  • C/C++用C语言实现井字棋游戏代码

    用C语言实现井字棋游戏代码

    大家好,本篇文章主要讲的是用C语言实现井字棋游戏代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览...

    码猫CodeCat11432022-08-20
  • C/C++关于VS2022不能使用<bits/stdc++.h>的解决方案(万能头文件)

    关于VS2022不能使用<bits/stdc++.h>的解决方案(万能头文件)

    #include<bits/stdc++.h>包含了目前 C++ 所包含的所有头文件,又称万能头文件,那么如何在VS2022中使用万能头呢?下面小编给大家代理了关于VS2022不能使用<...

    MElephant7522022-10-25
  • C/C++C++ 虚函数与纯虚函数代码详解

    C++ 虚函数与纯虚函数代码详解

    本文主要介绍了C++ 虚函数与纯虚函数的使用与区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    胡小牧11092021-11-17
  • C/C++C语言实现矩阵翻转(上下翻转、左右翻转)

    C语言实现矩阵翻转(上下翻转、左右翻转)

    这篇文章主要介绍了C语言实现矩阵翻转(上下翻转、左右翻转)的相关资料,需要的朋友可以参考下...

    NCITS10132021-05-11
  • C/C++c语言swap(a,b)值交换的4种实现方法

    c语言swap(a,b)值交换的4种实现方法

    c语言swap(a,b)值交换的4种实现方法,这么好的东西,尽管简单,但值得发表,以此共享。...

    C语言教程网6912020-11-17