【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;
}

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

相关文章
|
27天前
|
算法 C语言
【C语言】猜数字小游戏的一步一步实现1
【C语言】猜数字小游戏的一步一步实现
|
2月前
|
程序员 C语言
【C语言实战项目】猜数字游戏
【C语言实战项目】猜数字游戏
27 0
【C语言实战项目】猜数字游戏
|
2月前
|
C语言
C语言之三子棋小游戏
C语言之三子棋小游戏
|
2月前
|
C语言
关于使用C语言编写一个简单的猜数字游戏
关于使用C语言编写一个简单的猜数字游戏
23 0
|
3月前
|
C语言
C语言之实现贪吃蛇小游戏篇(2)
C语言之实现贪吃蛇小游戏篇(2)
24 1
|
2月前
|
算法 编译器 C语言
C语言猜数字小游戏(也包含python实现的用法)
本文基于VS2022、pycharm和前面的知识,写一个凭借分支与循环的小游戏,比如: 写一个猜数字游戏 游戏要求: 电脑自动生成1~100的随机数 玩家猜数字,猜数的过程中,根据猜测数据的大小给出大了或小了的反馈,直到猜对,游戏结束 在pyhton中生成随机数是比较简单的,可以直接导入random的包,直接生成随机数,导致写猜数字小游戏变成了判读语句和循环语句嵌套就能写出来,所以我不做过多的介绍了,可以直接看后面的代码展示,想了解更多的python可看python的基础知识,这里面有我在学习python的过程中写的笔记
31 0
|
4月前
|
存储 小程序 编译器
C语言之三子棋小游戏的应用
C语言之三子棋小游戏的应用
|
19天前
|
C语言
爱上C语言:扫雷小游戏,展开一片功能实现
爱上C语言:扫雷小游戏,展开一片功能实现
爱上C语言:扫雷小游戏,展开一片功能实现
|
22天前
|
人工智能 机器人 测试技术
【C语言】C语言实现猜单词小游戏(源码+报告)【独一无二】
【C语言】C语言实现猜单词小游戏(源码+报告)【独一无二】
|
2月前
|
存储 定位技术 C语言
基于C语言实现扫雷小游戏
本文介绍了使用C语言实现扫雷小游戏的过程。扫雷是一款经典的单机游戏,玩家需要通过点击方格来揭示数字或地雷,最终清除所有非地雷方格。实现过程中,首先定义了游戏所需的数据结构,如游戏地图、玩家信息等。然后,实现了游戏的初始化、渲染、输入处理等核心功能。在游戏逻辑方面,处理了点击事件、数字计算和胜负判断等。通过不断优化和完善,最终完成了基于C语言的扫雷小游戏实现,为玩家提供了一种简单有趣的游戏体验。
25 0