1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
| #include <inttypes.h> #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <string.h> #include <math.h> #include "defs.h"
uint8_t map[36][7][7] = { 01,00,00,00,00,00,00,03,00,02,02,03,01,03,01,03,02,01,02,02,01,03,02,03,01,00,01,00,03,03,00,01,02,01,00,00,03,02,02,02,01,03,02,02,02,02,01,02,03, 00,00,00,00,00,01,00,00,02,02,02,01,01,01,00,02,03,02,02,00,01,00,03,01,00,02,00,01,00,00,02,01,03,01,01,03,00,01,02,02,00,02,03,03,03,00,02,03,03, 00,02,02,00,00,02,01,01,03,00,03,01,00,02,00,01,01,00,02,03,03,03,01,00,00,02,00,02,03,03,03,03,03,02,01,03,03,00,00,03,02,02,00,02,03,01,02,01,00, 03,02,01,03,00,01,01,01,00,02,00,01,01,01,01,00,00,03,02,02,00,01,03,02,02,01,02,01,00,01,03,03,01,03,01,02,03,02,00,02,01,03,03,02,00,03,03,02,01, 01,00,00,00,02,02,02,01,03,00,03,03,00,01,03,03,03,01,00,03,01,02,01,00,01,00,00,02,03,00,00,02,02,03,01,03,03,00,01,02,01,01,03,03,03,00,00,03,00, 01,02,01,00,01,01,00,02,03,03,03,00,01,00,03,03,02,01,03,03,02,01,02,00,00,01,03,03,00,03,01,01,00,03,03,00,02,03,01,02,02,03,00,00,02,00,03,02,03, 01,02,00,02,00,00,03,03,02,03,03,03,00,02,02,00,01,02,01,00,01,02,03,02,01,02,03,03,02,00,02,03,02,00,02,03,03,01,01,02,01,02,00,00,03,03,03,01,02, 01,02,02,02,03,01,01,00,02,00,02,02,03,02,03,03,03,02,03,02,03,03,00,02,00,02,02,03,00,02,02,02,01,02,01,02,03,02,01,02,00,00,00,00,03,03,00,03,03, 00,00,00,01,03,03,03,02,03,01,00,00,01,02,00,00,00,02,02,00,01,02,02,02,02,00,00,03,00,03,03,00,00,01,03,00,01,03,01,02,00,01,00,03,02,02,02,02,02, 00,00,00,00,02,03,00,02,01,00,00,03,03,01,03,01,03,01,01,02,01,00,02,02,03,03,01,02,03,00,02,00,02,01,02,01,02,02,01,03,01,03,01,02,03,03,01,02,01, 03,01,03,01,00,01,01,00,03,03,03,00,03,02,00,01,03,03,00,01,03,03,03,02,00,02,00,01,00,00,00,01,03,02,01,03,03,00,02,03,00,03,00,02,03,03,02,03,01, 03,02,01,00,00,01,01,01,03,03,01,00,03,03,00,00,00,00,02,03,02,03,02,03,03,02,02,00,00,00,01,00,00,03,02,02,01,02,03,02,01,02,00,03,02,03,02,03,00, 00,02,00,01,02,02,03,00,02,02,01,03,01,03,02,00,03,02,03,01,02,02,03,00,02,00,00,02,03,00,01,00,01,03,02,00,01,02,02,01,01,02,03,00,03,01,03,03,02, 02,00,03,00,01,00,00,03,03,02,03,00,02,00,03,00,00,02,00,02,01,00,03,00,03,02,03,00,00,01,02,02,03,02,00,02,02,01,00,02,03,01,01,02,03,01,03,02,03, 00,00,00,00,00,02,02,00,01,03,01,00,02,00,01,01,00,01,03,00,03,03,03,01,03,01,01,02,03,00,01,00,01,02,03,02,03,02,03,01,03,01,03,02,00,02,01,01,00, 01,00,01,00,01,00,02,03,02,03,01,03,02,00,00,01,00,02,01,02,01,02,02,00,02,03,03,00,02,00,02,03,02,00,02,03,02,02,01,02,00,00,03,02,02,03,03,02,00, 02,02,01,03,00,00,00,03,00,01,00,02,02,00,00,02,03,00,00,01,02,03,03,01,00,00,03,00,03,01,02,02,00,03,03,00,02,00,02,03,00,01,03,02,03,01,00,01,02, 02,02,02,01,02,02,03,03,03,00,02,02,03,01,03,01,03,01,01,00,02,00,03,02,00,00,02,00,00,00,01,01,03,03,02,01,02,03,00,02,02,01,02,02,03,02,01,00,03, 01,01,00,01,02,03,03,02,03,03,00,03,02,00,03,03,00,01,00,00,00,01,00,01,03,03,01,01,02,03,02,00,02,00,02,02,01,01,00,01,00,03,00,03,02,03,00,03,03, 00,00,00,03,02,00,00,01,03,00,00,03,03,01,00,01,02,01,01,01,03,03,01,01,01,02,03,03,03,02,01,02,01,02,00,01,02,02,03,03,01,00,00,03,00,03,02,03,03, 03,01,00,00,01,00,01,03,03,03,01,02,01,00,03,01,00,02,03,00,02,00,02,02,02,01,00,00,00,00,00,01,01,02,00,01,02,02,01,00,02,02,00,03,00,02,00,00,03, 03,00,03,01,03,02,00,03,00,00,03,03,02,02,03,00,03,03,01,02,01,03,02,03,03,03,03,00,00,00,00,03,00,01,01,02,00,03,01,03,02,00,01,00,02,02,02,01,01, 02,02,00,03,01,00,01,01,03,01,02,03,01,01,02,00,01,03,03,02,02,03,03,03,03,03,01,00,03,00,03,03,00,00,03,00,02,00,01,01,02,01,01,03,03,00,00,02,00, 00,02,00,01,02,02,00,03,03,02,00,01,03,03,02,02,02,01,02,01,03,00,03,03,02,00,01,02,00,03,02,00,00,02,01,03,02,01,01,02,03,01,03,03,03,03,03,03,00, 01,00,02,01,00,00,02,01,03,03,00,00,01,00,00,00,02,01,00,02,03,03,02,03,00,01,01,00,03,03,02,03,00,03,00,03,02,00,02,01,02,01,03,03,00,03,00,00,02, 03,01,02,03,03,00,01,03,02,02,00,03,00,02,00,03,01,01,02,00,02,02,03,02,01,00,00,02,01,01,02,00,00,01,02,02,02,01,02,00,02,01,00,00,00,00,03,03,00, 00,01,00,02,03,02,00,02,03,00,03,01,03,01,01,02,02,02,01,00,03,03,01,02,01,01,00,01,00,02,00,03,03,02,00,03,03,02,01,02,00,03,03,00,00,03,00,00,03, 02,00,00,02,01,01,00,03,03,00,02,03,00,03,03,02,00,01,01,01,01,00,02,03,01,00,03,01,00,03,01,03,01,00,03,03,01,02,02,00,03,00,01,03,00,00,03,02,02, 02,03,03,01,00,03,02,02,03,00,02,00,01,03,00,02,02,03,00,02,02,02,02,00,01,01,01,03,00,03,01,02,03,01,00,03,02,02,01,01,02,01,01,01,01,02,00,00,00, 00,00,02,03,01,00,01,02,00,03,00,01,00,02,03,02,00,03,03,01,00,01,03,00,00,01,00,03,03,00,03,02,01,03,01,03,01,01,01,01,00,02,01,00,03,02,00,03,00, 02,02,02,01,00,01,01,03,00,00,03,01,02,01,03,03,03,01,03,01,01,00,02,02,01,01,00,00,02,02,03,03,03,00,01,02,02,01,03,02,02,00,02,00,03,00,00,03,03, 03,02,00,01,01,00,01,03,00,00,03,02,02,01,00,01,03,03,03,01,01,03,02,02,03,03,00,01,03,01,03,00,01,00,03,02,01,00,01,01,01,02,01,01,02,03,02,01,00, 01,01,02,00,03,02,01,03,01,03,00,00,03,01,03,00,01,02,00,00,03,02,02,03,02,03,01,03,02,02,03,03,03,01,02,03,02,03,03,00,01,00,03,03,02,02,00,03,03, 02,01,03,00,02,02,00,03,01,03,02,00,00,03,00,02,03,03,03,02,00,02,03,00,01,03,01,02,00,01,01,02,02,01,02,00,03,01,02,01,03,02,00,03,02,03,01,00,01, 03,03,01,03,03,00,02,01,02,01,03,00,02,03,00,01,02,03,01,01,02,02,01,00,03,00,02,01,03,03,00,02,03,01,02,02,02,03,03,02,03,01,03,02,02,03,00,02,03, 01,00,02,00,02,03,00,02,01,03,00,00,03,00,02,03,00,00,01,02,00,03,03,00,02,00,01,01,03,00,03,02,01,02,00,00,03,02,01,00,02,02,02,03,02,02,02,00,01}; void printArray(const char *name,uint8_t *v,size_t len){ printf("========%s=========\n",name); for(size_t i=0;i<len;i++){ printf("0x%02X,",v[i]); } printf("\n=================\n"); } uint8_t loc_F98664[]= {0xe8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x18,0x21,0x6,0xa0,0x19,0xc1,0x9,0x18,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, 0xe8,0x0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, 0x7c,0x0,0x2,0x78,0x7c,0x21,0xa,0x78,0x7c,0x42,0x12,0x78,0x7c,0x63,0x1a,0x78,0x7c, 0x84,0x22,0x78,0x7c,0xa5,0x2a,0x78,0x7c,0xc6,0x32,0x78,0x7c,0xe7,0x3a,0x78,0x7d ,0x8,0x42,0x78,0x7d,0x29,0x4a,0x78,0x7d,0x4a,0x52,0x78,0x7d,0x6b,0x5a,0x78,0x7d, 0x8c,0x62,0x78,0x7d,0xad,0x6a,0x78,0x7d,0xce,0x72,0x78,0x7d,0xef,0x7a,0x78,0x7e, 0x10,0x82,0x78,0x7e,0x31,0x8a,0x78,0x7e,0x52,0x92,0x78,0x7e,0x73,0x9a,0x78,0x7e, 0x94,0xa2,0x78,0x7e,0xb5,0xaa,0x78,0x7e,0xd6,0xb2,0x78,0x7e,0xf7,0xba,0x78,0x7f, 0x18,0xc2,0x78,0x7f,0x39,0xca,0x78,0x7f,0x5a,0xd2,0x78}; uint8_t runGame(uint8_t (*gamemap)[7], uint8_t startPoint) { int startPoint_1; char *v3; char *v4; int v5; char v6; char v7; int v8; int v9; int v10; char *v11; uint8_t *v12; uint8_t *v13; uint8_t *v14; char *v15; char *v16; int v17; char v19[61];
LOBYTE(startPoint_1) = startPoint; v3 = (char *)loc_F98664 + 1; v4 = v19; v5 = 24; do { v6 = v3[1]; v3 += 2; v7 = *v3; v4[1] = v6; v4 += 2; *v4 = v7; --v5; } while ( v5 ); v4[1] = v3[1]; v8 = -1; v9 = 0; v10 = 0; do { v11 = &v19[7 * v9]; v12 = &(*gamemap)[7 * v9 - 1]; do { *++v11 = *++v12; ++v10; } while ( ((v10 - 7) & 1) != 0 ); for ( ; v10 < 7; v10 += 2 ) { v13 = v12 + 1; v14 = v11 + 1; *v14 = *v13; v12 = v13 + 1; v11 = v14 + 1; *v11 = *v12; } ++v9; v10 = 0; } while ( v9 < 7 ); startPoint_1 = (char)startPoint_1; LABEL_10: v15 = &v19[7 * startPoint_1 + 1]; while ( v10 < 7 && startPoint_1 >= 0 && startPoint_1 < 7 ) { v16 = &v15[v10]; v17 = v15[v10]; if ( startPoint_1 % 2 ) { if ( v15[v10] ) { if ( v17 == 1 ) { *v16 = 0; v8 = 0; --startPoint_1; goto LABEL_10; } if ( v17 != 2 ) { if ( v17 != 3 ) return v8 == 1; *v16 = 2; v8 = 2; ++startPoint_1; goto LABEL_10; } *v16 = 1; v8 = 1; if ( ++v10 >= 0 ) goto LABEL_10; } else { *v16 = 3; v8 = 3; if ( --v10 >= 0 ) goto LABEL_10; } return v8 == 1; } if ( v15[v10] ) { if ( v17 == 1 ) { *v16 = 2; v8 = 2; ++startPoint_1; goto LABEL_10; } if ( v17 != 2 ) { if ( v17 != 3 ) return v8 == 1; *v16 = 0; v8 = 0; --startPoint_1; goto LABEL_10; } *v16 = 3; v8 = 3; if ( --v10 >= 0 ) goto LABEL_10; return v8 == 1; } *v16 = 1; v8 = 1; if ( ++v10 < 0 ) return v8 == 1; } return v8 == 1; }
int main(){ uint8_t flag[37]={0}; for(int i=0;i<36;i++){ for(int j=0;j<0x7f;j++){ if(runGame(map[i],j)){ flag[i]=j; break; } } } printArray("flag",flag,36); return 0; }
|