home *** CD-ROM | disk | FTP | other *** search
/ Input 64 / Input_64_86-08_1986_Verlag_Heinz_Weise_de.d64 / sima (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  5KB  |  163 lines

  1. 0 gosub2000:rem titelbild
  2. 1 rem was braucht man alles:
  3. 2 dim zz(50):rem  gedaechtnis der maus
  4. 3 rs=160:rem     reverses space
  5. 4 lr=20: rem     anfangspos. der maus
  6. 5 fr=1:  rem     richtung der maus (1=l/2=r)
  7. 6 zr=lr: rem     hilfsvariable
  8. 7 z=1:   rem     zeilenzaehler
  9. 8 l$="                                        [146]"
  10. 9 bs=1024:rem    anfangsadresse des bildschirmspeichers
  11. 10 :
  12. 15 :
  13. 20 rem----------------------------------
  14. 30 :
  15. 100 rem  hauptprogramm
  16. 110 gosub310:   rem erstmal bildschirm aufbauen
  17. 120 gosub550:   rem maus dumm machen
  18. 140 gosub600:   rem maus lernt
  19. 150 poke214,22:poke211,1:sys58732:rem cursor setzen
  20. 160 print"[206][146]euer [214]ersuch  oder  [199][146]elernter [215]eg? ";
  21. 170 getx$:if x$="" then170
  22. 180 if x$="n" or x$="[206]" thenrun1
  23. 190 if x$<>"g" then if x$<>"[199]" then170
  24. 195 gosub950:   rem text loeschen
  25. 210 gosub1000:  rem maus zeigt was sie gelernt hat
  26. 220 goto150
  27. 222 :
  28. 224 rem---------------------------------
  29. 300 rem bildschirm aufbauen
  30. 302 rem---------------------------------
  31. 304 :
  32. 310 print"[147]";:  rem bildschirm loeschen
  33. 320 :
  34. 330 rem waagerechte balken schreiben
  35. 332 rem---------------------
  36. 340 :
  37. 350 for i=1 to 11
  38. 360 printl$
  39. 370 next
  40. 380 :
  41. 390 rem zwischen die reversen balken ein oder zwei bruecken setzen
  42. 392 rem---------------------
  43. 400 :
  44. 410 y=bs+40:     rem anfangsadresse der zweiten bildschirmzeile
  45. 420 xx=rnd(-rnd(33)):rem wirklich zufaellig
  46. 430 i=int(rnd(1)*2+1)
  47. 440 for j=1 to i
  48. 450 x=int(rnd(1)*39)+1:rem spalten-position festlegen
  49. 460 pokey+x,rs:  rem reverses space setzen
  50. 470 next
  51. 480 :
  52. 490 rem und jetzt die naechste zeile
  53. 492 rem---------------------
  54. 500 :
  55. 510 y=y+80
  56. 520 if y<=1784 then420:rem unterste zeile erreicht? nein, dann weiter
  57. 530 return:      rem zurueck zum hauptprogramm
  58. 532 :
  59. 534 rem---------------------------------
  60. 550 rem maus dumm machen
  61. 552 rem---------------------------------
  62. 554 :
  63. 560 for i=1 to 50:zz(i)=0:next
  64. 570 return
  65. 572 :
  66. 574 rem---------------------------------
  67. 600 rem maus lernt
  68. 602 rem---------------------------------
  69. 604 :
  70. 605 poke214,22:poke211,1:sys58732:rem cursor setzen
  71. 606 print"[218]um [211]tarten bitte eine [212]aste druecken!! ";
  72. 607 poke198,0
  73. 608 getx$:ifx$=""then608:rem   maus anschieben
  74. 609 poke214,22:poke211,1:sys58732:rem cursor setzen
  75. 610 print"                                        ";
  76. 615 x=1024:       rem bildschirm-basisadresse
  77. 620 xf=55296:     rem farbram-basisadresse
  78. 630 lr=20:        rem anfangsposition der maus
  79. 640 fr=1:         rem richtungsflagge
  80. 650 zr=lr:        rem hilfsvariable
  81. 660 z=1:          rem zeilenzaehler
  82. 670 pokexf+zr,1:  rem platz fuer die maus wird saubergefegt
  83. 690 zr=lr
  84. 700 pokexf+lr,2:  rem der rote teppich wird ausgebreitet
  85. 720 for w=1 to 50:next:rem nicht so schnell
  86. 730 if peek(x+lr+40)=rs then780:rem eine zeile tiefer gehen? ja, dann nach 780
  87. 735 if x=1824 and lr=20 then zz(z)=fr:return:rem die maus ist am ende
  88. 740 if fr=1 then gosub850:goto770:rem richtungsflagge steht nach rechts
  89. 750 gosub900
  90. 770 goto670
  91. 780 zz(z)=fr:      rem maus lernt dazu
  92. 790 pokexf+zr,1:rem maus loeschen
  93. 800 x=x+40:        rem naechste zeile
  94. 810 xf=xf+40:z=z+1
  95. 820 goto690
  96. 850 rem maus geht nach rechts
  97. 860 lr=lr+1
  98. 870 if lr>39 then lr=39:fr=0: rem ist sie schon rechts angekommen?
  99. 880 return
  100. 900 rem maus geht nach links
  101. 910 lr=lr-1
  102. 920 if lr< 0 then lr=0:fr=1:rem ist sie schon links angekommen?
  103. 930 return
  104. 932 :
  105. 934 rem---------------------------------
  106. 935 rem text loeschen
  107. 937 rem---------------------------------
  108. 939 :
  109. 950 poke214,22:poke211,1:sys58732:rem cursor setzen
  110. 960 print"                                       ";
  111. 962 poke1824+20,rs:poke56096+20,5
  112. 970 return
  113. 972 :
  114. 974 rem---------------------------------
  115. 1000 rem maus zeigt was sie gelernt hat
  116. 1002 rem---------------------------------
  117. 1004 :
  118. 1010 x=1024:xf=55296
  119. 1020 lr=20:        rem maus auf mittel-position
  120. 1030 fr=1:zr=lr:z=1
  121. 1040 pokexf+zr,6:  rem platz fuer die maus wird saubergefegt
  122. 1050 rem und vorbereitet
  123. 1060 zr=lr
  124. 1070 pokexf+lr,2:  rem der rote teppich wird ausgebreitet
  125. 1100 if peek(x+lr+40)=rs then1150:rem eine zeile tiefer gehen? ja,dann nach 1150
  126. 1105 if x=1824 and lr=20 thenreturn:rem maus hat ihr ziel erreicht
  127. 1110 ifzz(z)=1 then gosub850:goto1140:rem maus hat sich gemerkt, nach rechts
  128. 1120 gosub900
  129. 1140 goto1040
  130. 1150 pokexf+zr,6:rem maus loeschen
  131. 1160 x=x+40:       rem naechste zeile
  132. 1170 xf=xf+40:z=z+1
  133. 1180 goto1060
  134. 1900 :
  135. 1910 rem ---------------------------
  136. 1920 rem titelbild
  137. 1930 rem ---------------------------
  138. 1940 :
  139. 2000 ifpeek(50307)<>120then2010
  140. 2005 poke50257,16
  141. 2010 print"[147]";chr$(14);chr$(8)
  142. 2020 poke53280,0:poke53281,0
  143. 2030 print"              [211] [201] [205] [193]"
  144. 2040 print"              [163][163][163][163][163][163][163]"
  145. 2050 print"                       von [203].- [198]. [208]robst"
  146. 2060 print"[211] [201] [205] [193],  die  selbstlernende  ";chr$(34);"intelli-";
  147. 2070 print"gente";chr$(34);" [205]aus  ist ein nettes kleines [208]ro-";
  148. 2080 print"gramm, das [211]ie zum [196]enken anregen soll."
  149. 2090 print""
  150. 2100 print"[211]tarten  [211]ie  die  [205]aus  mit irgendeiner";
  151. 2110 print"[212]aste. [206]achdem  die  [205]aus  einmal  durch";
  152. 2120 print"das  [204]abyrinth  gelaufen  ist, haben [211]ie";
  153. 2130 print"die  [205]oeglichkeit  mit der [212]aste '[206]' ein";
  154. 2140 print"neues [204]abyrinth aufzubauen, oder mit '[199]'";
  155. 2150 print"den gelernten [215]eg zu wiederholen."
  156. 2160 print"":print"[201]m [194]eiheft finden [211]ie naeheres ueber die";
  157. 2170 print"[204]ogik, die dem [208]rogramm das [215]issen gibt."
  158. 2180 print:print
  159. 2190 print"[194]itte [212]aste druecken!! ";
  160. 2200 poke198,0
  161. 2210 getx$:ifx$=""then2210
  162. 3010 return
  163.