学习鹏哥c语言视频时写的一个猜数字游戏并且通过弹幕说将猜数字游戏与关机程序联系起来而写的一串代码。

本人新手小白在鹏哥的视频中受到鼓励于是发布一篇自己的博客,望广大网友理解。

如有错误希望大佬指出了,感谢了,如果有自己的想法欢迎在评论区讨论。

下面是完整的代码我会比较详细的说明代码的实现,注意代码有关机功能,确保数据不会丢失时慎重使用,如果电脑开始关机可以在命令管理器中输入shutdown -a停止关机。

本人使用设备系统是Windows11,编译软件是dev-c++,其他情况需要自己做出调整。

首先关机原理是在windows中的cmd中输入shutdown -s -t 60然后回车电脑就会在60s后关机,此时在cmd中输入shutdown -a就会取消关机。(一定要设置时间不然电脑会立即关机)

#include<stdio.h>   //输入输出的头文件。
#include<stdlib.h>   //system,rand和srand的头文件,至于system,本人理解是这个函数可以将双引号的内容输出到windows的命令控制符也就是cmd。(本人电脑是windows的,其他的不了解)而rand和srand是为了生成随机数的。
#include<string.h>   //strcmp函数的头文件后面来讲。
#include<time.h>    //  利用sranf函数通过时间戳获得电脑的系统时间来作为一个种子设置rand函数,使rand函数生成的数更加随机。
#include<windows.h>  这是为了使用Sleep函数,后面来讲。
void menu()            // 这是游戏的菜单界面 由主函数调用。原理就是利用printf函数打印。
{
    printf("********************\n");
    printf("*******0 exit*******\n");
    printf("*******1 play*******\n"); 
    printf("*******2 rule*******\n");
    printf("*******3 clear******\n");
    printf("********************\n");
}
void game()    // 这是实现游戏逻辑的函数。
{
    int red=rand()%100+1;//利用red存放rand生成的随机数
    int x=0;   //存放用户输入的数字。
    int count = 5;// 用来记录5次机会。
    char input[20]={0}; // 存放用户输入的字符。
    while(1)
    {
        scanf("%d",&x);   //将用户输入的值保存到x中。
        if(x<red)
        {
            printf("输小了\n");                      //判断用户输入的数字与随机数的大小并且给  
            count--;                                     出大了还是小了的提升但都是输入错误所以都有
            printf("还有%d此机会\n",count);               count都会减1。
        }
        else if(x>red)
        {
            printf("输大了\n"); 
            count--;
            printf("还有%d此机会\n",count);
        }
        else 
        {                                                      //猜到了结束函数。
            printf("恭喜你猜对了\n");
            break; 
        }
        if(count==0)                              //当count的值从5到0则执行关机语句                                          
        {                                               // 并且提升用户60s后关机如果输入“我是猪”就能取消关机。
            printf("电脑将在60s后关机如果输入我是猪就取消关机\n");
            system("shutdown -s -t 60");
            scanf("%s",input);
        }
        if(strcmp(input,"我是猪")==0)         //利用strcmp函数如果相同则strcmphu会返回0,判断返回                                                                   值是不是0,如果是就取消关机。
        {
            system("shutdown -a") ;
            printf("你终于承认了\n");
        }
    }
}
int main()
{
    srand((unsigned int)time(NULL));    // srand接收一个无符号整型,所以改变一下用time函数                                                                      获得的时间戳的类型来设置,而且时间戳是整型。
    int input=0;
    do
    {                                                    //利用do while先干后判断的特性打印菜单。
    menu();                                         //调用menu函数打印菜单。
    scanf("%d",&input);                       //记录用户的输入。
    switch(input)                                //利用分支决定不同的输入带来不同的功能。
    {
        case 0:                                     //输入0推出分支并且退出循环。
            printf("游戏退出");
            break;
        case 1:
            printf("游戏开始\n猜数字\n");     //调用game函数开始游戏。
            game();
            break;
        case 2:                                      //打印规则。
            printf("游戏规则是猜1~100内的数字但是只有5次机会次数用光后电脑将在60s后关机但是如果你承认你是猪我就放过你\n");
            break;
        case 3:                                        //进行了多次游戏可以清理屏幕行。
            printf("正在清除屏幕\n");         
            Sleep(2000);                           //Sleep字面意思就是睡觉可以使电脑停止操作2s中使得清理
            system("cls");                         有仪式感。system("cls")可以清空命令行。
            break;
        default:                                        //输入0,1,2或3以外的数字提示输入错误。
            printf("输入错误请输入0或1或3\n"); 
    }
    }while(input);                                   //结束条件是用户输入0。
    return 0;
}

本文章是刚学c语言的新手写的有很多不足之处希望广大网友谅解和指出,希望大家一起进步学习,目的是希望总结学习的东西并分享,不希望给其他人带来困扰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值