home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh1x / sh17a.d64 / quadrix (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  3KB  |  140 lines

  1. 100 REM QUADRIX, EIN DENKSPIEL VON
  2. 105 REM
  3. 110 REM WALTER TRUMP
  4. 115 REM REICHELSDORFER SCHULGASSE 18
  5. 120 REM 8500 NUERNBERG 60
  6. 125 :
  7. 150 REM INITIALISIEREN
  8. 155 :
  9. 160 POKE 53280,0:POKE 53281,0
  10. 165 DIM F(5,5),C$(5,5),Q$(25),A$(5),B$(5)
  11. 170 Z=RND(-TI):DEF FNR(X)=INT(RND(1)*2)*2+X
  12. 175 U$="          QUADRIX "
  13. 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]"
  14. 185 L$="[157][145][160][160][160][160][160][157][157][157][157][157] [157] [157] [157]     [157][145] [157][145] [157][145] "
  15. 190 FA$="[158][156]":C$(0,0)=""
  16. 195 :
  17. 200 FOR Y=1 TO 5:C$(0,Y)=C$(0,Y-1)+""
  18. 205 FOR X=1 TO 5:C$(X,Y)=C$(X-1,Y)+""
  19. 210 Z=5*Y-5+X:F(X,Y)=Z
  20. 215 Q$(Z)=MID$(FA$,Y,1)+"   [157][157][157] "+CHR$(Z+64)+" [157][157][157]   "
  21. 220 NEXT X,Y
  22. 225 :
  23. 230 A$(0)="SCHADE":B$(0)="ANFAENGER"
  24. 235 A$(1)="NICHT SCHLECHT":B$(1)="AMATEUR"
  25. 240 A$(2)="PRIMA":B$(2)="MEISTER"
  26. 245 A$(3)="AUSGEZEICHNET":B$(3)="PROFI"
  27. 250 A$(5)="UNGLAUBLICH":B$(5)="GENIE"
  28. 255 :
  29. 260 GOSUB 660
  30. 265 :
  31. 300 REM TASTATURABFRAGE
  32. 305 :
  33. 310 PRINT C$(V,W) R$
  34. 315 PRINT U$ MID$(TI$,1,2)"H "MID$(TI$,3,2)"M "MID$(TI$,5,2)"S"
  35. 320 GET G$:IF G$="" THEN 315
  36. 325 IF G$="X" THEN D=-1:GOSUB 410
  37. 330 IF G$="Z" THEN D=+1:GOSUB 410
  38. 335 IF G$="" THEN PRINT C$(V,W) L$:W=(WAND2)+2
  39. 340 IF G$="" THEN PRINT C$(V,W) L$:V=(VAND2)+2
  40. 345 IF G$="R" THEN GOSUB 910:GOSUB 610
  41. 350 IF G$="M" THEN GOSUB 460
  42. 355 IF G$="A" THEN GOSUB 510
  43. 360 IF G$="S" THEN GOSUB 710
  44. 365 IF G$="L" THEN GOSUB 760
  45. 370 IF G$="E" THEN GOSUB 910:END
  46. 375 GOTO 310
  47. 380 :
  48. 400 REM DREHEN
  49. 405 :
  50. 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)
  51. 415 F(V+1,W+1)=F(V-D,W+D):F(V-D,W+D)=Z
  52. 420 Z=F(V,W-1):F(V,W-1)=F(V+D,W):F(V+D,W)=F(V,W+1)
  53. 425 F(V,W+1)=F(V-D,W):F(V-D,W)=Z
  54. 430 FOR Y=W-1 TO W+1:FOR X=V-1 TO V+1
  55. 435 PRINT C$(X,Y) Q$(F(X,Y)):NEXT X,Y
  56. 440 DR=DR+1:RETURN
  57. 445 :
  58. 450 REM MISCHEN
  59. 455 :
  60. 460 MI=1:FOR N=1 TO 20
  61. 465 PRINT C$(V,W) L$
  62. 470 V=FNR(2):W=FNR(2):D=FNR(-1)
  63. 475 PRINT C$(V,W) R$:GOSUB 410:NEXT
  64. 480 TI$="000000":DR=0:RETURN
  65. 485 :
  66. 500 REM ANLEITUNG
  67. 505 :
  68. 510 PRINT"[147]QUADRIX - ANLEITUNG
  69. 515 [153]"DEFDIE 25 KLEINEN FARBIGEN QUADRATE SOLLEN
  70. 520 PRINT"NACH DEM MISCHEN WIEDER AN IHRE UR-
  71. 525 [153]"SPRUENGLICHE POSITION GEBRACHT WERDEN.
  72. 530 PRINT"HIERZU KANN JEWEILS EINE GRUPPE VON
  73. 535 [153]"3X3 QUADRATEN UM IHR EINGERAHMTES
  74. 540 PRINT"MITTELQUADRAT GEDREHT WERDEN.
  75. 545 [153]"M...MISCHEN UND UHR ZURUECKSTELLEN
  76. 550 PRINT"R...RESULTAT ANZEIGEN
  77. 555 [153]"S...SPEICHERN DES SPIELSTANDES AUF DISK
  78. 560 PRINT"L...LADEN DES LETZTEN SPIELES VON DISK
  79. 565 [153]"DEFAENDERUNG DES DREHPUNKTES:(OHNE SHIFT)
  80. 570 PRINT"LINKE  CURSORTASTE...HOCH-TIEF
  81. 575 [153]"RECHTE CURSORTASTE...LINKS-RECHTS
  82. 580 PRINT"[150]DREHUNG AUSFUEHREN:(JEWEILS 90 GRAD)
  83. 585 [153]"Z...GEGEN DEN UHRZEIGERSINN
  84. 590 PRINT"X...IM UHRZEIGERSINN
  85. 595 :
  86. 600 [143] AUF TASTE WARTEN
  87. 605 :
  88. 610 [153]"SYSBITTE DRUECKEN SIE EINE TASTE !";
  89. 615 [161] G$:[139] G$[178]"" [167] 615
  90. 620 :
  91. 650 [143] ZEICHNEN
  92. 655 :
  93. 660 [153]"LOAD"[163]10)"LISTA=ANLEITUNG  E=ENDE
  94. 665 FOR Y=1 TO 5:FOR X=1 TO 5
  95. 670 PRINT C$(X,Y) Q$(F(X,Y))
  96. 675 NEXT X,Y:V=2:W=2:RETURN
  97. 680 :
  98. 700 REM SPEICHERN
  99. 705 :
  100. 710 OPEN 1,8,1,"@:-QUADRIX-DATEN"
  101. 715 PRINT#1,"Q";
  102. 720 FOR Y=1 TO 5:FOR X=1 TO 5
  103. 725 PRINT#1,F(X,Y):NEXT X,Y
  104. 730 PRINT#1,TI$:PRINT#1,DR:PRINT#1,MI
  105. 735 CLOSE 1
  106. 740 GOTO 810
  107. 745 :
  108. 750 REM LADEN
  109. 755 :
  110. 760 OPEN 1,8,0,"-QUADRIX-DATEN"
  111. 765 GET#1,G$:IF G$<>"Q" THEN 785
  112. 770 FOR Y=1 TO 5:FOR X=1 TO 5
  113. 775 INPUT#1,F(X,Y):NEXT X,Y
  114. 780 INPUT#1,TI$:INPUT#1,DR:INPUT#1,MI
  115. 785 CLOSE 1
  116. 790 GOTO 810
  117. 795 :
  118. 800 REM FEHLER-KANAL
  119. 805 :
  120. 810 OPEN 2,8,15:INPUT#2,Z,Z$:CLOSE 2
  121. 815 IF Z=0 THEN 660
  122. 820 PRINT"[147]"Z$:GOTO 610
  123. 825 :
  124. 900 REM RESULTAT
  125. 905 :
  126. 910 PRINT"[147] QUADRIX - RESULTAT:
  127. 915 [139] MI[178]0 [167] [153]" ERST MISCHEN!":[137] 975
  128. 920 Q[178]0:R[178]0:[129] Y[178]1 [164] 5:Z[178]0:[129] X[178]1 [164] 5
  129. 925 [139] F(X,Y)[178]5[172]Y[170]X[171]5 [167] Q[178]Q[170]1:Z[178]Z[170]1
  130. 930 [130] X:R[178]R[170][181](Z[173]5):[130] Y
  131. 935 [153]"DEF "A$(R)"!"
  132. 940 [153]" SIE SIND EIN QUADRIX-"B$(R)"."
  133. 945 [153]" SIE HABEN"R"REIHE"[199]([171]78[172](R[179][177]1))" WIEDERHERGESTELLT.
  134. 950 PRINT" INSGESAMT SIND"Q"QUADRATE RICHTIG.
  135. 955 [153]" FUER DIESE LEISTUNG BENOETIGTEN SIE
  136. 960 PRINT""DR"DREHUNGEN UND EINE ZEIT VON
  137. 965 [153]" "[202](TI$,1,2)" STUNDEN "[202](TI$,3,2);
  138. 970 [153]" MINUTEN "[202](TI$,5,2)" SEKUNDEN."
  139. 975 [142]
  140.