编程语言
首页 > 编程语言> > 基于C语言的猜数小游戏(附源码)_*往事随风的博客*

基于C语言的猜数小游戏(附源码)_*往事随风的博客*

作者:互联网

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

基于C语言实现的一个简易的猜数小游戏,目的在于熟悉一下C语言中的随机数函数、方法的调用以及模块化代码的应用。


一、游戏规则

提示用户输入一个整数(这里以1-100为例),如果用户输入的数比系统随机产生的数大,则提示用户输入的数值太大,重新输入,反之则提示用户输入的数值太小,重新输入,直到用户输入的数值和系统产生的数值一样,游戏结束。

二、基本思路

首先通过随机数函数来随机产生一个整数(这里以1-100之间的整数为例),然后将产生的随机数与用户输入的数进行比对,进而来判断用户输入的是否符合游戏的规则。

三、代码分析

1.打印游戏菜单

这一步就是单纯的printf,没有什么难度,注意一下排版就行。

示例代码如下:

/*游戏菜单*/
void menu()
{
    printf("\t\t\t\t【趣味猜数游戏】\n");
    printf("\t\t\t1.开始游戏\t\t2.退出游戏\n");
    printf("------------------------------------------------------------------------------\n");
}

2.实现功能交互

这一块的话主要是对switch的应用。

示例代码如下:

/*功能交互*/
void interactive()
{
    printf("请输入您的选择:");
    scanf("%d",&choice);
        switch(choice){
          case 1:
              game();break;
          case 2:
              out();break;
          default:printf("请在1-2中选择\n");break;
        }
}

3.产生游戏数据

这里的游戏数据对应的是系统随机产生的随机数,用来和用户输入的数进行比较,保证游戏的正常进行。此处主要应用到了随机数函数。

示例代码如下:

/*产生游戏数据*/
void date()
{
    srand((time(NULL)));//随机数种子
    num_s = rand()%101;//随机产生100以内的随机数
}

4.运行游戏

前期工作准备好以后,我们就可以开始运行游戏,
这一块主要是对游戏规则的逻辑化理解的应用,相对来说比较简单,注意好逻辑关系就可以了。

示例代码如下:

/*开始游戏*/
void game()
{
    date();
    printf("请输入一个数:");
    scanf("%d",&num);
    num= juge(num);//将判断后的num重新赋值给num
    while(1){
        if(num==num_s){
            printf("恭喜,猜中了!\n");
            system("pause");
            system("cls");break;
        }else if(num-num_s>0){
            printf("输入的数字太大了!\n");
            printf("再试一次吧:");
            scanf("%d",&num);
        }else if(num-num_s<0){
            printf("输入的数字太小了!\n");
            printf("再试一次吧:");
            scanf("%d",&num);
        }
    }
}

四、运行结果

趣味猜数游戏

五、整体代码

#include<stdio.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
/*定义全局变量*/
int choice = 0;//存储功能选择数据
int num = 0;//存储用户输入数据
int num_s = 0;//存储游戏随机产生的数据

/*函数声明*/
void menu();//游戏菜单
void interactive();//功能交互
void date();//产生游戏数据
void game();//开始游戏
void out();//退出游戏
int juge(int num);//判断用户输入是否合法

/*测试函数*/
int main()
{
    system("title 趣味猜数游戏");
    system("color f5");
    while(1){
      menu();
      interactive();
    }
    return 0;
}
/*游戏菜单*/
void menu()
{
    printf("\t\t\t\t【趣味猜数游戏】\n");
    printf("\t\t\t1.开始游戏\t\t2.退出游戏\n");
    printf("------------------------------------------------------------------------------\n");
}
/*功能交互*/
void interactive()
{
    printf("请输入您的选择:");
    scanf("%d",&choice);
        switch(choice){
          case 1:
              game();break;
          case 2:
              out();break;
          default:printf("请在1-2中选择\n");break;
        }
}
/*产生游戏数据*/
void date()
{
    srand((time(NULL)));//随机数种子
    num_s = rand()%101;//随机产生100以内的随机数
}
/*判断用户输入的数据是否合法*/
int juge(int num)
{
    while(1){
        if(num>0&&num<=100){
           return num;break;
        }else if(num>100||num<=0){
            printf("(请在1-100以内的数字进行选择)\n");
            printf("请重新输入:");
            scanf("%d",&num);
        }else{
            printf("你的输入不合法,请重新输入:");
            scanf("%d",&num);
        }
   }
}
/*开始游戏*/
void game()
{
    date();
    printf("请输入一个数:");
    scanf("%d",&num);
    num= juge(num);//将判断后的num重新赋值给num
    while(1){
        if(num==num_s){
            printf("恭喜,猜中了!\n");
            system("pause");
            system("cls");break;
        }else if(num-num_s>0){
            printf("输入的数字太大了!\n");
            printf("再试一次吧:");
            scanf("%d",&num);
        }else if(num-num_s<0){
            printf("输入的数字太小了!\n");
            printf("再试一次吧:");
            scanf("%d",&num);
        }
    }
}
/*退出游戏*/
void out()
{
	int i;
    printf("三秒后将退出游戏:");
    for(i=0;i<3;i++){
        printf("·");
        Sleep(1000);
    }
    printf("\n");
    printf("欢迎下次再来玩!\n");
    exit(0);
}

六、总结

本篇主要是对c语言的基础知识的练习,主要回顾了C语言中的随机数函数,以及函数的调用。对于新手,掌握代码中的逻辑至关重要。

标签:num,游戏,猜数,void,C语言,源码,printf,scanf,输入
来源: https://blog.csdn.net/m0_47214030/article/details/115702092