首页
论坛
课程
招聘
[原创]不想烧脑子,让机器代劳一下
2021-5-12 11:33 3848

[原创]不想烧脑子,让机器代劳一下

2021-5-12 11:33
3848
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char code[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int zb[46][2] = {
{0, 1 }, { 1,2 }, { 2,1 }, { 2,0 }, { 3,0 }, { 4,0 },
{ 4,1 }, { 5,2 }, { 6,1 }, { 6,0 }, { 7,0 }, { 8,0 },
{ 8,1 }, { 8,2 }, { 7,3 }, { 7,4 }, { 8,4 }, { 8,5 },
{ 7,6 }, { 6,6 }, { 5,6 }, { 4,6 }, { 3,6 }, { 3,5 },
{ 4,4 }, { 4,3 }, { 3,3 }, { 2,3 }, { 1,3 }, { 0,3 },
{ 0,4 }, { 1,5 }, { 1,6 }, { 0,6 }, { 0,7 }, { 1,8 },
{ 1,9 }, { 2,9 }, { 3,9 }, { 3,8 }, { 4,7 }, { 5,8 },
{ 6,8 }, { 7,8 }, { 8,8 }, { 8,9 } };
unsigned char bk[90] = {
    0x53, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00,
    0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01,
    0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00,
    0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01,
    0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
    0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00
};
unsigned char bk1[96];
char ans[48];
int p;

int judge()
{
    char cxy;
    int which;
    int idx;
    unsigned int x;
    int v10;
    int i;
    int v12;
    unsigned char* v13;
    int v17;
    int v18;
    int v19;
    int v20;
    unsigned int y;
    char v25[76];

    strcpy(v25, ans);
    memcpy(bk1, bk, sizeof(bk));
    if (strlen(v25) <= 0x30)
    {
        cxy = v25[0];
        if (v25[0])
        {
            which = 0;
            y = 0;
            x = 0;
        LABEL_4:
                idx = 0;
                if (code[idx] == cxy)
                {
                LABEL_11:
                    v20 = (which + idx / 6) % 6;
                    v10 = 5 - (which + idx) % 6;
                    for (i = 0; ; i = 1)
                    {
                        switch (v10)
                        {
                        case 1:
                            ++x;
                            break;
                        case 2:
                            v17 = (y++ & 1) == 0;
                            x += v17;
                            break;
                        case 3:
                            v12 = (y++ & 1) != 0;
                            x -= v12;
                            break;
                        case 4:
                            --x;
                            break;
                        case 5:
                            v19 = (y-- & 1) != 0;
                            x -= v19;
                            break;
                        default:
                            v18 = (y-- & 1) == 0;
                            x += v18;
                            break;
                        }
                        if (x > 9)
                            break;
                        if (y > 8)
                            break;
                        v13 = bk1 + 10 * y + x;
                        if (*v13)
                            break;
                        *v13 = 1;
                        if (i == 1)
                        {
                            ++which;
                            cxy = v25[which];
                            if (cxy)
                                goto LABEL_4;
                            goto LABEL_19;
                        }
                        v10 = v20;
                    }
                }
                else
                {
                    while (36 != ++idx)
                    {
                        if (code[idx] == cxy)
                            goto LABEL_11;
                    }
                }
        }
        else
        {
        LABEL_19:
            if ((bk1[zb[2*p][0]*10+zb[2*p][1]] == 0)|| (bk1[zb[2*p+1][0] * 10 + zb[2*p+1][1]] == 0))
                return 1;
            else
                return 0;
        }
    }
    return 1;
}

void jdg()
{
    int i;
    for (i = 0; i < 36; i++)
    {
        ans[p] = code[i];
        //printf("%s\n", ans);
        if (judge() == 0)
        {
            if (p == 22)
            {
                printf("%s\n\n", ans);
                exit(0);
            }
            p++;
            jdg();
            p--;
        }
        ans[p] = 0;
    }
}

int main()
{
    memset(ans, 0, sizeof(ans));
    p = 0;
    jdg();
}


[2022夏季班]《安卓高级研修班(网课)》月薪两万班招生中~

收藏
点赞1
打赏
分享
最新回复 (2)
雪    币: 718
活跃值: 活跃值 (1372)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
库尔 活跃值 2021-5-12 13:57
2
0
这个画的像什么
雪    币: 164
活跃值: 活跃值 (3526)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
suuuuu 活跃值 2021-5-12 15:12
3
0
迷宫玩的6
游客
登录 | 注册 方可回帖
返回