home *** CD-ROM | disk | FTP | other *** search
- 0 gosub2000:rem titelbild
- 1 rem was braucht man alles:
- 2 dim zz(50):rem gedaechtnis der maus
- 3 rs=160:rem reverses space
- 4 lr=20: rem anfangspos. der maus
- 5 fr=1: rem richtung der maus (1=l/2=r)
- 6 zr=lr: rem hilfsvariable
- 7 z=1: rem zeilenzaehler
- 8 l$=" [146]"
- 9 bs=1024:rem anfangsadresse des bildschirmspeichers
- 10 :
- 15 :
- 20 rem----------------------------------
- 30 :
- 100 rem hauptprogramm
- 110 gosub310: rem erstmal bildschirm aufbauen
- 120 gosub550: rem maus dumm machen
- 140 gosub600: rem maus lernt
- 150 poke214,22:poke211,1:sys58732:rem cursor setzen
- 160 print"[206][146]euer [214]ersuch oder [199][146]elernter [215]eg? ";
- 170 getx$:if x$="" then170
- 180 if x$="n" or x$="[206]" thenrun1
- 190 if x$<>"g" then if x$<>"[199]" then170
- 195 gosub950: rem text loeschen
- 210 gosub1000: rem maus zeigt was sie gelernt hat
- 220 goto150
- 222 :
- 224 rem---------------------------------
- 300 rem bildschirm aufbauen
- 302 rem---------------------------------
- 304 :
- 310 print"[147]";: rem bildschirm loeschen
- 320 :
- 330 rem waagerechte balken schreiben
- 332 rem---------------------
- 340 :
- 350 for i=1 to 11
- 360 printl$
- 370 next
- 380 :
- 390 rem zwischen die reversen balken ein oder zwei bruecken setzen
- 392 rem---------------------
- 400 :
- 410 y=bs+40: rem anfangsadresse der zweiten bildschirmzeile
- 420 xx=rnd(-rnd(33)):rem wirklich zufaellig
- 430 i=int(rnd(1)*2+1)
- 440 for j=1 to i
- 450 x=int(rnd(1)*39)+1:rem spalten-position festlegen
- 460 pokey+x,rs: rem reverses space setzen
- 470 next
- 480 :
- 490 rem und jetzt die naechste zeile
- 492 rem---------------------
- 500 :
- 510 y=y+80
- 520 if y<=1784 then420:rem unterste zeile erreicht? nein, dann weiter
- 530 return: rem zurueck zum hauptprogramm
- 532 :
- 534 rem---------------------------------
- 550 rem maus dumm machen
- 552 rem---------------------------------
- 554 :
- 560 for i=1 to 50:zz(i)=0:next
- 570 return
- 572 :
- 574 rem---------------------------------
- 600 rem maus lernt
- 602 rem---------------------------------
- 604 :
- 605 poke214,22:poke211,1:sys58732:rem cursor setzen
- 606 print"[218]um [211]tarten bitte eine [212]aste druecken!! ";
- 607 poke198,0
- 608 getx$:ifx$=""then608:rem maus anschieben
- 609 poke214,22:poke211,1:sys58732:rem cursor setzen
- 610 print" ";
- 615 x=1024: rem bildschirm-basisadresse
- 620 xf=55296: rem farbram-basisadresse
- 630 lr=20: rem anfangsposition der maus
- 640 fr=1: rem richtungsflagge
- 650 zr=lr: rem hilfsvariable
- 660 z=1: rem zeilenzaehler
- 670 pokexf+zr,1: rem platz fuer die maus wird saubergefegt
- 690 zr=lr
- 700 pokexf+lr,2: rem der rote teppich wird ausgebreitet
- 720 for w=1 to 50:next:rem nicht so schnell
- 730 if peek(x+lr+40)=rs then780:rem eine zeile tiefer gehen? ja, dann nach 780
- 735 if x=1824 and lr=20 then zz(z)=fr:return:rem die maus ist am ende
- 740 if fr=1 then gosub850:goto770:rem richtungsflagge steht nach rechts
- 750 gosub900
- 770 goto670
- 780 zz(z)=fr: rem maus lernt dazu
- 790 pokexf+zr,1:rem maus loeschen
- 800 x=x+40: rem naechste zeile
- 810 xf=xf+40:z=z+1
- 820 goto690
- 850 rem maus geht nach rechts
- 860 lr=lr+1
- 870 if lr>39 then lr=39:fr=0: rem ist sie schon rechts angekommen?
- 880 return
- 900 rem maus geht nach links
- 910 lr=lr-1
- 920 if lr< 0 then lr=0:fr=1:rem ist sie schon links angekommen?
- 930 return
- 932 :
- 934 rem---------------------------------
- 935 rem text loeschen
- 937 rem---------------------------------
- 939 :
- 950 poke214,22:poke211,1:sys58732:rem cursor setzen
- 960 print" ";
- 962 poke1824+20,rs:poke56096+20,5
- 970 return
- 972 :
- 974 rem---------------------------------
- 1000 rem maus zeigt was sie gelernt hat
- 1002 rem---------------------------------
- 1004 :
- 1010 x=1024:xf=55296
- 1020 lr=20: rem maus auf mittel-position
- 1030 fr=1:zr=lr:z=1
- 1040 pokexf+zr,6: rem platz fuer die maus wird saubergefegt
- 1050 rem und vorbereitet
- 1060 zr=lr
- 1070 pokexf+lr,2: rem der rote teppich wird ausgebreitet
- 1100 if peek(x+lr+40)=rs then1150:rem eine zeile tiefer gehen? ja,dann nach 1150
- 1105 if x=1824 and lr=20 thenreturn:rem maus hat ihr ziel erreicht
- 1110 ifzz(z)=1 then gosub850:goto1140:rem maus hat sich gemerkt, nach rechts
- 1120 gosub900
- 1140 goto1040
- 1150 pokexf+zr,6:rem maus loeschen
- 1160 x=x+40: rem naechste zeile
- 1170 xf=xf+40:z=z+1
- 1180 goto1060
- 1900 :
- 1910 rem ---------------------------
- 1920 rem titelbild
- 1930 rem ---------------------------
- 1940 :
- 2000 ifpeek(50307)<>120then2010
- 2005 poke50257,16
- 2010 print"[147]";chr$(14);chr$(8)
- 2020 poke53280,0:poke53281,0
- 2030 print" [211] [201] [205] [193]"
- 2040 print" [163][163][163][163][163][163][163]"
- 2050 print" von [203].- [198]. [208]robst"
- 2060 print"[211] [201] [205] [193], die selbstlernende ";chr$(34);"intelli-";
- 2070 print"gente";chr$(34);" [205]aus ist ein nettes kleines [208]ro-";
- 2080 print"gramm, das [211]ie zum [196]enken anregen soll."
- 2090 print""
- 2100 print"[211]tarten [211]ie die [205]aus mit irgendeiner";
- 2110 print"[212]aste. [206]achdem die [205]aus einmal durch";
- 2120 print"das [204]abyrinth gelaufen ist, haben [211]ie";
- 2130 print"die [205]oeglichkeit mit der [212]aste '[206]' ein";
- 2140 print"neues [204]abyrinth aufzubauen, oder mit '[199]'";
- 2150 print"den gelernten [215]eg zu wiederholen."
- 2160 print"":print"[201]m [194]eiheft finden [211]ie naeheres ueber die";
- 2170 print"[204]ogik, die dem [208]rogramm das [215]issen gibt."
- 2180 print:print
- 2190 print"[194]itte [212]aste druecken!! ";
- 2200 poke198,0
- 2210 getx$:ifx$=""then2210
- 3010 return
-