home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Highscore 2
/
Highscore_2_19xx_-.d64
/
puzzleword
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
6KB
|
181 lines
10 rem puzzleword==============c64
20 rem (p) commodore disc
30 rem ===========================
40 rem (c) peter bergen v3.5
50 rem (v) a.mittelmeyer v2.0
60 rem
70 rem basic v2.0
80 rem c64
90 rem ===========================
91 ifpeek(49154)=174then100
92 sys57812"sysmc",8,0:poke780,0
93 poke781,254:poke782,191:sys65493
100 at=49152:ef=49337:gosub 1590
110 data"autobahn","scheitel","tablette","haarnetz","freibier"
120 data"tagebuch","wildbret","joystick","computer","putzfrau"
130 data"trennung","dreizehn","foxtrott","narzisse","gasthaus"
140 data"farbfoto","schatten","obstwein","badetuch","hochzeit"
150 data"paranuss","werkzeug","abendrot","liebelei","recorder"
160 data"kuhstall","senftube","maschine","postbote","stehpult"
170 data"holzkopf","clubraum","witzbold","himbeere","flugzeug"
180 a=rnd(-ti):dims%(5):dimw$(3):dimx%(3,8):dimy%(8):hs=1000
190 v=15:h=19:k=1643:ru=1:fora=1to4:s%(a)=0:next
200 poke53281,0:printchr$(147);
210 gosub1250:gosub1090:gosub1280:gosub770:sp=1:gosub890
220 poke56322,224:rem steuerung
230 jo=peek(56320):ifjo=119thengosub340:gosub290
240 ifjo=123thengosub360:gosub290
250 ifjo=126thengosub380:gosub290
260 ifjo=125thengosub400:gosub290
270 ifjo=111thengosub1530:gosub430:gosub1540
280 goto230
290 s%(sp)=s%(sp)+1:gosub320:ifs%(sp)>999thengoto1420
300 return
310 rem punktanzeige
320 sysat,6,sp*2+13:printye$right$(" "+str$(s%(sp)),3);:return
330 rem kursorverschiebung
340 ifh=27thens%(sp)=s%(sp)-1:return
350 gosub1070:h=h+1:gosub1060:k=k+1:gosub630:gosub1070:h=h+1:k=k+1:gosub1060:return
360 ifh=11thens%(sp)=s%(sp)-1:return
370 gosub1070:h=h-1:gosub1060:k=k-1:gosub630:gosub1070:h=h-1:k=k-1:gosub1060:return
380 ifv=7thens%(sp)=s%(sp)-1:return
390 gosub1070:v=v-1:gosub1060:k=k-40:gosub700:gosub1070:v=v-1:k=k-40:gosub1060:return
400 ifv=23thens%(sp)=s%(sp)-1:return
410 gosub1070:v=v+1:gosub1060:k=k+40:gosub700:gosub1070:v=v+1:k=k+40:gosub1060:return
420 rem auswertung
430 b=1354
440 fora=1to8:b=b+2:y%(a)=peek(b)+64:next:gosub560
450 ifw>0thengosub550:gosub520:return
460 b=b+64:ifb<1930thengoto440
470 b=1276
480 fora=1to8:b=b+80:y%(a)=peek(b)+64:next:gosub560
490 ifw>0thengosub550:gosub520:return
500 b=b-638:ifb<1294thengoto480
510 return
520 gosub880:gosub870
530 sp=sp+1:ifsp>sbthensp=1:ru=ru+1:ifru>5thengoto1420
540 gosub890:gosub880:return
550 gosub1010:gosub920:gosub990:return
560 w=0:ford=1to3:wz=0:fora=1to8
570 ify%(a)=x%(d,a)thenwz=wz+1
580 next:ifwz>7thenw=d
590 next:return
600 rem neuer buchstabe
610 gosub1050:gosub840:gosub1040:return
620 rem rand vertikal
630 ifv=7thenb=k+40:d=peek(k+40):gosub610:return
640 ifv=23thenb=k-40:d=peek(k-40):gosub610:return
650 rem buchstabentausch vertikal
660 w1=peek(k-40):w2=peek(k+40)
670 b=k-40:d=w1:gosub1050:b=k+40:d=w2:gosub1050:b=k-40:gosub1040:b=k+40:d=w1:gosub1040
680 return
690 rem rand horizontal
700 ifh=11thenb=k+1:d=peek(k+1):gosub610:return
710 ifh=27thenb=k-1:d=peek(k-1):gosub610:return
720 rem buchstabentausch horizontal
730 w1=peek(k-1):w2=peek(k+1)
740 b=k-1:d=w1:gosub1050:b=k+1:d=w2:gosub1050:b=k-1:gosub1040:b=k+1:d=w1:gosub1040
750 return
760 rem spielfeld
770 gosub830:poke646,6:b=1354
780 fora=1to8:b=b+2:gosub840:gosub1050:gosub1040:next:b=b+64
790 ifb<1930thengoto780
800 fora=10to22:sysat,1,a:printye$rn$left$(bl$,9);:sysat,29,a:printleft$(bl$,10)rf$;:next
810 gosub860:gosub880:sysat,30,15:printrn$"auswahl:";
820 forw=1to3:gosub920:gosub990:next:gosub1060:return
830 poke646,2:fora=7to23:sysat,11,a:print"*****************";:next:return
840 letd=int(rnd(1)*26)+1:return
850 rem anzeigen
860 gosub900:forsp=1to4:gosub320:next
870 fora=1to4:sysat,2,a*2+13:printye$rn$;:print;a;c1$".:":next:return
880 sysat,30,12:printye$+rn$+"runde:";:sysat,36,12:printye$rf$;
881 printright$(str$(ru),2):return
890 sysat,2,sp*2+13:printye$;:print;sp;c1$".":return
900 sysat,2,12:printye$;:print;rn$"hs:":sysat,6,12:printye$;
901 printright$(" "+str$(hs),3):return
910 rem wortwahl
920 restore:z=int(rnd(1)*35)+1:fora=1toz:readr$:next:goto980
930 fora=1to8:v$=mid$(w$(w),a,1):x%(w,a)=asc(v$):next:return
940 rem wort-ueberpruefung
950 wx=0:fora=1to3:ifa=wthengoto970
960 ifw$(a)=w$(w)thenwx=1
970 next:ifwx=1then920
971 goto930
980 ifr$=w$(w)then920
981 w$(w)=r$:goto950
990 forl=1to6:gosub1020:next:return
1000 rem wort-darstellung
1010 forl=6to1step-1:gosub1020:next:return
1020 poke646,15:sysat,30,w*2+15:printrn$;:print;w$(w);rf$:forp=1to50:next:return
1030 rem buchstaben-darstellung
1040 forl=14to110step16:pokeb+54272,15:pokeb,d:next:return
1050 forl=126to14step-16:pokeb+54272,12:pokeb,d:next:return
1060 poke646,7:sysat,h,v:print"*";:return
1070 poke646,2:sysat,h,v:print"*";:return
1080 rem ueberschrift
1090 sysat,0,1:printrf$" "z1$zr$rn$" "rf$" "rn$" "rf$" "rn$" ";
1100 printrf$z1$z1$" "rn$" "rf$z1$z1$" "rn$" "rf$" "rn$b3$rf$" "z1$z1$rn$" "rf$" ";
1110 printrn$b2$rf$" "rn$" "rf$zt$z1$zr$rn$" "rf$" "z1$zr$rn$" "rf$" "z1$zr$
1120 sysat,0,2:printrf$" "rn$" "rf$" "rn$" ";
1130 printrf$" "rn$" "rf$" "rn$b2$rf$zt$rn$zt$b2$rf$zt$;
1140 printrn$zt$" "rf$" "rn$b3$rf$" "rn$b3$rf$" "rn$b2$rf$" ";
1150 printrn$" "rf$" "rn$" "rf$" "rn$" "rf$" "rn$" "rf$" "rn$" "rf$" "rn$" "rf$" "
1160 sysat,0,3:printrf$" "z1$rn$zt$" "rf$" "rn$" ";
1170 printrf$+" "+rn$+" "+zb$+rf$+zb$+rn$+b2$+zb$+rf$+zb$+rn$+" ";
1180 print" "rf$" "rn$b3$rf$" "z1$rn$b2$rf$" "z0$rn$z0$rf$" "rn$" "rf$" ";
1190 printrn$" "rf$" "rn$" "rf$" "zq$rn$z0$" "rf$" "rn$" "rf$" "
1200 sysat,0,4:printrf$" "rn$b3$rf$zq$rn$;
1210 printz1$rf$zb$rn$" "rf$" "rn$z1$z1$" "rf$" ";
1220 printrn$z1$z1$" "rf$" "rn$z1$z1$" "rf$" "rn$z1$z1$" "zr$rf$zb$zq$rn$zt$" "rf$zq$;
1230 printrn$z1$rf$zb$rn$" "rf$" "rn$" "rf$" "rn$" "rf$" "rn$z1$rf$
1240 return
1250 poke646,6:fora=0to2:sysat,0,a:printrn$bl$;:next
1260 return
1270 rem anleitung
1280 sysat,1,8:printwh$"versuchen sie durch verschieben des"
1290 print"gelben sternchens (joystick port 2)"
1300 print"mit so wenig zuegen wie moeglich eines"
1310 print"der 3 auswahlwoerter zu bilden."
1320 print"steht das sternchen zwischen 2 buchsta-"
1330 print"ben, werden diese vertauscht; steht es"
1340 print"am spielfeldrand, entsteht neben dem"
1350 print"sternchen ein neuer buchstabe."
1360 print"wurde ein wort gebildet, erfolgt durch"
1370 print">fire< ein austausch in der wortauswahl,"
1380 print"sowie ggf. der spielerwechsel."
1390 print"das spiel endet nach 5 runden, oder wenn"
1400 print"mehr als 999 zuege benoetigt wurden."
1410 gosub1510:poke198,0:printc4$"wieviel spieler";
1412 inputsb:printchr$(147);:gosub1250:goto1090
1420 gosub1520:fora=1tosb
1430 ifs%(a)<hsthenhs=s%(a)
1440 next:gosub900
1450 b=17:gosub830:fora=8to22:sysat,b,a:printlg$"ende";:ifb=17thenb=18:goto1460
1451 b=17
1460 next:poke646,2:sysat,17,16:print"****"c4$c4$left$(ql$,4)"****";
1470 sysat,12,17:printlg$">fire<=neustart";
1480 ifpeek(65320)=111thengoto190
1490 goto1480
1500 rem sounds
1510 return
1520 return
1530 return
1540 return
1590 rem nachspann ===============
1600 rem * farbcodes/steuercodes *
1610 wh$=chr$(005):c4$=chr$(017)
1620 rn$=chr$(018):rf$=chr$(146)
1630 lg$=chr$(153):c1$=chr$(157)
1640 ye$=chr$(158)
1650 rem *** zeichensatz/graphik *
1660 z0$=chr$(161):z1$=chr$(162)
1670 zb$=chr$(172):zq$=chr$(187)
1680 zr$=chr$(188):zt$=chr$(190)
1690 rem ********* zeichenfolgen *
1700 b2$=" "+" ":b3$=b2$+" "
1710 for q=1 to 40
1720 ql$=ql$+c1$:bl$=bl$+" "
1730 next q
1740 return
1750 rem =========================