(C语言小项目)猜字游戏(测试2版)

#include 
//使用time函数
#include 
//使用system函数,rand函数,srand函数
#include 
//清屏操作
void clear_screen(){
    //判断是否为Windows系统
    #ifdef _WIN32
        system("cls");
    //其他系统
    #else
        system("clear");
    #endif
}
//初始页面
void page0(){
        printf("****************************************\n");
        printf("********1.开始游戏    2.退出游戏********\n");
        printf("********3.游戏难度    4.神秘力量********\n");
        printf("****************************************\n");
}
//模块一
int page1(int *a_0){
    int random=0;
    //初始化种子,防止随机数重复
    srand((unsigned int)time(NULL));
    switch (*a_0)
    {
    case 1:
        //初始化种子,防止随机数重复
        srand((unsigned int)time(NULL));
        //定义随机数
        random=rand()%5+1;
        printf("小宝宝你好~(随机数范围1-5)\n");
        break;
    case 2:
        //初始化种子,防止随机数重复
        srand((unsigned int)time(NULL));
        //定义随机数
        random=rand()%20+1;
        printf("当前难度:简单(随机数范围1-20)\n");
        break;
    case 3:
        //初始化种子,防止随机数重复
        srand((unsigned int)time(NULL));
        //定义随机数
        random=rand()%50+1;
        printf("当前难度:普通(随机数范围1-50)\n");
        break;
    case 4:
        //初始化种子,防止随机数重复
        srand((unsigned int)time(NULL));
        //定义随机数
        random=rand()%100+1;
        printf("当前难度:困难(随机数范围1-100)\n");
        break;
    case 5:
        //初始化种子,防止随机数重复
        srand((unsigned int)time(NULL));
        //定义随机数
        random=rand()%150+1;
        printf("当前难度:地狱(随机数范围1-150)\n");
        break;
    case 6:
        //初始化种子,防止随机数重复
        srand((unsigned int)time(NULL));
        //定义随机数
        random=rand()%500+1;
        printf("666,这个人是挂(随机数范围1-500)");
        break;
    }
    printf("请输入你的数字\n");
    int b=0;
    int c=0;
    //do while条件循环,在用户猜对之前一直循环
    do{
        int a=0;
        if (scanf("%d",&a)!=1){
            printf("不是有效数字!!\n");
            return 1;
        }
        if(a==random){
            printf("恭喜你猜对了!!!");
            b=1;
        }else if(a>random){
            clear_screen();
            printf("猜大了,小一点试试捏~请重新输入\n");
        }else {
            clear_screen();
            printf("猜小了,大一点试试捏~请重新输入\n");
        }
        c++;
    }while(b!=1);
    printf("该随机数是%d,一共猜了%d次呦~\n",random,c);
    return 0;
}
int page3(int *a_0){
    printf("当前模式为:选项%d(选项对应难度)\n",*a_0);
    printf("  ********1.宝宝模式********\n");
    printf("  ********2.简单模式********\n");
    printf("  ********3.普通模式********\n");
    printf("  ********4.困难模式********\n");
    printf("  ********5.地狱模式********\n");
    printf("********6.折磨自己模式********\n");
    printf("请选择模式1 2 3 4 5 6:\n");
    if (scanf("%d",&*a_0)!=1 && *a_0<1 &&*a_0>6){
        printf("不是有效数字!!\n");
        return 1;
    }
    switch (*a_0)
    {
    case 1:
        clear_screen();
        printf("不是~哥们~,这宝宝模式,你也选?????\n");
        break;
    case 2:
        clear_screen();
        printf("切换成功,当前为简单模式\n");
        break;
    case 3:
        clear_screen();
        printf("切换成功,当前为普通模式\n");
        break;
    case 4:
        clear_screen();
        printf("切换成功,当前为困难模式\n");
        break;
    case 5:
        clear_screen();
        printf("切换成功,当前为地狱模式\n");
        break;
    case 6:
        clear_screen();
        printf("我嘞个豆,哥们真是吃饱了撑得,满足你!!!");
        break;
    
    default:
        clear_screen();
        printf("输入有误!请选择模式1 2 3 4 5 6\n");
        break;
    }
    return *a_0;
}
 
int main(){
    int a_0=3;
    page0();
    printf("请选择模式1 2 3 4:\n");
    int a=0;
    if (scanf("%d",&a)!=1 && a<1 &&a>4){
        printf("不是有效数字!!\n");
        return 1;
    }
    //switch条件选择模块
    switch(a){
        //模块一
        case 1:{
            clear_screen();
            int x=page1(&a_0);
            if(x==0){
                printf("游戏结束!欢迎下次再玩~");
                return 0;
            }else{
                printf("输入错误!");
                return 1;
            }
            break;
        }
        //模块二
        case 2:
            printf("拜拜~,下次见喽~\n");
            break;
        case 3:
            clear_screen();
            page3(&a_0);
            int x=page1(&a_0);
            if(x==0){
                printf("游戏结束!欢迎下次再玩~");
                return 0;
            }else{
                printf("输入错误!");
                return 1;
            }
            break;
        case 4:
            // page4();
            break;
        default:
            printf("输入有误!请选择模式1 2 3 4\n");
            break;
    }
}

基于上一个版本,本次更新内容如下:

完善了模块三,大家可以自行选择难度,难度分为6级,依次变难

新增部分源代码注释,方便大家理解

新增清屏操作,用来优化屏幕视觉效果

新增猜数次数,可以知道用户猜了几次才正确

下面来解释部分代码

system(cls)为windons系统的终端清屏操作;使用时清空屏幕

使用指针传递地址,使a_0成为全局变量,他是选择模式的重要标准,初始值为3(开始时默认为简单模式)

下面为测试2版的部分运行结果

****************************************
********1.开始游戏    2.退出游戏********
********3.游戏难度    4.神秘力量********
****************************************
请选择模式1 2 3 4:
3



当前模式为:选项3(选项对应难度)
  ********1.宝宝模式********
  ********2.简单模式********
  ********3.普通模式********
  ********4.困难模式********
  ********5.地狱模式********
********6.折磨自己模式********
请选择模式1 2 3 4 5 6:
4


切换成功,当前为困难模式
当前难度:困难(随机数范围1-100)
请输入你的数字
50



猜小了,大一点试试捏~请重新输入
80



猜小了,大一点试试捏~请重新输入
90



猜小了,大一点试试捏~请重新输入
95



猜大了,小一点试试捏~请重新输入
98



猜大了,小一点试试捏~请重新输入
97



猜大了,小一点试试捏~请重新输入
96
恭喜你猜对了!!!该随机数是96,一共猜了7次呦~
游戏结束!欢迎下次再玩~
请按任意键继续. . .

你可能感兴趣的:(C语言小项目,c语言,游戏,算法,开发语言,数据结构,c++)