forked from robhagemans/basicode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
B10_Magisch_vierkant.bc3
99 lines (98 loc) · 2.89 KB
/
B10_Magisch_vierkant.bc3
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
1000 A=200:GOTO20:REM MAGISCH VIERKANT
1010 DIMA(27):NG=1:TL=0
1020 REM
1030 REM -GETALLEN 1 T/M 25 SCHUDDEN-
1040 FORN=1 TO25:A(N+2)=N:NEXTN
1050 FORN=1 TO25:GOSUB260
1060 Q=INT(N+2+RV*(26-N)):A(N)=A(Q)
1070 FORM=Q TON+2 STEP-1:A(M)=A(M-1):NEXTM:NEXTN
1080 REM -UITLEG-
1090 GOSUB4020
1100 REM -KADER TEKENEN-
1110 HO=0:VE=3:GOSUB110
1120 PRINT" +---------------------+"
1130 FORN=1 TO15
1140 PRINT" ! !":NEXTN
1150 PRINT" +---------------------+"
1160 REM
1170 REM -GETALLEN PRINTEN-
1180 GOSUB2020
1190 REM
1200 REM -HET HOOFDPROGRAMMA-
1210 HO=7:VE=6:NR=1
1220 GOSUB110
1230 GOSUB210
1240 IF(IN=28)AND(HO>7) THENHO=HO-4:NR=NR-1
1250 IF(IN=29)AND(HO<23) THENHO=HO+4:NR=NR+1
1260 IF(IN=30)AND(VE<18) THENVE=VE+3:NR=NR+5
1270 IF(IN=31)AND(VE>7) THENVE=VE-3:NR=NR-5
1280 IFIN=13 THENPRINT"=":GOSUB3020
1290 IFIN=83 THEN950:REM S
1300 GOTO1220
1990 REM -DE SUBROUTINES-
2000 REM
2010 REM =GETALLEN PRINTEN=
2020 HH=HO:VV=VE
2030 T=0:FORVE=5 TO17 STEP3
2040 Q=0:FORHO=4 TO20 STEP4:GOSUB110
2050 T=T+1:SR=A(T):Q=Q+SR:GOSUB300
2060 A$=RIGHT$(" "+SR$,4):PRINTA$
2070 NEXTHO
2080 HO=26:GOSUB110
2090 SR=Q:GOSUB300:A$=RIGHT$(" "+SR$,4):PRINTA$
2100 NEXTVE
2110 HO=0:VE=21:GOSUB110
2120 SR=A(5)+A(9)+A(13)+A(17)+A(21)
2130 GOSUB300:A$=RIGHT$(" "+SR$,4):PRINTA$
2140 FORN=1 TO5:HO=N*4:GOSUB110
2150 SR=0:FORM=0 TO20 STEP5
2160 SR=SR+A(M+N):NEXTM:GOSUB300
2170 A$=RIGHT$(" "+SR$,4):PRINTA$
2180 NEXTN:HO=26:GOSUB110
2190 SR=A(1)+A(7)+A(13)+A(19)+A(25)
2200 GOSUB300:A$=RIGHT$(" "+SR$,4):PRINTA$
2210 HO=4:FORVE=6 TO18 STEP3:GOSUB110
2220 PRINT" "
2230 NEXTVE
2240 HO=HH:VE=VV
2250 RETURN
3000 REM
3010 REM =SELECTIE EN WISSELEN=
3020 SG=NG:NG=NR:TL=TL+1:IFTL=1 THENRETURN
3030 Q=A(SG):A(SG)=A(NG):A(NG)=Q
3040 GOSUB2020:TL=0
3050 RETURN
4000 REM
4010 REM =UITLEG=
4020 GOSUB100:PRINT:PRINT
4030 PRINT"MAGISCH VIERKANT":PRINT
4040 PRINT"Je krijgt een veld met 25 getallen"
4050 PRINT"Als je er na elkaar twee aanwijst"
4060 PRINT"met de pijltoetsen en RETURN dan"
4070 PRINT"verwisselt de computer die twee"
4080 PRINT"getallen.":PRINT
4090 PRINT"De bedoeling is dat je de getallen"
4100 PRINT"zo verplaatst, dat de totalen van"
4110 PRINT"alle rijen en kolommen en van de"
4120 PRINT"twee diagonalen 65 worden":PRINT
4130 PRINT"Het is niet makkelijk, maar het kan"
4140 PRINT"op meer dan een manier.":PRINT
4150 PRINT"Sukses! >";
4160 GOSUB210:GOSUB100
4170 RETURN
30000 REM ==========================
30010 REM EEN OPLOSSING IS
30020 REM 4 14 21 25 1
30030 REM 10 24 3 23 5
30040 REM 20 8 13 6 18
30050 REM 15 12 17 2 19
30060 REM 16 7 11 9 22
30070 REM ==========================
30080 REM GEMAAKT OP BBC COMPUTER
30090 REM JANUARI 1989
30100 REM door
32000 REM Ch.W.Brederode
32010 REM Von Bonninghausenlaan 33
32020 REM 2161 ES LISSE
32030 REM
32040 REM TROS-RADIO dd 890322