home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 56
/
056.d81
/
graph.bas
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
5KB
|
179 lines
10 gosub1530:gosub1340
20 dimp(1),o(1),d(1),v(1)
30 dimco(1):co(0)=1:co(1)=1
40 fori=0to7:readh(i),l(i):next
50 data 16,195,18,209,21,31,22,96,25,30,28,49,31,165,33,135:rem@ 01
60 v=54296:w=54276:aa=54277:hf=54273:lf=54272:ss=54278:ph=54275:pl=54274:rem@ 02
70 data66,78,67,77,86,87,81,177,050
80 dima(7):fori=0to3:reada(i):a(i+4)=a(i):next:readcr,oh,so,p(0),p(1)
90 x=rnd(-ti):s=1024
100 data-2,0,-2,2,0,2,2,2,2,0,2,-2,0,-2,-2,-2
110 dimb(7),c(7)
120 cm=55296-1024 :co=13 :c1=250
130 fori=0to7:readb(i),c(i):next
140 n=500:rem number of moves used in creating game
150 poke646,14:poke53281,14:print"[147]":poke53281,0
160 rem pick a starting position
170 u1=int(rnd(ti)*20)*2
180 v1=int(rnd(ti)*10)*2
190 pokes+u1+v1*40,so
200 pokes+u1+v1*40+cm,c1:rem@ m
206 rem@ i=m,i,v2,oh,so,co,c1,h
210 fori=1ton
220 m=int(rnd(ti)*8)
230 u2=u1+c(m):ifu2<0oru2>38then220
240 v2=v1+b(m):ifv2<0orv2>20then220
250 l1=s+u1+v1*40
260 l2=s+u2+v2*40
270 l3=s+u1+v1*40+c(m)/2+b(m)*20
280 pokel1,oh :pokel1+cm,c1
290 pokel2,so :pokel2+cm,c1
300 g=a(m)
310 h=peek(l3)
320 ifm=0orm=2orm=4orm=6then360
330 ifh=a(1)andg=a(3)theng=cr
340 ifh=crtheng=cr
350 ifh=a(3)andg=a(1)theng=cr
360 pokel3,g:pokel3+cm,co: u1=u2:v1=v2
370 pokev,15:pokeaa,88:pokeph,15:pokepl,15:pokess,89
380 pokehf,h(m):pokelf,l(m):pokew,65:
390 nexti:rem@ p
400 pokew,0
410 pokel2,oh :pokel2+cm,c1
420 rem place the players
430 fori=0to1
440 gosub520
450 ifpeek(l1)><ohthen440
460 pokel1,p(i):o(i)=u1:d(i)=v1
470 pokel1+54272,co(i)
480 nexti
490 pn=0
500 goto620
510 wait197,64:return
520 u1=int(rnd(ti)*20)*2
530 v1=int(rnd(ti)*11)*2
540 l1=s+u1+v1*40
550 return
560 pokes+55208,14
570 print"";:fori=1to23:print"";:next:return
580 print"player ";chr$(49+pn);" token your move? "
590 for i=1to 10:get k$:next
600 pokes+936,p(pn):pokes+55208,co(pn)
610 return
620 rem can the current player move?
630 l1=s+o(pn)+d(pn)*40:f1=0
640 forj=0to7
650 u2=d(pn)+b(j)
660 v2=o(pn)+c(j)
670 ifv2<0orv2>38then730
680 ifu2<0oru2>20then730
690 ifpeek(s+u2*40+v2)><ohthen730
700 l2=l1+b(j)*20+c(j)/2
710 ifpeek(l2)=a(j)thenf1=1:j=7:goto730
720 ifpeek(l2)=crthenf1=1:j=7:goto730
730 nextj
740 iff1=0then1210
750 gosub560
760 gosub580
770 geta$:ifa$=""then770
780 ifa$="q"then1190
790 ifa$="r"thena$="7"
800 ifa$="t"thena$="0"
810 ifa$="y"thena$="1"
820 ifa$="f"thena$="6"
830 ifa$="h"thena$="2"
840 ifa$="v"thena$="5"
850 ifa$="b"thena$="4"
860 ifa$="n"thena$="3"
870 ifa$<"0"ora$>"7"thengosub1150:goto750
880 m=val(a$):fori=1to10:geta$:nexti
890 u2=d(pn)+b(m):v2=o(pn)+c(m)
900 ifu2<0oru2>20thengosub1150:goto750
910 ifv2<0orv2>38thengosub1150:goto750
920 l2=s+u2*40+v2
930 ifpeek(l2)<>ohthengosub1150:goto750
940 l3=l1+b(m)*20+c(m)/2
950 c9=peek(l3):ifc9=crorc9=a(m)then970
960 gosub1150:goto750
970 rem make the move
980 pokel2,p(pn):pokel2+54272,co(pn)
990 pokel1,oh:f2=0:pokel1+54272,c1
1000 pokev,15:pokeaa,88:pokeph,15:pokepl,15:pokess,89
1010 pokehf,h(m):pokelf,l(m):pokew,65:for tm=1to100:next: pokew,0
1020 ifpeek(l3)=cranda(m)=a(1)thenpokel3,a(3):goto1050
1030 ifpeek(l3)=cranda(m)=a(3)thenpokel3,a(1):goto1050
1040 pokel3,32
1050 forj=0to7
1060 v3=o(pn)+c(j)/2:ifv3<0orv3>38then1100
1070 u3=d(pn)+b(j)/2:ifu3<0oru3>20then1100
1080 q=peek(s+v3+u3*40)
1090 ifq=a(j)orq=crthenf2=1:j=7
1100 nextj
1110 iff2=0thenpokel1,32
1120 o(pn)=v2:d(pn)=u2
1130 pn=1-pn
1140 goto630
1150 gosub560
1160 print"can't go there "
1170 gosub510
1180 return
1190 gosub560:print"player "chr$(pn+49)" gives up! "
1200 goto1230
1210 gosub560
1220 print"player ";chr$(pn+49);" cannot move "
1230 gosub510
1240 ww=1-pn:ll=pn
1250 gosub560
1260 v(ww)=v(ww)+1
1270 print"player ";chr$(ww+49)" has won! press ctrl...":wait653,4
1280 gosub510
1290 gosub560
1300 print"space to play again/q to quit" "
1310 [161]a$:[139]a$[179][177]" "[175]a$[179][177]"q"[167]1310
1320 [139]a$[178]" "[167][138]
1330 [137]1730
1340 [153]"load":[153][163]14);"opengraphbusters!"
1350 [153]:[153][163]13);"printby robert rossa"
1360 [153]
1370 [153]"sys each time you move, the path you"
1380 [153]" used disappears. you win when your"
1390 [153]" opponent can't move. use the keys"
1400 [153]" surrounding the 'g' key to move."
1410 [153]"open ex. t= north, b= south, v= southeast.sys"
1420 [153]
1430 [153][163]12)" r t y"
1440 [153][163]12)" (NULL)(NULL)(NULL) "
1450 [153][163]12)" ftan(NULL)tanh"
1460 [153][163]12)" (NULL)(NULL)(NULL) "
1470 [153][163]12)" v b n"
1480 [153]
1490 [153]
1500 [153]"press space to start"
1510 [161] a$:[139]a$[178]""[167]1510
1520 [142]
1530 [153]"load (NULL)(NULL)atnstr$(NULL)(NULL)atn(NULL) (NULL)(NULL)val(NULL)val(NULL)(NULL)(NULL)"
1540 a$[178]"sysget*rndwaitgetget*rndwaitgetget*rndwaitgetget*rndwaitgetgetwaitgetgetwaitget"
1550 b$[178]"sysgetwaitgetnewrndget *waitcosget*rndwaitgetgetlogcoswaitgetget*rndwaitget"
1560 c$[178]"sysgetlogcoswaitgetgetwaitgetrndwaitrndgetwaitgetgetwaitgetgetwaitget getwaitgetgetwaitget"
1570 d$[178]"sys ":x$[178][199](13):x[178] 10:[141]1620
1580 a$[178]"sysget*rndwaitgetgetwaitgetgetwaitgetget*newwaitcoslogrnd*waitcosget*newwaitcosget*rndwaitgetget*newwaitcos getwaitget "
1590 b$[178]"sysget*rndwaitrndgetwaitgetgetwaitgetlognewrndwaitget getwaitget get*waitcos get *waitcoslognewrndwaitget getwaitget "
1600 c$[178]"sysgetlogcoswaitgetgetlogcoswaitget*newcoswaitget getwaitget getlogwaitnewrndgetwaitgetrndwaitrnd*newcoswaitget "
1610 d$[178]"sys logcos ":x[178] 5:[141]1620 :[137]1640
1620 [151]53280,6:[151]53281,0:[153][166]x)a$x$[166]x)b$x$[166]x)c$x$[166]x)d$
1630 [142]
1640 [153]" peeky (NULL)obert (NULL)ossa sys"
1650 [153],"ortantantantantantantantantantantantantantantantantantantan^"
1660 [153],"(NULL) (NULL)pace (NULL)o lenontinuesys (NULL)"
1670 [153],"/tantantantantantantantantantantantantantantantantantantanexp"
1680 [153],"ortantantantantantantantantantantantantantantantantantantan^"
1690 [153],"(NULL) (NULL) for (NULL)(NULL)atnstr$(NULL)(NULL)atn(NULL) sys(NULL)"
1700 [153],"/tantantantantantantantantantantantantantantantantantantanexp"
1710 [161]a$:[139]a$[179][177]" "[175]a$[179][177]"q"[167]1710
1720 [139]a$[178]" "[167][151]53272,21:[142]
1730 [159]15,8,15,"r0:hello connect=hello connect":[132]15,er:[160]15
1740 [139] er[179][177]63 [167] [153]"load":[128]
1750 a$[178]"hello connect":q$[178][199](34)
1760 [153]"stoploadload"q$a$q$",8"
1770 [153]"r(NULL)":[151]631,13:[151]632,13:[151]198,2:[128]