一步一步用c语言写一个简单的猜数字游戏

目录

1.猜数字游戏的运行逻辑

        1.先打印出菜单供用户选择

        2.构建游戏的逻辑

                2.1创建并调用一个GAME函数

                2.2系统出一个随机数

                2.3用户输入数据,判断数据对错

2.使用到的函数

        1.输入输出函数   

        2.随机数函数     


   

明白这些就可以让代码飞起来了

        1.1先打印出菜单供用户选择

                        首先要自己创建一个菜单(MENU)函数

                                菜单必须实现菜单的功能例如是开始游戏还是退出游戏而且要做到每次游戏结束都要询问一次

                                所以在这里我们用到do while()循环来实现每次的询问及选择

#include <stdio.h>
void MENU()
{
    printf("*******************\n");
    printf("**1.play***2.exit**\n");    //打印出菜单供用户选择1为玩游戏0为退出
    printf("*******************\n");
}
int main()
{
    int input=0;
    do
      {
        
            MENU();    //调用这个函数打印出菜单
            scanf("%d",&input);    //用户选择开始游戏或者退出游戏
            switch(input)    //判断用户输入的内容
            {
                case 1:
                    {
                        printf("游戏开始,请输入猜的数字\n");
                        break;
                    }
                case 0:
                    {
                        printf("游戏结束\n")
                        break;
                    }
                default:
                    {
                        printf("输入错误,请重新输入")
                    }
            }while(input) //这里是判断如果为0就结束循环如果为非0就继续循环
            
      }
}

         1.2构建游戏逻辑

                1.2.1  创建并调用建一个game函数

#include <stdio.h>
void GAME()//创建一个函数
{
}
void MENU()
{
    printf("*******************\n");
    printf("**1.play***2.exit**\n");    
    printf("*******************\n");
}
int main()
{
    int input=0;
    do
      {
        
            MENU();    
            scanf("%d",&input);   
            switch(input)    
            {
                case 1:
                    {
                        printf("游戏开始,请输入猜的数字\n");
                        GAME();//调用一个GAME函数
                        break;
                    }
                case 0:
                    {
                        printf("游戏结束\n")
                        break;
                    }
                default:
                    {
                        printf("输入错误,请重新输入")
                    }
            }while(input) 
            
      }
}

        1.2.2 让系统出一个随机数(rand()函数是出一个随机数)

                           注意:用rand调用的出的随机数在每次执行程序的时候出来的“随机数”都相同(伪随机数)所以要通过调用srand()函数来初始化一个随机数而srand所需要的参数是一个无符号随机数。无符号的随机数从哪来呢?这就不得不引出时间戳的概念   头文件#include <stdlib.h>

                                    时间戳:是现在的时间与计算机诞生的时间的差值转换成的数字,随着时间一秒一秒的变化时间戳也在不停的变化,所以符合srand()的参数(由于srand()函数需要一个无符号的整型所以要将时间戳强制转换)用time调用,头文件#include <time.h>

#include <stdio.h>
void GAME()
{
   int r= rand();//调用一个随机函数,用r存起来方便以后的判断
}
void MENU()
{
    printf("*******************\n");
    printf("**1.play***2.exit**\n");    
    printf("*******************\n");
}
int main()
{
    srand((unsigned int)time(null));//将随机函数初始化
    int input=0;
    do
      {
        
            MENU();    
            scanf("%d",&input);   
            switch(input)    
            {
                case 1:
                    {
                        printf("游戏开始,请输入猜的数字\n");
                        GAME();
                        break;
                    }
                case 0:
                    {
                        printf("游戏结束\n")
                        break;
                    }
                default:
                    {
                        printf("输入错误,请重新输入")
                    }
            }while(input) 
            
      }
}

        1.2.3用户输入所猜的数并判断

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void GAME()
{
    int r = rand()%100;//%100是将随机的数字限制在100以内缩小范围
    int i = 0;
        while (1)//因为不可能一次性猜对,所以如果猜错需要进入循环继续猜,猜对则跳出循环
        {
            scanf("%d", &i); //输入用户输入所猜的数
            if (i > r)//判断用户所猜的数,并给出结果
            {
                printf("猜大了\n");
            }
            else if (i == r)
            {
                printf("恭喜你,猜对了\n");
                break;
            }
            else
            {
                printf("猜小了\n");
            }
        }
}
void MENU()
{
    printf("*******************\n");
    printf("**1.play***2.exit**\n");
    printf("*******************\n");
}
int main()
{
    srand((unsigned int)time(NULL));
    int input = 0;
    do
    {

        MENU();
        scanf("%d", &input);
        switch (input)
        {
        case 1:
        {
            printf("游戏开始,请输入猜的数字\n");
            GAME();
            break;
        }
        case 0:
        {
            printf("游戏结束\n");
                break;
        }
        default:
        {
            printf("输入错误,请重新输入");
        }
        }

    } while (input);
}

                

猜你喜欢

转载自blog.csdn.net/weixin_60359155/article/details/121056555