【C语言】猜数字小游戏的一步一步实现2

简介: 【C语言】猜数字小游戏的一步一步实现

【C语言】猜数字小游戏的一步一步实现1:https://developer.aliyun.com/article/1474630

5.3 生成

打印菜单,选择游戏进行和结束,这些过程我们要来实现函数的核心部分:猜数字。但是猜数字我们的有数字生成呀!所以我们可以通过前面的 rand ,srand 和 time 函数来生成0—100的数:

void menu()
{
    printf("****  猜数字小游戏  ****\n");
    printf("******  1. play  ******\n");
    printf("******  0. exit  ******\n");
    printf("***********************\n");
}

void game()
{
    int r = rand() % 100 + 1;//通过调用srand函数生成0—100的数;


}

int main()
{
    int input = 0;
    srand((unsigned int)time(NULL)); //使用time函数的返回值设置种子
                                     //因为srand的参数是unsigned int类型,我们将time的返回值强制类性转换
                                     //srand函数的头文件的 time.h
    do 
    {
        menu();
        printf("请输入-->\n");
        scanf("%d", &input);//输入1 或 0
        switch (input)//对输入的值进行选择,因此用了switch语句
        {
            case 1:
                printf("猜数字小游戏启动!\n");
                game();
                break;
            case 0:
                printf("退出游戏!!!\n");
                break;
            default :
                printf("输入错误,请重新选择!!\n");

        }
    } while (input);//这里我们可以把 0 改为input,因为0只能循环一次,input可以选择 1或者0来进行游戏的选择
    return 0;
}

5.4 循环比较

最后用while循环输入的数与生成的数进行比较

#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()
{
    int r = rand() % 100 + 1;//通过调用srand函数生成0—100的数;
    int guess = 0;
   
    while (1)               //用while循环输入的数与生成的数进行比较
    {
        printf("请猜数字—>");
        scanf("%d", &guess);
        if (guess > r)
        {
            printf("猜大了\n");
           
        }
        else if (guess < r)
        {
            printf("猜小了\n");
            
        }
        else
        {
            printf("猜对了\n");
            break;
        }
    }
}

int main()
{
    int input = 0;
    srand((unsigned int)time(NULL)); //使用time函数的返回值设置种子
                                     //因为srand的参数是unsigned int类型,我们将time的返回值强制类性转换
                                     //srand函数的头文件的 time.h
    do 
    {
        menu();
        printf("请输入-->\n");
        scanf("%d", &input);//输入1 或 0
        switch (input)//对输入的值进行选择,因此用了switch语句
        {
            case 1:
                printf("猜数字小游戏启动!\n");
                game();
                break;
            case 0:
                printf("退出游戏!!!\n");
                break;
            default :
                printf("输入错误,请重新选择!!\n");
                break;

        }
    } while (input);//这里我们可以把 0 改为input,因为0只能循环一次,input可以选择 1或者0来进行游戏的选择
    return 0;
}

六 、优化:控制次数

由于博主一直都猜不中,可以给个小小的赞鼓励一下嘛;当然我们也可以设定次数来猜:

#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()
{
    int r = rand() % 100 + 1;//通过调用srand函数生成0—100的数;
    int guess = 0;
    int count = 5;
    while (count)               //用while循环输入的数与生成的数进行比较
    {
        printf("你还有%d次机会", count);
        printf("请猜数字—>");
        scanf("%d", &guess);
        if (guess > r)
        {
            printf("猜大了\n");
           
        }
        else if (guess < r)
        {
            printf("猜小了\n");
            
        }
        else
        {
            printf("猜对了\n");
            break;
        }
        count--;
    }
    if (0 == count)
    {
        printf("你失败了,正确值是%d\n", r);
    }
}

int main()
{
    int input = 0;
    srand((unsigned int)time(NULL)); //使用time函数的返回值设置种子
                                     //因为srand的参数是unsigned int类型,我们将time的返回值强制类性转换
                                     //srand函数的头文件的 time.h
    do 
    {
        menu();
        printf("请输入-->\n");
        scanf("%d", &input);//输入1 或 0
        switch (input)//对输入的值进行选择,因此用了switch语句
        {
            case 1:
                printf("猜数字小游戏启动!\n");
                game();
                break;
            case 0:
                printf("退出游戏!!!\n");
                break;
            default :
                printf("输入错误,请重新选择!!\n");
                break;

        }
    } while (input);//这里我们可以把 0 改为input,因为0只能循环一次,input可以选择 1或者0来进行游戏的选择
    return 0;
}

好啦!猜游戏到这里就完了,注:永远不要害怕每一次失败,要勇于尝试,看过千遍万遍,不过于自己动手做几遍!

相关文章
|
2月前
|
C语言 C++
【C语言】编写“猜数字“小游戏
【C语言】编写“猜数字“小游戏
|
2月前
|
编译器 C语言
猜数字游戏实现#C语言
猜数字游戏实现#C语言
87 1
|
2月前
|
存储 C语言
揭秘C语言:泊舟的猜数字游戏
揭秘C语言:泊舟的猜数字游戏
|
3月前
|
定位技术 API C语言
C语言——实现贪吃蛇小游戏
本文介绍了一个基于Windows控制台的贪吃蛇游戏的实现方法。首先,需调整控制台界面以便更好地显示游戏。接着,文章详细描述了如何使用Win32 API函数如`COORD`、`GetStdHandle`、`GetConsoleCursorInfo`等来控制控制台的光标和窗口属性。此外,还介绍了如何利用`GetAsyncKeyState`函数实现键盘监听功能。文中还涉及了`&lt;locale.h&gt;`库的使用,以支持本地化字符显示。
63 1
C语言——实现贪吃蛇小游戏
|
3月前
|
存储 安全 算法
C 语言——实现扫雷小游戏
本文介绍了使用二维数组创建棋盘并实现扫雷游戏的方法。首先,通过初始化数组创建一个9x9的棋盘,并添加行列标识以便操作。接着,利用随机数在棋盘上布置雷。最后,通过判断玩家输入的坐标来实现扫雷功能,包括显示雷的数量和处理游戏胜利或失败的情况。文中提供了完整的代码实现。
51 1
C 语言——实现扫雷小游戏
|
2月前
|
存储 API C语言
【C语言】实践:贪吃蛇小游戏(附源码)(一)
【C语言】实践:贪吃蛇小游戏(附源码)
|
2月前
|
C语言 定位技术 API
【C语言】实践:贪吃蛇小游戏(附源码)(二)
【C语言】实践:贪吃蛇小游戏(附源码)
【C语言】实践:贪吃蛇小游戏(附源码)(二)
|
2月前
|
C语言 开发者
C语言实现猜数字小游戏(详细教程)
C语言实现猜数字小游戏(详细教程)
|
2月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
2月前
|
C语言
【C语言】实践:贪吃蛇小游戏(附源码)(三)
【C语言】实践:贪吃蛇小游戏(附源码)