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