一个有趣的程序,分享给你最好的朋友,让他和你一起快乐

我们直接进入正题:system("shutdown -s -t 60");  s是一个可以让电脑关机的代码//system("shutdown -a");这个是让电脑取消关机的代码。因此,我们可以做一个游戏来伪装一下。我水平不高写不出高水平的代码请见谅。我写了一个猜数字的代码来伪装。

首先,我们需要做一个简单的开始面板

    printf("******************\n");
    printf("****1.play********\n");
    printf("****2.exit********\n");
    printf("注意是1到100的数哦\n");
    printf("******************\n");

再用scanf来接受玩家输入的数1或2.

    int i = 0;
    scanf("%d", &i);

接着,用if语句来判断玩家输入的值,来进行辨析,如果是1的话,那么就开始,如果是2 就退出

    switch(i)
    {
    case 1:
        printf("进入游戏");
        game();
            break;
    case 2:
        printf("退出游戏");
            break;

    }while(1== i )

然后就是游戏的实现:在这之前要说一个随机值的创建rand()这个会产生一个随机值但是这个随机值是一个伪随机值在第一次使用时与第二次使用时两个值是相同的因此仅仅使用rand()是不行的

但是rand()这个的实现是一种算法他是依托于一个叫种子的值,而种子的默认值为1,因此这两次使用的伪随机值才相同。因此我们只需要改变种子的值就可以使rand()产生的伪随机值变为随机值,但是这个要先产生一个变化的值。所以我们使用了一个随时在变的值:时间。

我们要改变rand()为一个真正的一个随机值首先需要使用一个srand()的函数用来改变种子的默认值。比如srand(3)就是把种子的值变为3,这样在下一次的使用时rand()的值也会改变。

因此,我们只需要把srand()中的值改为一个变化的值,这时就需要用到时间戳(这是从计算机诞生到现在的秒数)而time函数他返回的就是时间戳但是time返回的是time-t的类型因此我们还需要把他强制类型转换unsigned int就可以了

srand((unsigned)time(NULL));

下面的实现就很简单了

先用scanf接受玩家输入的数字,用if判断大小再用printf打印出数字是大了还是小了。把他放入一个循环。但是我们可以对这个循环进行一些次数上的要求。比如先自定义一个自变量让他在每次循环都+1,我们用if来判断比如超过5次就进行惩罚

这个惩罚可以是在屏幕上打印一些话如果:我是sb如果他不打的话就用system("shutdown -s -t 60");   (后面的数字是时间,单位:s)让电脑关机,他打了的话system("shutdown -a");用这个取消关机。当然关系够好的话可以先不关机,然后再过一下关机。

反正我发给我朋友,他玩了之后说:*******************

我看不懂什么意思,但是应该是说:真好玩之类的吧。

最后是完整的代码

#define _CRT_SECURE_NO_WARNINGS 1    
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
void game()
{
    int a = 1;
    int b = rand() % 100 + 1;
    int cf = 1;
    printf("请输入数字\n");
    while(1)
    {
        printf("请输入数字\n");
    scanf("%d", &a);
    if (a > b)
    {
        printf("大了\n");
    }
    else if (a < b)
        printf("小了\n");
    else
    {
        printf("恭喜你,答对了。\n");
        break;
    }
    cf++;
    if (5 == cf)
    {
        system("shutdown -s -t 60");
        char arr[20] = { 0 };
        while (1)
        {
            printf("因为你太笨了没有在5次内完成,因此你需要接受惩罚\n");
            printf("注意,你在你的电脑上输入:我是猪,不然的话就会关机\n");
            scanf("%s", arr);
            if (strcmp(arr, "我是猪") == 0)
            {
                system("shutdown -a");
                break;
            }
        }
    }
    }

}
int main()
{
    srand((unsigned)time(NULL));
    printf("******************\n");
    printf("****1.play********\n");
    printf("****2.exit********\n");
    printf("注意是1到100的数哦\n");
    printf("******************\n");
    int i = 0;
    scanf("%d", &i);
    switch(i)
    {
    case 1:
        printf("进入游戏");
        game();
            break;
    case 2:
        printf("退出游戏");
            break;

    }while(1== i )
    return 0;

}

    if (5 == cf)这句话是改次数的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值