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

  1. 1000 REM *************************
  2. 1010 REM *                       *
  3. 1020 REM *   S O L I T A I R E   *
  4. 1030 REM *                       *
  5. 1040 REM *  VON DIRK EUMANN      *
  6. 1050 REM *      ITZEHOER STR. 7C *
  7. 1060 REM *      2300 KIEL - 1    *
  8. 1070 REM *                       *
  9. 1080 REM *************************
  10. 1090 :
  11. 1100 REM --- FARBEN -------------------
  12. 1110 :
  13. 1120 HF =11 :REM HINTERGRUND/RAHMEN
  14. 1130 F0$="":REM CURSOR
  15. 1140 F1$="[144]":REM LEERE FELDER
  16. 1150 F2$="[152]":REM GITTER
  17. 1160 F3$="[155]":REM BESETZTE FELDER
  18. 1170 :
  19. 1180 REM --- SPIELFELDELEMENTE --------
  20. 1190 :
  21. 1200 X$ =F3$+"[209]"+F2$+"[192]"
  22. 1210 X1$=X$+X$+X$+X$+F3$+"[209]"
  23. 1220 X2$=F2$+"[221] [221] [221][160][221][160][221]"
  24. 1230 X3$=X$+X$+X$+X$+X$+X$+X$+X$+X1$
  25. 1240 X4$=F2$+"[221] [221] [221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221] [221]"
  26. 1250 X5$=LEFT$(X3$,24)+F1$+"[215]"+MID$(X3$,27)
  27. 1260 :
  28. 1270 REM --- WEITERE VARIABLE ---------
  29. 1280 :
  30. 1290 BS=1024 :REM VIDEO-RAM
  31. 1300 FS=55296:REM FARB-RAM
  32. 1310 JS=56320:REM JOYSTICK PORT#2
  33. 1320 R =104  :REM RESTLICHE STEINE
  34. 1330 WA=600  :REM DAUER WARTESCHLEIFE
  35. 1340 :
  36. 1350 POKE53280,HF:POKE53281,HF
  37. 1360 PRINTCHR$(9)CHR$(142)CHR$(8)CHR$(147);
  38. 1370 GOSUB2410:REM SPIELFELD
  39. 1380 :
  40. 1390 REM ------------------------------
  41. 1400 REM  STEUERUNG
  42. 1410 REM ------------------------------
  43. 1420 FORI=1TO100:NEXT
  44. 1430 POKE204,0:GETA$
  45. 1440 J=PEEK(JS):IF(JAND31)=31 AND A$=""THEN1430
  46. 1450 POKE205,2
  47. 1460 IFPEEK(207)THEN1460
  48. 1470 POKE204,1:CZ=PEEK(214):CS=PEEK(211)
  49. 1480 IFA$=" "THENF=1:POKE53281,15:GOTO1360
  50. 1490 IF(JAND16)=0THENGOSUB1830:GOTO1420
  51. 1500 IF(JAND1) =0THENGOSUB1580:GOTO1420
  52. 1510 IF(JAND2) =0THENGOSUB1640:GOTO1420
  53. 1520 IF(JAND4) =0THENGOSUB1760:GOTO1420
  54. 1530 IF(JAND8) =0THENGOSUB1700:GOTO1420
  55. 1540 GOTO1420
  56. 1550 :
  57. 1560 REM --- OBEN ---------------------
  58. 1570 :
  59. 1580 IF CZ<=0 THEN RETURN
  60. 1590 IF CZ<=8 THENIF CS<15 OR CS>23 THENRETURN
  61. 1600 PRINTF0$"[145][145]";:RETURN
  62. 1610 :
  63. 1620 REM --- UNTEN --------------------
  64. 1630 :
  65. 1640 IF CZ>=24 THEN RETURN
  66. 1650 IF CZ>=16 THENIF CS<15 OR CS>23 THENRETURN
  67. 1660 PRINTF0$"";:RETURN
  68. 1670 :
  69. 1680 REM --- RECHTS -------------------
  70. 1690 :
  71. 1700 IF CS>=31 THEN RETURN
  72. 1710 IF CS>=23 THENIF CZ<8 OR CZ>16 THENRETURN
  73. 1720 PRINTF0$"";:RETURN
  74. 1730 :
  75. 1740 REM --- LINKS --------------------
  76. 1750 :
  77. 1760 IF CS<=7 THEN RETURN
  78. 1770 IF CS<=15 THENIF CZ<8 OR CZ>16 THEN RETURN
  79. 1780 PRINTF0$"[157][157]";:RETURN
  80. 1790 :
  81. 1800 REM ------------------------------
  82. 1810 REM  SPRUNG
  83. 1820 REM ------------------------------
  84. 1830 Z=PEEK(BS+40*CZ+CS):IF Z<>81 THENRETURN
  85. 1840 IF(JAND1)=0THEN1920
  86. 1850 IF(JAND2)=0THEN2020
  87. 1860 IF(JAND4)=0THEN2220
  88. 1870 IF(JAND8)=0THEN2120
  89. 1880 RETURN
  90. 1890 :
  91. 1900 REM --- OBEN ---------------------
  92. 1910 :
  93. 1920 Z1=PEEK(BS+40*(CZ-2)+CS)
  94. 1930 Z2=PEEK(BS+40*(CZ-4)+CS):GOSUB2330
  95. 1940 IF F THEN F=0:GOTO2350
  96. 1950 FORI=0TO2:X=40*(CZ-2*I)+CS:POKEBS+X,86:POKEFS+X,ABS(I>1):NEXT
  97. 1960 FORI=1TOWA:NEXT
  98. 1970 PRINTF1$"[215]";:POKE214,CZ-2:POKE211,CS:SYS58640:PRINT"[215]";
  99. 1980 POKE214,CZ-4:POKE211,CS:SYS58640:PRINTF3$"[209][157]"F0$;:RETURN
  100. 1990 :
  101. 2000 REM --- UNTEN --------------------
  102. 2010 :
  103. 2020 Z1=PEEK(BS+40*(CZ+2)+CS)
  104. 2030 Z2=PEEK(BS+40*(CZ+4)+CS):GOSUB2330
  105. 2040 IF F THEN F=0:GOTO2350
  106. 2050 FORI=0TO2:X=40*(CZ+2*I)+CS:POKEBS+X,86:POKEFS+X,ABS(I>1):NEXT
  107. 2060 FORI=1TOWA:NEXT
  108. 2070 PRINTF1$"[215]";:POKE214,CZ+2:POKE211,CS:SYS58640:PRINT"[215]";
  109. 2080 POKE214,CZ+4:POKE211,CS:SYS58640:PRINTF3$"[209][157]"F0$;:RETURN
  110. 2090 :
  111. 2100 REM --- RECHTS -------------------
  112. 2110 :
  113. 2120 Z1=PEEK(BS+40*CZ+(CS+2))
  114. 2130 Z2=PEEK(BS+40*CZ+(CS+4)):GOSUB2330
  115. 2140 IF F THEN F=0:GOTO2350
  116. 2150 FORI=0TO2:X=40*CZ+(CS+2*I):POKEBS+X,86:POKEFS+X,ABS(I>1):NEXT
  117. 2160 FORI=1TOWA:NEXT
  118. 2170 PRINTF1$"[215]";:POKE214,CZ:POKE211,CS+2:SYS58640:PRINT"[215]";
  119. 2180 POKE214,CZ:POKE211,CS+4:SYS58640:PRINTF3$"[209][157]"F0$;:RETURN
  120. 2190 :
  121. 2200 REM --- LINKS --------------------
  122. 2210 :
  123. 2220 Z1=PEEK(BS+40*CZ+(CS-2))
  124. 2230 Z2=PEEK(BS+40*CZ+(CS-4)):GOSUB2330
  125. 2240 IF F THEN F=0:GOTO2350
  126. 2250 FORI=0TO2:X=40*CZ+(CS-2*I):POKEBS+X,86:POKEFS+X,ABS(I>1):NEXT
  127. 2260 FORI=1TOWA:NEXT
  128. 2270 PRINTF1$"[215]";:POKE214,CZ:POKE211,CS-2:SYS58640:PRINT"[215]";
  129. 2280 POKE214,CZ:POKE211,CS-4:SYS58640:PRINTF3$"[209][157]"F0$;:RETURN
  130. 2290 :
  131. 2300 REM ------------------------------
  132. 2310 REM  EINGABEFEHLER/REST
  133. 2320 REM ------------------------------
  134. 2330 IF Z1<>81 OR Z2<>87 THENF=1:RETURN
  135. 2340 R=R-1:PRINT""F2$;TAB(32)R"[157] "
  136. 2350 POKE214,CZ:POKE211,CS:SYS58640
  137. 2360 RETURN
  138. 2370 :
  139. 2380 REM -----------------------------
  140. 2390 REM  SPIELFELD AUSGEBEN
  141. 2400 REM -----------------------------
  142. 2410 PRINTTAB(15)X1$F2$"   REST:";R
  143. 2420 PRINTTAB(15)X2$
  144. 2430 PRINTTAB(15)X1$:PRINTTAB(15)X2$
  145. 2440 PRINTTAB(15)X1$:PRINTTAB(15)X2$
  146. 2450 PRINTTAB(15)X1$:PRINTTAB(15)X2$
  147. 2460 PRINTTAB( 7)X3$:PRINTTAB( 7)X4$
  148. 2470 PRINTTAB( 7)X3$:PRINTTAB( 7)X4$
  149. 2480 PRINTTAB( 7)X5$:PRINTTAB( 7)X4$
  150. 2490 PRINTTAB( 7)X3$:PRINTTAB( 7)X4$
  151. 2500 PRINTTAB( 7)X3$:PRINTTAB(15)X2$
  152. 2510 PRINTTAB(15)X1$:PRINTTAB(15)X2$
  153. 2520 PRINTTAB(15)X1$:PRINTTAB(15)X2$
  154. 2530 PRINTTAB(15)X1$:PRINTTAB(15)X2$
  155. 2540 PRINTTAB(15)X1$;F0$;
  156. 2550 IFFTHENF=0:GOTO 2630
  157. 2560 F=1:PRINT"":FORI=1TO9:PRINT:NEXT
  158. 2570 PRINTTAB(9)F1$"[176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
  159. 2580 PRINTTAB(9)"[221]"F0$" *** SOLITAIRE *** "F1$"[221]"
  160. 2590 PRINTTAB(9)"[221]                   [221]"
  161. 2600 PRINTTAB(9)"[221]"F2$"(C)1986 DIRK EUMANN"F1$"[221]"
  162. 2610 PRINTTAB(9)"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]"
  163. 2620 FORI=1TO3000:NEXT:PRINT"";:POKE53281,15:GOTO2410
  164. 2630 POKE214,12:POKE211,19:SYS58640
  165. 2640 POKE53281,HF:RETURN
  166.