Код:
7 DEF FNL$(X,Y)=CHR$(27)+"Y"+CHR$(32+Y)+CHR$(32+X)
8 DEF FNCL$=chr$(12)
1000 KEY OFF
1010 DEFINT A-Z
1020 REM RANDOMIZE TIMER
1030 SCREEN 0
1040 WIDTH 40
1050 COLOR 15, 13
1060 PRINT FNCL$
1070 PRINT
1080 PRINT " ######################################"
1090 PRINT " # #"
1100 PRINT " # BRAIN TEASER #"
1110 PRINT " # #"
1120 PRINT " # for MSXdev25 #"
1130 PRINT " # #"
1140 PRINT " # by Y. R. Sova #"
1150 PRINT " # #"
1160 PRINT " ######################################"
1170 PRINT " # #"
1180 PRINT " # This computer game is based on #"
1190 PRINT " # BrainTeaser by Wim Nijland. #"
1200 PRINT " # #"
1210 PRINT " # Choose digits from 1 to 9, split #"
1220 PRINT " # by reaction method into three #"
1230 PRINT " # groups (1-3-7-9, 2-4-6-8, and 5). #"
1240 PRINT " # #"
1250 PRINT " # The goal is to display all digits #"
1260 PRINT " # except 5, without letting the #"
1270 PRINT " # field be cleared. #"
1280 PRINT " # #"
1290 PRINT " ######################################"
1300 K$ = INKEY$
1310 IF K$ = "" THEN GOTO 1300
1320 PRINT FNCL$
1330 Z = 0
1340 PRINT
1350 PRINT " ###############################"
1360 PRINT " # # # #"
1370 PRINT " # # # #"
1380 PRINT " # # # #"
1390 PRINT " # # # #"
1400 PRINT " # # # #"
1410 PRINT " # # # #"
1420 PRINT " ###############################"
1430 PRINT " # # # #"
1440 PRINT " # # # #"
1450 PRINT " # # # #"
1460 PRINT " # # # #"
1470 PRINT " # # # #"
1480 PRINT " # # # #"
1490 PRINT " ###############################"
1500 PRINT " # # # #"
1510 PRINT " # # # #"
1520 PRINT " # # # #"
1530 PRINT " # # # #"
1540 PRINT " # # # #"
1550 PRINT " # # # #"
1560 PRINT " ###############################"
1570 REM PRINT
1580 S1 = INT(RND(1) * 2) + 1
1590 S2 = INT(RND(1) * 2) + 1
1600 S3 = INT(RND(1) * 2) + 1
1610 S4 = INT(RND(1) * 2) + 1
1620 S5 = INT(RND(1) * 2) + 1
1630 S6 = INT(RND(1) * 2) + 1
1640 S7 = INT(RND(1) * 2) + 1
1650 S8 = INT(RND(1) * 2) + 1
1660 S9 = INT(RND(1) * 2) + 1
1670 IF S1 + S2 + S3 + S4 + S5 + S6 + S7 + S8 + S9 = 18 THEN GOTO 1580
1680 X = 6
1690 Y = 3
1700 IF S1 = 1 THEN GOSUB 4190 ELSE GOSUB 4640
1710 X = 16
1720 IF S2 = 1 THEN GOSUB 4240 ELSE GOSUB 4640
1730 X = 26
1740 IF S3 = 1 THEN GOSUB 4290 ELSE GOSUB 4640
1750 X = 6
1760 Y = 10
1770 IF S4 = 1 THEN GOSUB 4340 ELSE GOSUB 4640
1780 X = 16
1790 IF S5 = 1 THEN GOSUB 4390 ELSE GOSUB 4640
1800 X = 26
1810 IF S6 = 1 THEN GOSUB 4440 ELSE GOSUB 4640
1820 X = 6
1830 Y = 17
1840 IF S7 = 1 THEN GOSUB 4490 ELSE GOSUB 4640
1850 X = 16
1860 IF S8 = 1 THEN GOSUB 4540 ELSE GOSUB 4640
1870 X = 26
1880 IF S9 = 1 THEN GOSUB 4590 ELSE GOSUB 4640
1890 K$ = INKEY$
1891 IF K$ = "" THEN 1890 ELSE K=asc(K$)
1892 IF K = 27 THEN PRINT FNCL$: END
1893 IF (K>=49 and K<=57) THEN ON (K-49) GOTO 2010,2050,2090,2130,2170,2210,2250,2290,2330
1990 '
2000 GOTO 1890
2000 GOTO 1890
2010 IF S1 = 2 THEN PRINT CHR$(7); ELSE GOSUB 2370
2020 GOSUB 3570
2030 IF Z <> 0 THEN GOTO 3600
2040 GOTO 1890
2050 IF S2 = 2 THEN PRINT CHR$(7); ELSE GOSUB 2520
2060 GOSUB 3570
2070 IF Z <> 0 THEN GOTO 3600
2080 GOTO 1890
2090 IF S3 = 2 THEN PRINT CHR$(7); ELSE GOSUB 2630
2100 GOSUB 3570
2110 IF Z <> 0 THEN GOTO 3600
2120 GOTO 1890
2130 IF S4 = 2 THEN PRINT CHR$(7); ELSE GOSUB 2780
2140 GOSUB 3570
2150 IF Z <> 0 THEN GOTO 3600
2160 GOTO 1890
2170 IF S5 = 2 THEN PRINT CHR$(7); ELSE GOSUB 2890
2180 GOSUB 3570
2190 IF Z <> 0 THEN GOTO 3600
2200 GOTO 1890
2210 IF S6 = 2 THEN PRINT CHR$(7); ELSE GOSUB 3070
2220 GOSUB 3570
2230 IF Z <> 0 THEN GOTO 3600
2240 GOTO 1890
2250 IF S7 = 2 THEN PRINT CHR$(7); ELSE GOSUB 3180
2260 GOSUB 3570
2270 IF Z <> 0 THEN GOTO 3600
2280 GOTO 1890
2290 IF S8 = 2 THEN PRINT CHR$(7); ELSE GOSUB 3320
2300 GOSUB 3570
2310 IF Z <> 0 THEN GOTO 3600
2320 GOTO 1890
2330 IF S9 = 2 THEN PRINT CHR$(7); ELSE GOSUB 3430
2340 GOSUB 3570
2350 IF Z <> 0 THEN GOTO 3600
2360 GOTO 1890
2370 S1 = 2
2380 IF S2 = 1 THEN S2 = 2 ELSE S2 = 1
2390 IF S4 = 1 THEN S4 = 2 ELSE S4 = 1
2400 IF S5 = 1 THEN S5 = 2 ELSE S5 = 1
2410 X = 6
2420 Y = 3
2430 GOSUB 4640
2440 X = 16
2450 IF S2 = 1 THEN GOSUB 4240 ELSE GOSUB 4640
2460 X = 6
2470 Y = 10
2480 IF S4 = 1 THEN GOSUB 4340 ELSE GOSUB 4640
2490 X = 16
2500 IF S5 = 1 THEN GOSUB 4390 ELSE GOSUB 4640
2510 RETURN
2520 S2 = 2
2530 IF S1 = 1 THEN S1 = 2 ELSE S1 = 1
2540 IF S3 = 1 THEN S3 = 2 ELSE S3 = 1
2550 X = 16
2560 Y = 3
2570 GOSUB 4640
2580 X = 6
2590 IF S1 = 1 THEN GOSUB 4190 ELSE GOSUB 4640
2600 X = 26
2610 IF S3 = 1 THEN GOSUB 4290 ELSE GOSUB 4640
2620 RETURN
2630 S3 = 2
2640 IF S2 = 1 THEN S2 = 2 ELSE S2 = 1
2650 IF S5 = 1 THEN S5 = 2 ELSE S5 = 1
2660 IF S6 = 1 THEN S6 = 2 ELSE S6 = 1
2670 X = 26
2680 Y = 3
2690 GOSUB 4640
2700 X = 16
2710 IF S2 = 1 THEN GOSUB 4240 ELSE GOSUB 4640
2720 X = 16
2730 Y = 10
2740 IF S5 = 1 THEN GOSUB 4390 ELSE GOSUB 4640
2750 X = 26
2760 IF S6 = 1 THEN GOSUB 4440 ELSE GOSUB 4640
2770 RETURN
2780 S4 = 2
2790 IF S1 = 1 THEN S1 = 2 ELSE S1 = 1
2800 IF S7 = 1 THEN S7 = 2 ELSE S7 = 1
2810 X = 6
2820 Y = 10
2830 GOSUB 4640
2840 Y = 3
2850 IF S1 = 1 THEN GOSUB 4190 ELSE GOSUB 4640
2860 Y = 17
2870 IF S7 = 1 THEN GOSUB 4490 ELSE GOSUB 4640
2880 RETURN
2890 S5 = 2
2900 IF S2 = 1 THEN S2 = 2 ELSE S2 = 1
2910 IF S4 = 1 THEN S4 = 2 ELSE S4 = 1
2920 IF S6 = 1 THEN S6 = 2 ELSE S6 = 1
2930 IF S8 = 1 THEN S8 = 2 ELSE S8 = 1
2940 X = 16
2950 Y = 10
2960 GOSUB 4640
2970 Y = 3
2980 IF S2 = 1 THEN GOSUB 4240 ELSE GOSUB 4640
2990 Y = 17
3000 IF S8 = 1 THEN GOSUB 4540 ELSE GOSUB 4640
3010 X = 6
3020 Y = 10
3030 IF S4 = 1 THEN GOSUB 4340 ELSE GOSUB 4640
3040 X = 26
3050 IF S6 = 1 THEN GOSUB 4440 ELSE GOSUB 4640
3060 RETURN
3070 S6 = 2
3080 IF S3 = 1 THEN S3 = 2 ELSE S3 = 1
3090 IF S9 = 1 THEN S9 = 2 ELSE S9 = 1
3100 X = 26
3110 Y = 10
3120 GOSUB 4640
3130 Y = 3
3140 IF S3 = 1 THEN GOSUB 4290 ELSE GOSUB 4640
3150 Y = 17
3160 IF S9 = 1 THEN GOSUB 4590 ELSE GOSUB 4640
3170 RETURN
3180 S7 = 2
3190 IF S4 = 1 THEN S4 = 2 ELSE S4 = 1
3200 IF S5 = 1 THEN S5 = 2 ELSE S5 = 1
3210 IF S8 = 1 THEN S8 = 2 ELSE S8 = 1
3220 X = 6
3230 Y = 17
3240 GOSUB 4640
3250 Y = 10
3260 IF S4 = 1 THEN GOSUB 4340 ELSE GOSUB 4640
3270 X = 16
3280 IF S5 = 1 THEN GOSUB 4390 ELSE GOSUB 4640
3290 Y = 17
3300 IF S8 = 1 THEN GOSUB 4540 ELSE GOSUB 4640
3310 RETURN
3320 S8 = 2
3330 IF S7 = 1 THEN S7 = 2 ELSE S7 = 1
3340 IF S9 = 1 THEN S9 = 2 ELSE S9 = 1
3350 X = 16
3360 Y = 17
3370 GOSUB 4640
3380 X = 6
3390 IF S7 = 1 THEN GOSUB 4490 ELSE GOSUB 4640
3400 X = 26
3410 IF S9 = 1 THEN GOSUB 4590 ELSE GOSUB 4640
3420 RETURN
3430 S9 = 2
3440 IF S5 = 1 THEN S5 = 2 ELSE S5 = 1
3450 IF S6 = 1 THEN S6 = 2 ELSE S6 = 1
3460 IF S8 = 1 THEN S8 = 2 ELSE S8 = 1
3470 X = 26
3480 Y = 17
3490 GOSUB 4640
3500 Y = 10
3510 IF S6 = 1 THEN GOSUB 4440 ELSE GOSUB 4640
3520 X = 16
3530 IF S5 = 1 THEN GOSUB 4390 ELSE GOSUB 4640
3540 Y = 17
3550 IF S8 = 1 THEN GOSUB 4540 ELSE GOSUB 4640
3560 RETURN
3570 IF S1 + S2 + S3 + S4 + S6 + S7 + S8 + S9 = 8 AND S5 = 2 THEN Z = 1
3580 IF S1 + S2 + S3 + S4 + S5 + S6 + S7 + S8 + S9 = 18 THEN Z = 2
3590 RETURN
3600 K$ = INKEY$
3610 IF K$ = "" THEN GOTO 3600
3620 PRINT FNCL$
3630 PRINT
3640 PRINT
3650 PRINT
3660 PRINT
3670 PRINT
3680 PRINT
3690 PRINT
3700 PRINT " ##############################"
3710 PRINT " # #"
3720 PRINT " # #"
3730 PRINT " # #"
3740 PRINT " # #"
3750 PRINT " # #"
3760 PRINT " # #"
3770 PRINT " # #"
3780 PRINT " # #"
3790 PRINT " ##############################"
3800 IF Z = 1 THEN GOSUB 3910
3810 IF Z = 2 THEN GOSUB 3980
3820 K$ = INKEY$
3830 IF K$ = "" THEN GOTO 3820
3840 GOSUB 4050
3850 K$ = INKEY$
3860 IF K$ = CHR$(89) THEN GOTO 1320
3870 IF K$ = CHR$(121) THEN GOTO 1320
3880 IF K$ = CHR$(78) THEN PRINT FNCL$: END
3890 IF K$ = CHR$(110) THEN PRINT FNCL$: END
3900 GOTO 3850
3910 X = 7
3920 Y = 10
3930 PRINT FNL$(X,Y+0);" ## ## ## _##/ _####_ "
3940 PRINT FNL$(X,Y+1);" ## ## ## ## ## ## "
3950 PRINT FNL$(X,Y+2);" ## ## ## ## ## ## "
3960 PRINT FNL$(X,Y+3);" '######' _##/ ## ## "
3970 RETURN
3980 X = 7
3990 Y = 10
4000 PRINT FNL$(X,Y+0);"## _####_ _####_ _####"
4010 PRINT FNL$(X,Y+1);"## ## ## ##___ ##___"
4020 PRINT FNL$(X,Y+2);"## ## ## '''## ##'''"
4030 PRINT FNL$(X,Y+3);"###### '####' '####' '####"
4040 RETURN
4050 X = 7
4060 Y = 9
4070 PRINT FNL$(X,Y+0);"___ _ ___ _ _ _____ ___"
4080 PRINT FNL$(X,Y+1);"# # # #_ '#_#' # _#"
4090 PRINT FNL$(X,Y+2);"# #_# #__ #' '# # _ "
4100 PRINT FNL$(X,Y+3);"_ _ ___ ___ _ ___ _ ___"
4110 PRINT FNL$(X,Y+4);"#__# #_ #__ # # # # # #"
4120 PRINT FNL$(X,Y+5);" _/ #__ __# # # #_# #_#"
4130 RETURN
4140 PRINT FNL$(X,Y+0);"_#####_"
4150 PRINT FNL$(X,Y+1);"## _##"
4160 PRINT FNL$(X,Y+2);"##_' ##"
4170 PRINT FNL$(X,Y+3);"'#####'"
4180 RETURN
4190 PRINT FNL$(X,Y+0);" _## "
4200 PRINT FNL$(X,Y+1);"_#'## "
4210 PRINT FNL$(X,Y+2);"' ## "
4220 PRINT FNL$(X,Y+3);" ######"
4230 RETURN
4240 PRINT FNL$(X,Y+0);"_#####_"
4250 PRINT FNL$(X,Y+1);" __##'"
4260 PRINT FNL$(X,Y+2);"_##'' "
4270 PRINT FNL$(X,Y+3);"#######"
4280 RETURN
4290 PRINT FNL$(X,Y+0);"######_"
4300 PRINT FNL$(X,Y+1);" ___##"
4310 PRINT FNL$(X,Y+2);" '''##"
4320 PRINT FNL$(X,Y+3);"######'"
4330 RETURN
4340 PRINT FNL$(X,Y+0);"_# ## "
4350 PRINT FNL$(X,Y+1);"##__##_"
4360 PRINT FNL$(X,Y+2);"''''##'"
4370 PRINT FNL$(X,Y+3);" ## "
4380 RETURN
4390 PRINT FNL$(X,Y+0);"#######"
4400 PRINT FNL$(X,Y+1);"##____ "
4410 PRINT FNL$(X,Y+2);" ''''##"
4420 PRINT FNL$(X,Y+3);"######'"
4430 RETURN
4440 PRINT FNL$(X,Y+0);"_#####_"
4450 PRINT FNL$(X,Y+1);"##____ "
4460 PRINT FNL$(X,Y+2);"##'''##"
4470 PRINT FNL$(X,Y+3);"'#####'"
4480 RETURN
4490 PRINT FNL$(X,Y+0);"######_"
4500 PRINT FNL$(X,Y+1);" _##'"
4510 PRINT FNL$(X,Y+2);" ##' "
4520 PRINT FNL$(X,Y+3);" ## "
4530 RETURN
4540 PRINT FNL$(X,Y+0);"_#####_"
4550 PRINT FNL$(X,Y+1);"'#___#'"
4560 PRINT FNL$(X,Y+2);"##'''##"
4570 PRINT FNL$(X,Y+3);"'#####'"
4580 RETURN
4590 PRINT FNL$(X,Y+0);"_#####_"
4600 PRINT FNL$(X,Y+1);"##___##"
4610 PRINT FNL$(X,Y+2);" '''###"
4620 PRINT FNL$(X,Y+3);" ####' "
4630 RETURN
4640 PRINT FNL$(X,Y+0);" "
4650 PRINT FNL$(X,Y+1);" "
4660 PRINT FNL$(X,Y+2);" "
4670 PRINT FNL$(X,Y+3);" "
4680 RETURN