📄 old
字号:
120 halfsolution[1, halfindex] := pair1; 121 halfsolution[2, halfindex] := pair2; 122 halfsolution[3, halfindex] := pair3; 123 halfsolution[4, halfindex] := pair4; 124 halfindex := halfindex + 1; patch 1814 1822 1822 BEG:28 0 1828 CASE4 0 1832 CASE4 1 1836 CASE2 119 1838 "listsolution" 1852 LINO:120 1854 LV:2 -568 1858 RV4:2 -12 1862 INX4:1 1 30 1868 RV1:4 -17 1872 RANG2:1 3 1876 AS21 1878 LINO:121 1880 LV:2 -568 1884 CON1:30 1886 ADD24 1888 RV4:2 -12 1892 INX4:1 1 30 1898 RV1:4 -18 1902 RANG2:1 3 1906 AS21 1908 LINO:122 1910 LV:2 -568 1914 CON1:60 1916 ADD24 1918 RV4:2 -12 1922 INX4:1 1 30 1928 RV1:4 -19 1932 RANG2:1 3 1936 AS21 1938 LINO:123 1940 LV:2 -568 1944 CON1:90 1946 ADD24 1948 RV4:2 -12 1952 INX4:1 1 30 1958 RV1:4 -20 1962 RANG2:1 3 1966 AS21 1968 LINO:124 1970 LV:2 -12 1974 RV4:2 -12 1978 CON1:1 1980 ADD24 1982 AS4 1984 END patch 1822 0 125 end; 127 begin 128 halfindex := 1; 129 for pair1 := one2 to five6 do 130 for pair2 := one2 to five6 do 131 for pair3 := one2 to five6 do 132 for pair4 := one2 to five6 do 133 if two222(pair1, pair2, pair3, pair4) then 134 listsolution; 135 if halfindex <= 2 then 136 begin 137 nosolutions := true; 138 goto 1; 139 end; patch 1456 1986 1986 BEG:24 0 1992 CASE4 0 1996 CASE4 1 2000 CASE2 127 2002 "find2222" 2012 LINO 128 2016 LV:2 -12 2020 CON1:1 2022 AS24 2024 LINO 129 2028 LV:4 -24 2032 CON1:1 2034 AS24 2036 LV:4 -28 2040 CON1:3 2042 AS24 2044 RV4:4 -24 2048 RV4:4 -28 2052 REL4 LE 2054 IF -2 2058 LV:4 -29 2062 RV4:4 -28 2066 RANG42:1 3 2070 AS41 2072 LV:4 -29 2076 RV4:4 -24 2080 RANG42:1 3 2084 AS41 2086 LV:4 -17 2090 RV14:4 -29 2094 AS41 2096 LINO 130 2100 LV:4 -36 2104 CON1:1 2106 AS24 2108 LV:4 -40 2112 CON1:3 2114 AS24 2116 RV4:4 -36 2120 RV4:4 -40 2124 REL4 LE 2126 IF -2 2130 LV:4 -41 2134 RV4:4 -40 2138 RANG42:1 3 2142 AS41 2144 LV:4 -41 2148 RV4:4 -36 2152 RANG42:1 3 2156 AS41 2158 LV:4 -18 2162 RV14:4 -41 2166 AS41 2168 LINO 131 2172 LV:4 -48 2176 CON1:1 2178 AS24 2180 LV:4 -52 2184 CON1:3 2186 AS24 2188 RV4:4 -48 2192 RV4:4 -52 2196 REL4 LE 2198 IF -2 2202 LV:4 -53 2206 RV4:4 -52 2210 RANG42:1 3 2214 AS41 2216 LV:4 -53 2220 RV4:4 -48 2224 RANG42:1 3 2228 AS41 2230 LV:4 -19 2234 RV14:4 -53 2238 AS41 2240 LINO 132 2244 LV:4 -60 2248 CON1:1 2250 AS24 2252 LV:4 -64 2256 CON1:3 2258 AS24 2260 RV4:4 -60 2264 RV4:4 -64 2268 REL4 LE 2270 IF -2 2274 LV:4 -65 2278 RV4:4 -64 2282 RANG42:1 3 2286 AS41 2288 LV:4 -65 2292 RV4:4 -60 2296 RANG42:1 3 2300 AS41 2302 LV:4 -20 2306 RV14:4 -65 2310 AS41 2312 LINO 133 2316 PUSH:-4 2318 RV1:4 -29 2322 RANG2:1 3 2326 RV1:4 -41 2330 RANG2:1 3 2334 RV1:4 -53 2338 RANG2:1 3 2342 RV1:4 -65 2346 RANG2:1 3 2350 CALL:2 1462 2356 IF -2 2360 LINO 134 2364 CALL:2 1814 patch 2356 12 2370 LINO 132 2374 RV4:4 -64 2378 LV:4 -65 2382 FOR1U:-82 patch 2270 112 2384 LINO 131 2388 RV4:4 -52 2392 LV:4 -53 2396 FOR1U -170 patch 2198 200 2400 LINO 130 2404 RV4:4 -40 2408 LV:4 -41 2412 FOR1U -258 patch 2126 288 2416 LINO 129 2420 RV4:4 -28 2424 LV:4 -29 2428 FOR1U -346 patch 2054 376 2432 LINO 135 2436 RV4:2 -12 2440 CON1:2 2442 REL24 LE 2444 IF -2 2448 LINO 137 2452 LV:2 -1 2456 CON1:1 2458 RSNG2:1 2460 AS21 2462 LINO 138 2466 TRA4 6 patch 2444 26 2472 END patch 1986 68 140 end; 2474 TRA4 2474 142 procedure simultaneous; 143 var 144 done: Boolean; 145 begin 146 nosolutions := false; 147 pointr := 0; 148 done := false; 149 repeat 150 pointr := pointr + 1; 151 repeat 152 index := succ(pointr); 153 if (halfsolution[1, pointr]<>halfsolution[1,index]) and 154 (halfsolution[2, pointr]<>halfsolution[2,index]) and 155 (halfsolution[3, pointr]<>halfsolution[3,index]) and 156 (halfsolution[4, pointr]<>halfsolution[4,index]) then 157 done := true else 158 index := index + 1; 159 until done or (index = pred(halfindex)); 160 until done or (pointr = halfindex); 161 if pointr = halfindex then 162 begin 163 nosolutions := true; 164 goto 1; 165 end; patch 2474 2482 2482 BEG:28 0 2488 CASE4 0 2492 CASE4 1 2496 CASE2 145 2498 "simultaneous" 2512 LINO 146 2516 LV:2 -1 2520 CON1 2522 RSNG2:1 2524 AS21 2526 LINO 147 2530 LV:2 -16 2534 CON1 2536 AS24 2538 LINO 148 2542 LV:4 -1 2546 CON1 2548 RSNG2:1 2550 AS21 2552 LINO 150 2556 LV:2 -16 2560 RV4:2 -16 2564 CON1:1 2566 ADD24 2568 AS4 2570 LINO 152 2574 LV:2 -8 2578 RV4:2 -16 2582 SUCC4 -2147483648 2147483647 2592 AS4 2594 LINO 153 2598 LV:2 -568 2602 RV4:2 -16 2606 INX4:1 1 30 2612 IND1 2614 LV:2 -568 2618 RV4:2 -8 2622 INX4:1 1 30 2628 IND1 2630 REL2 NE 2632 LV:2 -568 2636 CON1:30 2638 ADD24 2640 RV4:2 -16 2644 INX4:1 1 30 2650 IND1 2652 LV:2 -568 2656 CON1:30 2658 ADD24 2660 RV4:2 -8 2664 INX4:1 1 30 2670 IND1 2672 REL2 NE 2674 AND 2676 LV:2 -568 2680 CON1:60 2682 ADD24 2684 RV4:2 -16 2688 INX4:1 1 30 2694 IND1 2696 LV:2 -568 2700 CON1:60 2702 ADD24 2704 RV4:2 -8 2708 INX4:1 1 30 2714 IND1 2716 REL2 NE 2718 AND 2720 LV:2 -568 2724 CON1:90 2726 ADD24 2728 RV4:2 -16 2732 INX4:1 1 30 2738 IND1 2740 LV:2 -568 2744 CON1:90 2746 ADD24 2748 RV4:2 -8 2752 INX4:1 1 30 2758 IND1 2760 REL2 NE 2762 AND 2764 IF -2 2768 LINO 157 2772 LV:4 -1 2776 CON1:1 2778 RSNG2:1 2780 AS21 2782 TRA -2 patch 2764 20 2786 LINO 158 2790 LV:2 -8 2794 RV4:2 -8 2798 CON1:1 2800 ADD24 2802 AS4 patch 2782 20 2804 RV1:4 -1 2808 RV4:2 -8 2812 RV4:2 -12 2816 PRED4 -2147483648 2147483647 2826 REL4 EQ 2828 OR 2830 IF -262 2834 RV1:4 -1 2838 RV4:2 -16 2842 RV4:2 -12 2846 REL4 EQ 2848 OR 2850 IF -300 2854 LINO 161 2858 RV4:2 -16 2862 RV4:2 -12 2866 REL4 EQ 2868 IF -2 2872 LINO 163 2876 LV:2 -1 2880 CON1:1 2882 RSNG2:1 2884 AS21 2886 LINO 164 2890 TRA4 6 patch 2868 26 2896 END patch 2482 4 166 end; 2898 TRA4 2898 168 procedure rearrange; 169 var 170 box: blockno; 171 a, b: pair; 2904 TRA4 2904 173 procedure put(a, b: pair); 174 var 175 old1, new1, old2, new2: face; 176 save1, save2: alfa; 2910 TRA4 2910 178 procedure oldpair(c: pair); 179 begin 180 case c of 181 one2: 182 begin 183 old1 := front; 184 old2 := back; 185 end; 186 three4: 187 begin 188 old1 := top; 189 old2 := bottom; 190 end; 191 five6: 192 begin 193 old1 := left; 194 old2 := right; 195 end 196 end; patch 2910 2918 2918 BEG:22 0 2924 CASE4 4 2928 CASE4 1 2932 CASE2 179 2934 "oldpair" 2942 LINO 180 2946 RV1:9 33 2950 CASE1OP:3 2952 .=.+6 2958 CASE1 1 2959 CASE1 2 2960 CASE1 3 2962 TRA -2 patch 2950 14 2966 LINO 183 2970 LV:6 -1 2974 CON1:1 2976 RANG2:1 6 2980 AS21 2982 LINO 184 2986 LV:6 -3 2990 CON1:2 2992 RANG2:1 6 2996 AS21 2998 TRA -38 patch 2952 50 3002 LINO 188 3006 LV:6 -1 3010 CON1:3 3012 RANG2:1 6 3016 AS21 3018 LINO 189 3022 LV:6 -3 3026 CON1:4 3028 RANG2:1 6 3032 AS21 3034 TRA -74 patch 2954 86 3038 LINO 193 3042 LV:6 -1 3046 CON1:5 3048 RANG2:1 6 3052 AS21 3054 LINO 194 3058 LV:6 -3 3062 CON1:6 3064 RANG2:1 6 3068 AS21 3070 TRA -110 patch 2962 110 3074 END patch 2918 0 197 end; 3076 TRA4 3076 198 procedure newpair(d: pair); 199 begin 200 oldpair(b); 201 new1 := old1; 202 new2 := old2; patch 3076 3082 3082 BEG:22 0 3088 CASE4 4 3092 CASE4 1 3096 CASE2 199 3098 "newpair" 3106 LINO 200 3110 RV1:7 33 3114 RANG2:1 3 3118 CALL:3 2910 3124 LINO 201 3128 LV:6 -2 3132 RV1:6 -1 3136 RANG2:1 6 3140 AS21 3142 LINO 202 3146 LV:6 -4 3150 RV1:6 -3 3154 RANG2:1 6 3158 AS21 203 end;In procedure newpair: w - variable d is never used 3160 END patch 3082 0 205 begin 206 newpair(b); 207 oldpair(a); 208 save1 := datas[box, new1]; 209 datas[box, new1] := datas[box, old1]; 210 datas[box, old1] := save1; 211 save2 := datas[box, new2]; 212 datas[box, new2] := datas[box, old2]; 213 datas[box, old2] := save2; patch 2904 3162 3162 BEG:18 0 3168 CASE4 8 3172 CASE4 1 3176 CASE2 205 3178 "put" 3182 LINO 206 3186 RV1:7 33 3190 RANG2:1 3 3194 CALL:3 3076 3200 LINO 207 3204 RV1:7 37 3208 RANG2:1 3 3212 CALL:3 2910 3218 LINO 208 3222 LV:6 -16 3226 LV:2 -256 3230 RV1:4 -1 3234 INX2:60 1 4 3240 RV1:6 -2 3244 INX2:10 1 6 3250 IND:10 3252 AS:10 3254 LINO 209 3258 LV:2 -256 3262 RV1:4 -1 3266 INX2:60 1 4 3272 RV1:6 -2 3276 INX2:10 1 6 3282 LV:2 -256 3286 RV1:4 -1 3290 INX2:60 1 4 3296 RV1:6 -1 3300 INX2:10 1 6 3306 IND:10 3308 AS:10 3310 LINO 210 3314 LV:2 -256 3318 RV1:4 -1 3322 INX2:60 1 4 3328 RV1:6 -1 3332 INX2:10 1 6 3338 RV:6 -16 10 3344 AS:10 3346 LINO 211 3350 LV:6 -28 3354 LV:2 -256 3358 RV1:4 -1 3362 INX2:60 1 4 3368 RV1:6 -4 3372 INX2:10 1 6 3378 IND:10 3380 AS:10 3382 LINO 212 3386 LV:2 -256 3390 RV1:4 -1 3394 INX2:60 1 4 3400 RV1:6 -4 3404 INX2:10 1 6 3410 LV:2 -256 3414 RV1:4 -1 3418 INX2:60 1 4 3424 RV1:6 -3 3428 INX2:10 1 6 3434 IND:10 3436 AS:10 3438 LINO 213 3442 LV:2 -256 3446 RV1:4 -1 3450 INX2:60 1 4 3456 RV1:6 -3 3460 INX2:10 1 6 3466 RV:6 -28 10 3472 AS:10 3474 END patch 3162 28 214 end; 216 begin 217 for box := 1 to 4 do 218 begin 219 a := halfsolution[box, pointr]; 220 b := halfsolution[box, index]; 221 if (a=one2) and (b=five6) then 222 put(five6, three4) else 223 begin 224 if a = three4 then 225 begin 226 if b = one2 then 227 begin 228 put(one2, five6); 229 put(three4, one2); 230 put(five6, three4); 231 end else 232 begin 233 put(three4, one2); 234 put(five6, three4); 235 end 236 end else 237 if b = one2 then 238 begin 239 put(one2, three4); 240 put(five6, one2); 241 end else 242 put(five6, one2); 243 end; 244 end; patch 2898 3478 3478 BEG:24 0 3484 CASE4 0 3488 CASE4 1 3492 CASE2 216 3494 "rearrange" 3504 LINO 217 3508 LV:4 -8 3512 CON1:1 3514 AS24 3516 LV:4 -12 3520 CON1:4 3522 AS24 3524 RV4:4 -8 3528 RV4:4 -12 3532 REL4 LE 3534 IF -2 3538 LV:4 -13 3542 RV4:4 -12 3546 RANG42:1 4 3550 AS41 3552 LV:4 -13 3556 RV4:4 -8 3560 RANG42:1 4 3564 AS41 3566 LV:4 -1 3570 RV14:4 -13 3574 AS41 3576 LINO 219 3580 LV:4 -2 3584 LV:2 -568 3588 RV1:4 -13 3592 INX2:30 1 4 3598 RV4:2 -16 3602 INX4:1 1 30 3608 IND1 3610 RANG2:1 3 3614 AS21 3616 LINO 220 3620 LV:4 -3 3624 LV:2 -568 3628 RV1:4 -13 3632 INX2:30 1 4 3638 RV4:2 -8 3642 INX4:1 1 30 3648 IND1 3650 RANG2:1 3 3654 AS21 3656 LINO 221 3660 RV1:4 -2 3664 CON1:1 3666 REL2 EQ 3668 RV1:4 -3 3672 CON1:3 3674 REL2 EQ 3676 AND 3678 IF -2 3682 LINO 222 3686 CON1:3 3688 RANG2:1 3 3692 CON1:2 3694 RANG2:1 3 3698 CALL:2 2904 3704 TRA -2 patch 3678 28 3708 LINO 224 3712 RV1:4 -2 3716 CON1:2 3718 REL2 EQ 3720 IF -2 3724 LINO 226 3728 RV1:4 -3 3732 CON1:1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -