home *** CD-ROM | disk | FTP | other *** search
- 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]
-