home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Floppy Magazine 1986 #1
/
Floppy_Magazine_86-1_1986_Megasystems_Oy_fi.d64
/
nappipeli
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
9KB
|
279 lines
1 rem *****************
2 rem * nappipeli *
3 rem * by j. viskari *
4 rem * (c) mcmlxxxvi *
5 rem *****************
6 rem""(NULL)
8 a$=" [146]"
9 f$="[194][160][194][160][194][160][194][160][194] ":g$="[171][195][219][195][219][195][219][195][179] "
10 poke53280,8:poke53281,8
11 print"[147][144] n a p p i p e l i"
12 h$="[176][195][178][195][178][195][178][195][174] ":i$="[173][195][177][195][177][195][177][195][189] "
13 print" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]"
14 print"[149]":forx=1to7:printa$:next
15 print"[213][195][195][195] [146] [195][195][195][201]":print"[194] [146] [194]"
16 print"[194] [213] [146][201] [194]":print"[194] [202][195][203] [194]"
17 print"[194] [194]"
18 print"[202][195][195][195][195][195][195][195][195][195][203]"
19 print""
20 printtab(16)"[144]taattua":printtab(16)"kotimaista"
21 printtab(16)"[194][194][194][194][194][194][194]"
22 printtab(15)"[195][219][219][219][219][219][219][219][201]"
24 printtab(15)"[195][219][219][219][219][219][219][219][203] -tuotantoa"
26 printtab(15)"[195][219][219][219][219][219][219][219][195]"
28 printtab(16)"[194][202][203][202][203][194][194] (1986)":goto40
30 fory=1to150:next:return
35 forxy=0to300:next:return
40 u=53248:forx=0to4:readl(x),h(x):next
45 forx=832to894:reado:pokex,o:next
50 forx=2040to2043:pokex,13:next:poke2044,250
55 pokeu+28,31:pokeu+38,0
57 cr=2:forx=0to4:cr=9-cr:pokeu+39+x,cr:next
60 forx=1to9step2:pokeu+x,75:next:pokeu+29,31:pokeu+23,31
65 forx=0to4:pokeu+2*x,l(x):next:pokeu+21,1
70 forx=896to958:reado:pokex,o:next:pokeu+21,3
75 forx=960to1022:reado:pokex,o:next:pokeu+21,7
80 forx=16000to16062:pokex,0:next:forx=16004to16022step3:reado:pokex,o:next
81 pokeu+21,15:pokeu+27,16:gosub35
85 forx=3to0step-1:cr=9-cr:pokeu+43,cr
88 fora=l(x)to44step-1:pokeu+2*x,a:fori=1to4:next:next
90 gosub30:poke2040+x,14:gosub30:pokeu+21,31:pokeu+9,75:poke2040+x,15:gosub30
93 fora=75toh(x):pokeu+2*x+1,a:pokeu+9,a
94 fori=1to10:next:next:gosub35:next
95 pokeu+21,15
98 print"tarvitaanko ohjeita? ";
99 gosub998
100 f$="[194][160][194][160][194][160][194][160][194] ":g$="[171][195][219][195][219][195][219][195][179] "
102 h$="[176][195][178][195][178][195][178][195][174] ":i$="[173][195][177][195][177][195][177][195][189] "
104 ifm$="e"then150
106 ifm$<>"k"then99
110 pokeu+21,0:print"[147]pelissa on tavoitteena saada enemman"
112 print"riveja kuin vastustaja.originaali pelilauta koostuu 16"
114 print"pystysuorasta tapista, joihin pelaajat":print"pudottelevat vuorotel";
116 print"len nappuloitaan, enintaan 4 paallekkain."
118 print"rivit voivat muodostua vaaka- tai pysty-suoraan tai eri viistosuun";
120 print"tiin.":print"tassa versiossa pelilaudan kerrokset on jaettu 4 ";
122 print"tasoon seuraavasti:"
124 printtab(9)"1. sarake":printtab(9)"[194]":printtab(8)h$
126 print"1. rivi[195]"f$
128 forcd=1to3:printtab(8)g$:printtab(8)f$:next:printtab(8)i$;
130 print" <paina jotain>":gosub998
132 print"[147]taktikointisaanto:pelaaja saa pudottaa nappulansa samaan ";
134 print" tappiin kuin vastustaja enintaan kaksi kertaa perakkain."
135 clr:gosub6000:goto153
150 printm$:clr:gosub6000:poke53269,0
153 forx=1to206:readxx:next
154 dimd(4,4,4),d1(4,4,4),ar(4,4,4)
155 forx=1to4:fory=1to4:forz=1to4
157 readlu:d1(x,y,z)=lu+1124:d(x,y,z)=lu+55396:next:next:next
160 f$="[194][160][194][160][194][160][194][160][194] ":g$="[171][195][219][195][219][195][219][195][179] "
162 h$="[176][195][178][195][178][195][178][195][174] ":i$="[173][195][177][195][177][195][177][195][189] "
170 print"[147]1. kerros 2. kerros"
173 gosub990:print" 3. kerros 4. kerros":gosub990
176 printtab(17)"ihminen tietokone"
178 print" t i l a n n e : 0 - 0"
179 dimk(4,4):forja=1to4:forje=1to4:k(ja,je)=1:next:next
180 ss$="siirtosi":ri$=" rivi: [146][157][157]":sa$="sarake: [146][157][157]":sn$="siirran"
181 tb$=""
182 ap$=tb$+"ala pursota! ":pl$=tb$+"pelottaako? ":tk$=tb$+"taktikointia!"
185 y$=" "
190 va=16:e1=55:dimvr(16):forx=1to16:readvr(x):next
200 pe=10:print"";tab(25)ss$:printtab(25)ri$;
205 gosub998:w=val(m$):ifw<1orw>4then205
210 printw:printtab(25)sa$;
215 gosub998:z=val(m$):ifz<1orz>4then215
220 printz:e2=10*w+z:ifn2=e2andva>1then200
225 r=w:s=z:ifk(r,s)=5thenprint"";tab(25)ap$:gosub35:goto200
230 q=k(r,s):k(r,s)=k(r,s)+1:p(q,w,z)=10
235 ift1=2andn2<55thengosub980
240 ife2=e1thent1=t1+1:goto247
245 t1=0:goto250
247 ifva>1thenprint"";tab(25)tk$
250 ift2=2andva>1andq<4thenn1=e2:gosub975:print"";tab(25)tk$:goto270
265 n1=55
270 g=e2:ifq<4thengosub930:goto280
275 gosub960
280 gosub970:gosub3000
282 print""tb$;tab(25)"...mietin... ":forby=1to8:printtab(25)y$:next
285 pe=1
300 forha=1tova
310 q=int(vr(ha)/100):w=int((vr(ha)-q*100)/10):z=vr(ha)-q*100-w*10
315 kr=q:ri=w:sa=z:ar(q,w,z)=0:j=w+z:c=w*z:af=0
320 ifw*10+z=n1then440
323 ifq=3thenaf=1:ifp(1,w,z)+p(2,w,z)=20thenaf=2
326 ifq=1and((j=3orj=4orj=6orj=7)andw<>z)thenaf=3
329 ifq=4thenaf=4.5:ifc=1orc=16or(c=4andw<>2)thenaf=8
333 ifq=1and(c=1orc=16or(c=4andw<>2))thenaf=8
335 ifq=2andp(1,w,z)=1thenaf=.5
337 ar(q,w,z)=af
340 gosub700:gosub940:gosub710:gosub940:gosub720:gosub940:gosub730:gosub940
344 gosub740:gosub940:gosub750:gosub940:gosub760:gosub940:gosub770:gosub940
348 gosub780:gosub940:gosub790:gosub940:gosub800:gosub940:gosub810:gosub940
352 gosub820:gosub940
440 next
445 il=-99:forha=1tova
450 qq=int(vr(ha)/100):ww=int((vr(ha)-qq*100)/10):zz=vr(ha)-qq*100-ww*10
455 ifar(qq,ww,zz)>ilthenil=ar(qq,ww,zz):q=qq:w=ww:z=zz
460 next
461 print"":forkg=0to11:printtab(25)y$:next
462 printtab(25)sn$:printtab(25)ri$;w:printtab(25)sa$;z
465 e1=10*w+z:p(q,w,z)=1:k(w,z)=k(w,z)+1
470 ift2=2andn1<55thengosub980
475 ife1=e2thent2=t2+1:goto483
480 t2=0:goto485
483 ifva>1thenprint"";tab(25)tk$
485 ift1=2andva>1andq<4thenn2=e1:gosub975:print"";tab(25)tk$:goto495
490 n2=55
495 g=e1:ifq<4thengosub930:goto505
500 gosub960
505 gosub970:gosub3000
510 ifva>1then200
520 q=int(vr(1)/100):w=int((vr(1)-q*100)/10):z=vr(1)-q*100-w*10
525 ifva=1andp(4,w,z)=0then200
556 print"":forkg=0to11:printtab(25)y$:next
557 printtab(25)sn$:printtab(25)ri$;w:printtab(25)sa$;z
560 print"";tab(25)"< p a i n a[157][157][157][157][157][157][157][157][157][157][157]j o t a i n >":gosub998
565 print"[147]peli on paattynyt!"
570 print"viralliset lopputulokset:":print" ihminen:"sc(10)" pistetta"
572 print"tietokone:"sc(1)" pistetta"
575 ifsc(1)>sc(10)thenprint"jalleen kerran on ihmisen noyrryttava":goto590
578 ifsc(10)>sc(1)thenprint"ollos ylpea, ihminen, tana hapean paivana!"
580 ifsc(10)=sc(1)thenprint"olet uljaasti kamppaillut tasapelin."
585 end
590 print"ylivertaisen koneen edessa.":end
600 forx=1to4:fory=1to4:poked(y,w,z),1:next:gosub35
602 fory=1to4:poked(y,w,z),0:next:gosub35:next:return
610 forx=1to4:fory=1to4:poked(q,w,y),1:next:gosub35
612 fory=1to4:poked(q,w,y),0:next:gosub35:next:return
620 forx=1to4:fory=1to4:poked(q,y,z),1:next:gosub35
622 fory=1to4:poked(q,y,z),0:next:gosub35:next:return
630 forx=1to4:fory=1to4:poked(y,y,z),1:next:gosub35
632 fory=1to4:poked(y,y,z),0:next:gosub35:next:return
640 forx=1to4:fory=1to4:poked(y,w,y),1:next:gosub35
642 fory=1to4:poked(y,w,y),0:next:gosub35:next:return
650 forx=1to4:fory=1to4:poked(q,y,y),1:next:gosub35
652 fory=1to4:poked(q,y,y),0:next:gosub35:next:return
660 forx=1to4:fory=1to4:poked(y,y,y),1:next:gosub35
662 fory=1to4:poked(y,y,y),0:next:gosub35:next:return
670 forx=1to4:fory=1to4:poked(q,y,5-y),1:next:gosub35
672 fory=1to4:poked(q,y,5-y),0:next:gosub35:next:return
680 forx=1to4:fory=1to4:poked(y,5-y,z),1:next:gosub35
682 fory=1to4:poked(y,5-y,z),0:next:gosub35:next:return
690 forx=1to4:fory=1to4:poked(y,w,5-y),1:next:gosub35
692 fory=1to4:poked(y,w,5-y),0:next:gosub35:next:return
700 su=0
702 ifq<4thenforx=q+1to4:su=su+p(x,w,z):next
704 ifq>1thenfory=1toq-1:su=su+p(y,w,z):next
706 return
710 su=0
712 ifz<4thenforx=z+1to4:su=su+p(q,w,x):next
714 ifz>1thenfory=1toz-1:su=su+p(q,w,y):next
716 return
720 su=0
722 ifw<4thenforx=w+1to4:su=su+p(q,x,z):next
724 ifw>1thenfory=1tow-1:su=su+p(q,y,z):next
726 return
730 su=0:ifq<>wthenreturn
732 ifq<4thenforx=q+1to4:su=su+p(x,x,z):next
734 ifq>1thenfory=1toq-1:su=su+p(y,y,z):next
736 return
740 su=0:ifq<>zthenreturn
742 ifq<4thenforx=q+1to4:su=su+p(x,w,x):next
744 ifq>1thenfory=1toq-1:su=su+p(y,w,y):next
746 return
750 su=0:ifw<>zthenreturn
752 ifw<4thenforx=w+1to4:su=su+p(q,x,x):next
754 ifw>1thenfory=1tow-1:su=su+p(q,y,y):next
756 return
760 su=0:ifq<>zorq<>wthenreturn
762 ifq<4thenforx=q+1to4:su=su+p(x,x,x):next
764 ifq>1thenfory=1toq-1:su=su+p(y,y,y):next
766 return
770 su=0:ifw+z<>5thenreturn
772 ifw<4thenforx=w+1to4:su=su+p(q,x,5-x):next
774 ifw>1thenfory=1tow-1:su=su+p(q,y,5-y):next
776 return
780 su=0:ifq+w<>5thenreturn
782 ifq<4thenforx=q+1to4:su=su+p(x,5-x,z):next
784 ifq>1thenfory=1toq-1:su=su+p(y,5-y,z):next
786 return
790 su=0:ifq+z<>5thenreturn
792 ifq<4thenforx=q+1to4:su=su+p(x,w,5-x):next
794 ifq>1thenfory=1toq-1:su=su+p(y,w,5-y):next
796 return
800 su=0:ifq<>worq+z<>5thenreturn
802 ifw<4thenforx=w+1to4:su=su+p(x,x,5-x):next
804 ifq>1thenfory=1toq-1:su=su+p(y,y,5-y):next
806 return
810 su=0:ifw<>zorq+w<>5thenreturn
812 ifw<4thenforx=w+1to4:su=su+p(5-x,x,x):next
814 ifw>1thenfory=1tow-1:su=su+p(5-y,y,y):next
816 return
820 su=0:ifq<>zorq+w<>5thenreturn
822 ifq<4thenforx=q+1to4:su=su+p(x,5-x,x):next
824 ifq>1thenfory=1toq-1:su=su+p(y,5-y,y):next
826 return
900 forx=1to4:fory=1to4:poked(y,y,5-y),1:next:gosub35
902 fory=1to4:poked(y,y,5-y),0:next:gosub35:next:return
910 forx=1to4:fory=1to4:poked(5-y,y,y),1:next:gosub35
912 fory=1to4:poked(5-y,y,y),0:next:gosub35:next:return
920 forx=1to4:fory=1to4:poked(y,5-y,y),1:next:gosub35
922 fory=1to4:poked(y,5-y,y),0:next:gosub35:next:return
930 forx=1tova
932 ifvr(x)=100*q+gthenvr(x)=vr(x)+100
936 next:return
940 ifsu=1thenar(kr,ri,sa)=ar(kr,ri,sa)+5.5
942 ifsu=2thenar(kr,ri,sa)=ar(kr,ri,sa)+9
944 ifsu=20thenar(kr,ri,sa)=ar(kr,ri,sa)+.5
946 ifsu=30orsu=3thenar(kr,ri,sa)=ar(kr,ri,sa)+18
947 ifq=1andsu=20thenar(kr,ri,sa)=ar(kr,ri,sa)+6
948 return
960 forx=1tova
962 ifvr(x)=400+gthenfory=xtova-1:vr(y)=vr(y+1):next:x=va
964 next:va=va-1:return
970 poked(q,w,z),0:poked1(q,w,z),me(pe):return
975 poked(q+1,w,z),1:poked1(q+1,w,z),160:b1=q+1:b2=w:b3=z:return
980 poked1(b1,b2,b3),32:return
990 print" "h$;h$:forcd=1to3:print" "f$;f$:print" "g$;g$:next:print" "f$;f$
992 print" "i$;i$:return
998 getm$:ifm$=""then998
999 return
3000 sc=0:gosub700:ifsu=3*pethengosub600:sc=sc+1
3010 gosub710:ifsu=3*pethengosub610:sc=sc+1
3020 gosub720:ifsu=3*pethengosub620:sc=sc+1
3030 gosub730:ifsu=3*pethengosub630:sc=sc+1
3040 gosub740:ifsu=3*pethengosub640:sc=sc+1
3050 gosub750:ifsu=3*pethengosub650:sc=sc+1
3060 gosub760:ifsu=3*pethengosub660:sc=sc+1
3070 gosub770:ifsu=3*pethengosub670:sc=sc+1
3080 gosub780:ifsu=3*pethengosub680:sc=sc+1
3090 gosub790:ifsu=3*pethengosub690:sc=sc+1
3100 gosub800:ifsu=3*pethengosub900:sc=sc+1
3110 gosub810:ifsu=3*pethengosub910:sc=sc+1
3120 gosub820:ifsu=3*pethengosub920:sc=sc+1
3125 ifsc>0andpe=1andva>1thenprint"";tab(25)pl$
3130 sc(pe)=sc(pe)+sc:print""tb$"";tab(30-pe)sc(pe):return
6000 print"kumpi merkki, [209] vai [214] ? ";
6010 gosub998
6020 ifm$<>"[209]"andm$<>"[214]"then6010
6030 printm$:me(10)=peek(1288):me(1)=167-me(10):gosub35
6040 print" (kone ei alennu aloittamaan)":return
8000 data255,142,195,158,135,174,75,190,44,
8010 data,255,,3,170,192,14,170,176,14,170,176,58,170,172,58,170,172
8020 data58,170,172,58,190,172,234,195,171,234,195,171,234,195,171
8025 data234,195,171,234,195,171,58,190,172,58,170,172,58,170,172,58,170,172
8030 data14,170,176,14,170,176,3,170,192,,255,
8035 data,255,,3,170,192,14,170,176,14,170,176,58,170,172,58,170,172
8040 data58,190,172,234,235,171,234,235,171,234,255,171,234,195,171
8045 data234,190,171,250,170,175,250,170,175,238,170,187,62,170,188
8050 data59,170,236,58,255,172,14,170,176,3,170,192,,255,,,,,,195,
8055 data15,130,240,58,130,172,58,130,172,234,195,171,234,195,171,250,190,175
8060 data250,170,175,239,170,251,234,255,171,234,170,171,234,170,171
8065 data234,170,171,234,170,171,58,170,172,58,170,172,15,170,240
8070 data,255,,,,,,,,60,40,40,60,40,40,40
8200 data23,25,27,29,103,105,107,109,183,185,187,189,263,265,267,269
8210 data34,36,38,40,114,116,118,120,194,196,198,200,274,276,278,280
8220 data463,465,467,469,543,545,547,549,623,625,627,629,703,705,707,709
8230 data474,476,478,480,554,556,558,560,634,636,638,640,714,716,718,720
8300 data111,112,113,114,121,122,123,124,131,132,133,134,141,142,143,144