home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 17
/
64er_Magazin_Sonderheft_17_19xx_Markt__Technik_de_Side_A.d64
/
quadrix
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
3KB
|
140 lines
100 rem quadrix, ein denkspiel von
105 rem
110 rem walter trump
115 rem reichelsdorfer schulgasse 18
120 rem 8500 nuernberg 60
125 :
150 rem initialisieren
155 :
160 poke 53280,0:poke 53281,0
165 dim f(5,5),c$(5,5),q$(25),a$(5),b$(5)
170 z=rnd(-ti):def fnr(x)=int(rnd(1)*2)*2+x
175 u$=" quadrix "
180 r$="[157][145][152][176][192][192][192][174][157][157][157][157][157][221][157][221][157][221][157][173][192][192][192][189][145][157][221][157][145][221][157][145][221]"
185 l$="[157][145][160][160][160][160][160][157][157][157][157][157] [157] [157] [157] [157][145] [157][145] [157][145] "
190 fa$="[158][156]":c$(0,0)=""
195 :
200 for y=1 to 5:c$(0,y)=c$(0,y-1)+""
205 for x=1 to 5:c$(x,y)=c$(x-1,y)+""
210 z=5*y-5+x:f(x,y)=z
215 q$(z)=mid$(fa$,y,1)+" [157][157][157] "+chr$(z+64)+" [157][157][157] "
220 next x,y
225 :
230 a$(0)="schade":b$(0)="anfaenger"
235 a$(1)="nicht schlecht":b$(1)="amateur"
240 a$(2)="prima":b$(2)="meister"
245 a$(3)="ausgezeichnet":b$(3)="profi"
250 a$(5)="unglaublich":b$(5)="genie"
255 :
260 gosub 660
265 :
300 rem tastaturabfrage
305 :
310 print c$(v,w) r$
315 print u$ mid$(ti$,1,2)"h "mid$(ti$,3,2)"m "mid$(ti$,5,2)"s"
320 get g$:if g$="" then 315
325 if g$="x" then d=-1:gosub 410
330 if g$="z" then d=+1:gosub 410
335 if g$="" then print c$(v,w) l$:w=(wand2)+2
340 if g$="" then print c$(v,w) l$:v=(vand2)+2
345 if g$="r" then gosub 910:gosub 610
350 if g$="m" then gosub 460
355 if g$="a" then gosub 510
360 if g$="s" then gosub 710
365 if g$="l" then gosub 760
370 if g$="e" then gosub 910:end
375 goto 310
380 :
400 rem drehen
405 :
410 z=f(v-1,w-1):f(v-1,w-1)=f(v+d,w-d):f(v+d,w-d)=f(v+1,w+1)
415 f(v+1,w+1)=f(v-d,w+d):f(v-d,w+d)=z
420 z=f(v,w-1):f(v,w-1)=f(v+d,w):f(v+d,w)=f(v,w+1)
425 f(v,w+1)=f(v-d,w):f(v-d,w)=z
430 for y=w-1 to w+1:for x=v-1 to v+1
435 print c$(x,y) q$(f(x,y)):next x,y
440 dr=dr+1:return
445 :
450 rem mischen
455 :
460 mi=1:for n=1 to 20
465 print c$(v,w) l$
470 v=fnr(2):w=fnr(2):d=fnr(-1)
475 print c$(v,w) r$:gosub 410:next
480 ti$="000000":dr=0:return
485 :
500 rem anleitung
505 :
510 print"[147]quadrix - anleitung
515 [153]"defdie 25 kleinen farbigen quadrate sollen
520 print"nach dem mischen wieder an ihre ur-
525 [153]"spruengliche position gebracht werden.
530 print"hierzu kann jeweils eine gruppe von
535 [153]"3x3 quadraten um ihr eingerahmtes
540 print"mittelquadrat gedreht werden.
545 [153]"m...mischen und uhr zurueckstellen
550 print"r...resultat anzeigen
555 [153]"s...speichern des spielstandes auf disk
560 print"l...laden des letzten spieles von disk
565 [153]"defaenderung des drehpunktes:(ohne shift)
570 print"linke cursortaste...hoch-tief
575 [153]"rechte cursortaste...links-rechts
580 print"[150]drehung ausfuehren:(jeweils 90 grad)
585 [153]"z...gegen den uhrzeigersinn
590 print"x...im uhrzeigersinn
595 :
600 [143] auf taste warten
605 :
610 [153]"sysbitte druecken sie eine taste !";
615 [161] g$:[139] g$[178]"" [167] 615
620 :
650 [143] zeichnen
655 :
660 [153]"load"[163]10)"lista=anleitung e=ende
665 for y=1 to 5:for x=1 to 5
670 print c$(x,y) q$(f(x,y))
675 next x,y:v=2:w=2:return
680 :
700 rem speichern
705 :
710 open 1,8,1,"@:-quadrix-daten"
715 print#1,"q";
720 for y=1 to 5:for x=1 to 5
725 print#1,f(x,y):next x,y
730 print#1,ti$:print#1,dr:print#1,mi
735 close 1
740 goto 810
745 :
750 rem laden
755 :
760 open 1,8,0,"-quadrix-daten"
765 get#1,g$:if g$<>"q" then 785
770 for y=1 to 5:for x=1 to 5
775 input#1,f(x,y):next x,y
780 input#1,ti$:input#1,dr:input#1,mi
785 close 1
790 goto 810
795 :
800 rem fehler-kanal
805 :
810 open 2,8,15:input#2,z,z$:close 2
815 if z=0 then 660
820 print"[147]"z$:goto 610
825 :
900 rem resultat
905 :
910 print"[147] quadrix - resultat:
915 [139] mi[178]0 [167] [153]" erst mischen!":[137] 975
920 q[178]0:r[178]0:[129] y[178]1 [164] 5:z[178]0:[129] x[178]1 [164] 5
925 [139] f(x,y)[178]5[172]y[170]x[171]5 [167] q[178]q[170]1:z[178]z[170]1
930 [130] x:r[178]r[170][181](z[173]5):[130] y
935 [153]"def "a$(r)"!"
940 [153]" sie sind ein quadrix-"b$(r)"."
945 [153]" sie haben"r"reihe"[199]([171]78[172](r[179][177]1))" wiederhergestellt.
950 print" insgesamt sind"q"quadrate richtig.
955 [153]" fuer diese leistung benoetigten sie
960 print""dr"drehungen und eine zeit von
965 [153]" "[202](ti$,1,2)" stunden "[202](ti$,3,2);
970 [153]" minuten "[202](ti$,5,2)" sekunden."
975 [142]