home *** CD-ROM | disk | FTP | other *** search
- 0 rem loadstar is not public domain!!
- 9 rem
- 10 rem *** initialization ***
- 11 rem
- 99 rem
- 100 rem *** title screen ***
- 101 gosub 6000
- 120 c=55296:v=1024:y(1)=0:y(2)=20:y(3)=11:y(4)=10
- 125 x(1)=19:x(2)=19:x(3)=1:x(4)=39
- 150 c(1)=10:c(2)=14:c(3)=13:c(4)=15
- 499 rem
- 500 rem *** # of players ***
- 501 rem
- 502 poke648,192:print"[152][147]":poke648,4
- 503 print""
- 504 print"[153] "
- 505 print"[153] how many players? [144][206]"
- 506 print"[153] [144][205]"
- 507 print"[153] (2, 3, or 4) [144][206]"
- 508 print"[153] [144][205]"
- 509 print"[144][206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [144][206]"
- 520 get a$:if a$<"2" or a$>"4" then 520
- 530 pl=val(a$)
- 540 c(pl+1)=251:c(pl+2)=251
- 999 rem
- 1000 rem *** screen set up ***
- 1001 rem
- 1005 poke648,240/4:print"[147]":poke53272,(peek(53272)and15)or240
- 1006 print" please wait..."
- 1007 poke648,4
- 1010 print"[147][144]";
- 1060 for x=1 to 10
- 1070 print"[206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205][160]";
- 1071 print"[205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183]";
- 1080 next:
- 1081 print"[206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205] [206][183][205][160]";
- 1082 print""
- 1120 for cc=55296 to 56135
- 1130 rn=int(rnd(0)*10)+1
- 1140 if rn>7 then pc=7:goto 1155
- 1150 pc=0
- 1155 poke cc,pc:next cc :poke53272,(peek(53272)and15)or16
- 1223 forx=1to4 : rem poke those chars on the board (playing chars)
- 1225 pokec+x(x)+40*y(x),c(x):pokev+x(x)+40*y(x),81
- 1227 next
- 1228 forx=217to242:pokex,peek(x)or128:next: rem reset line links due to print
- 1230 poke214,20:print:print " m=move f=fire"
- 1250 print" e=northwest r=north t=northeast"
- 1260 print" c=southwest v=south b=southeast"
- 2000 rem *** game play ***
- 2001 rem
- 2005 for pt=1 to pl
- 2007 g$="":p=0:pc=0
- 2010 print""chr$(c(pt)+140):poke214,23:print:print" your play (m or f) [157][157][157][157]";
- 2020 geta$:ifa$=chr$(13) then gosub 7000:goto2010
- 2021 if a$<>"m" and a$<>"f" then 2020
- 2030 printa$;
- 2035 poke214,23:print:print" direction? ";
- 2040 g$=g$+a$
- 2050 geta$ : if a$=chr$(13) then gosub 7000:goto 2010
- 2055 ifa$<>"e"anda$<>"r"anda$<>"t"anda$<>"c"anda$<>"v"anda$<>"b"then2050
- 2060 print" "a$;:fort=0to800:next
- 2070 g$=g$+a$
- 2080 if left$(g$,1)="m" then 2100
- 2090 goto 2500
- 2099 rem
- 2100 rem *** player move ***
- 2101 rem
- 2105 poke v+x(pt)+40*y(pt),32
- 2110 g$=right$(g$,1)
- 2120 if g$="e" then g=1
- 2121 if g$="r" then g=2
- 2122 if g$="t" then g=3
- 2123 if g$="c" then g=4
- 2124 if g$="v" then g=5
- 2125 if g$="b" then g=6
- 2130 on g goto 2135,2140,2150,2160,2170,2180
- 2135 ify(pt)=0orx(pt)=1or(peek(c+(x(pt)-1)+(y(pt)-1)*40)and15)=7then2190
- 2137 x(pt)=x(pt)-2:y(pt)=y(pt)-1:goto 2190
- 2140 if y(pt)<2 or (peek(c+x(pt)+(y(pt)-1)*40)and15)=7 then 2190
- 2145 y(pt)=y(pt)-2:goto 2190
- 2150 ifx(pt)=39ory(pt)=0or(peek(c+(x(pt)+1)+(y(pt)-1)*40)and15)=7then2190
- 2155 y(pt)=y(pt)-1:x(pt)=x(pt)+2:goto 2190
- 2160 ifx(pt)=1ory(pt)=20or(peek(c+(x(pt)-1)+y(pt)*40)and15)=7then2190
- 2165 y(pt)=y(pt)+1:x(pt)=x(pt)-2:goto 2190
- 2170 if y(pt)>18 or (peek(c+x(pt)+(y(pt)+1)*40)and15)=7 then 2190
- 2175 y(pt)=y(pt)+2:goto 2190
- 2180 ifx(pt)=39ory(pt)=20or(peek(c+(x(pt)+1)+y(pt)*40)and15)=7then2190
- 2185 y(pt)=y(pt)+1:x(pt)=x(pt)+2:goto 2190
- 2190 poke c+x(pt)+y(pt)*40,c(pt):poke v+x(pt)+y(pt)*40,81
- 2195 if y(1)=20 then w=1:goto 4000
- 2200 if y(2)=0 then w=2:goto 4000
- 2210 if x(3)=39 then w=3:goto 4000
- 2220 if x(4)=1 then w=4:goto 4000
- 2230 goto 2960
- 2499 rem
- 2500 rem *** player fire ***
- 2501 rem
- 2510 g$=right$(g$,1)
- 2520 if g$="e" then a=1
- 2540 if g$="r" then a=2
- 2550 if g$="t" then a=3
- 2560 if g$="c" then a=4
- 2570 if g$="v" then a=5
- 2580 if g$="b" then a=6
- 2590 on a goto 2600,2650,2700,2750,2800,2850
- 2600 x=x(pt):y=y(pt)
- 2602 if x<2 or y=0 then 2900
- 2605 x=x-1:y=y-1
- 2610 if (peek(c+x+y*40)and15)=7 then gosub 7200:goto 2900
- 2615 x=x-1
- 2620 if peek(v+x+y*40)=81 then pc=(peek(c+x+y*40) and 15)
- 2625 if pc>1 then for lo=1 to pl:if pc=c(lo) then p=lo
- 2626 if pc>1 then next lo
- 2630 if pc=0 or pc=1 then 2602
- 2635 goto 2900
- 2650 x=x(pt):y=y(pt)
- 2652 if y<2 then 2900
- 2655 y=y-1
- 2660 if (peek(c+x+y*40)and15)=7 then gosub 7200:goto 2900
- 2665 y=y-1
- 2670 if peek(v+x+y*40)=81 then pc=(peek(c+x+y*40) and 15)
- 2675 if pc>1 then for lo=1 to pl:if pc=c(lo) then p=lo
- 2676 if pc>1 then next lo
- 2680 if pc=0 or pc=1 then 2652
- 2685 goto 2900
- 2700 x=x(pt):y=y(pt)
- 2702 if x>38 or y=0 then 2900
- 2705 x=x+1:y=y-1
- 2710 if (peek(c+x+y*40)and15)=7 then gosub7200:goto 2900
- 2715 x=x+1
- 2720 if peek(v+x+y*40)=81 then pc=(peek(c+x+y*40) and 15)
- 2725 if pc>1 then for lo=1 to pl:if pc=c(lo) then p=lo
- 2726 if pc>1 then next lo
- 2730 if pc=0 or pc=1 then 2702
- 2735 goto 2900
- 2750 x=x(pt):y=y(pt)
- 2752 if x<2 or y=20 then 2900
- 2755 x=x-1
- 2760 if (peek(c+x+y*40)and15)=7 then gosub 7200:goto 2900
- 2765 x=x-1:y=y+1
- 2770 if peek(v+x+y*40)=81 then pc=(peek(c+x+y*40) and 15)
- 2772 if pc=0 then 2752
- 2775 if pc>1 then for lo=1 to pl:if pc=c(lo) then p=lo
- 2776 if pc>1 then next lo
- 2780 if pc=0 or pc=1 then 2752
- 2785 goto 2900
- 2800 x=x(pt):y=y(pt)
- 2802 if y>19 then 2900
- 2805 y=y+1
- 2810 if (peek(c+x+y*40)and15)=7 then gosub7200:goto 2900
- 2815 y=y+1
- 2820 if peek(v+x+y*40)=81 then pc=(peek(c+x+y*40) and 15)
- 2825 if pc>1 then for lo=1 to pl:if pc=c(lo) then p=lo
- 2826 if pc>1 then next lo
- 2830 if pc=0 or pc=1 then 2802
- 2835 goto 2900
- 2850 x=x(pt):y=y(pt)
- 2852 if y>19 or x=39 then 2900
- 2855 x=x+1
- 2860 if (peek(c+x+y*40)and15)=7 then gosub7200:goto 2900
- 2865 x=x+1:y=y+1
- 2870 if peek(v+x+y*40)=81 then pc=(peek(c+x+y*40) and 15)
- 2875 if pc>1 then for lo=1 to pl:if pc=c(lo) then p=lo
- 2876 if pc>1 then next lo
- 2880 if pc=0 or pc=1 then 2852
- 2885 goto 2900
- 2900 if p=0 then 2960
- 2902 poke v+x(p)+y(p)*40,32
- 2905 on p goto 2920,2930,2940,2950
- 2920 x(p)=19:y(p)=0:poke v+x(p)+y(p)*40,81:poke c+x(p)+y(p)*40,c(p)
- 2925 goto 2960
- 2930 x(p)=19:y(p)=20:poke v+x(p)+y(p)*40,81:poke c+x(p)+y(p)*40,c(p)
- 2935 goto 2960
- 2940 x(p)=1:y(p)=11:poke v+x(p)+y(p)*40,81:poke c+x(p)+y(p)*40,c(p)
- 2945 goto 2960
- 2950 x(p)=39:y(p)=10:poke v+x(p)+y(p)*40,81:poke c+x(p)+y(p)*40,c(p)
- 2960 if pt=pl then 2000
- 2970 next pt
- 4000 print "[147] [159]congratulations, player";w
- 4010 print "[158] you are the winner"
- 4020 print"[153] play another game (y/n)"
- 4030 get a$:if a$="" then 4030
- 4040 if a$="n" then gosub 7000:goto1000
- 4050 if a$="y" then 120
- 4060 goto 4030
- 6000 poke53280, 0:poke53281,11:print"[147][142]";:poke53265,peek(53265)and239
- 6001 print"[144]N[183][154] [146][144]M"
- 6002 print"M[154] [153] [154] [146][144]N[158][183][144]N[158][183][154] [153] [158] loadstar ";
- 6003 print"presents [153] [154] [146][144]M"
- 6004 print"[158]M[154] [153] [154] [146][158]N[144][183][158]N[144][183][154] [153] stratahex ";
- 6005 print"by mike l lewis[153] [154] [146][158]M"
- 6006 print"[144]M[154] [153] [154] [146][144]N[158][183]N[183][154] ";
- 6007 print" [154] [146][144]M"
- 6008 print"M[154] [146][144]N[183]N[183][158]M[144]N[158][183]M[144]N[183]MN[183]M[158]N[183]M[144]N[183]";
- 6009 print"[158]M[144]N[158][183][144]MN[183]MN[158][183][144]MN[183][158]M"
- 6010 print"[144]MN[158][183]M[144]N[183]MN[183]MN[183]MN[183]M[158]N[183][144]MN[158][183][144]MN[158][183][144]M[158]N[144][183]M[158]N[144][183]N[183]MN[158][183][144]MN[183][158]M[144]N[183]M";
- 6011 print"N[158][183]MN[144][183]MN[183]MN[158][183][144]MN[183][158]M[144]N[183]M"
- 6012 print"[158]M[144]N[158][183]M[144]N[158][183][144]MN[158][183][144]M[158]N[183]MN[183]MN[144][183][158]MN[144][183]MN[183][158]M[144]N[183]MN[158][183][144]N[158][183][144]M[158]N[144][183][158]MN[144][183]";
- 6013 print"MN[183]MQ[158]N[144][183]MN[183][158]M[144]N[183]MN[158][183][144]MN[183]M[150]Q[144]N[158][183][144]M"
- 6014 print"M[153]Q[158]N[144][183]MN[158][183][144]MN[183]MN[158][183]M[144]N[158][183][144]MN[183]M[158]N[183][144]MN[183]MN[183][158]M[144]N[158][183][144]N[158][183][144]MN[183]M[158]N[144][183]MN";
- 6015 print"[158][183]M[144]N[183][158]M[144]N[183]MN[183]MN[183]MN[183][158]MN[183]M"
- 6016 print"MN[183][144]M[158]N[183][144]MN[183]MN[158][183][144]MN[183]MN[183]M[158]N[144][183]MN[183][158]MN[144][183][158]M[144]N[183]N[158][183]M[144]N[183]MN[183]MN[183]MN[183]M";
- 6017 print"[158]N[144][183]M[158]N[144][183]MN[158][183]M[144]N[183][158]M[144]N[183][158]M"
- 6018 print"[144]MN[158][183][144]M[158]N[144][183][158]M[144]N[183][158]M[144]N[183]M[158]N[183][144]M[158]N[183][144]M[159]Q[158]N[144][183]MN[183][158]M[144]N[183]M[158]N[144][183]N[183]MN[183]MN[158][183][144]";
- 6019 print"MN[183]MN[158][183][144]MN[158][183][144]MN[183]MN[183][158]MN[183][144]M[158]N[144][183][158]M"
- 6020 print"[144]MN[183]M[158]N[144][183][158]M[144]N[158][183][144]M[158]N[144][183][158]M[144]N[183]M[158]N[144][183]M[158]N[144][183][158]MN[144][183]M[158]N[144][183]MN[183]N[183]MN[158][183][144]Mc[144]N";
- 6021 print"[158][183]Mp[158]N[144][183]Mr[144]N[183][158]Mg[144]N[183][158]Mt[144]N[158][183]M1[144]N[183][158]M8[144]N[158][183][144]MN[183]M"
- 6022 print"M[158]N[144][183]M[158]N[183][144]Mo[144]N[183]My[144]N[158][183][144]Mi[144]N[183]Mh[144]N[183]MN[183]M9[144]N[158][183][144]M8[158]N[144][183]MN[183][172] ";
- 6023 print" [146][187] [159] press space when ready to continue ";
- 6024 print"[187] [146][188] [188][146][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][190]"
- 6025 poke2023,126:poke56295,1:poke53265,peek(53265)or16
- 6030 geta$:ifa$<>" "then 6030
- 6035 return
- 7000 print" [158]quit to loadstar ? (y or n)"
- 7001 geta$:ifa$=""then 7001
- 7002 ifa$="y"ora$="[217]"then 7050
- 7003 ifa$="n"ora$="[206]"then 7025
- 7005 goto 7001
- 7025 print" ":return
- 7050 open15,8,15,"r0:hello connect=hello connect":input#15,er,er$:close15
- 7051 ifer<>63 then print"[147]":end
- 7055 load"hello connect",8
- 7200 print"<<<<blocked>>>>[146]"
- 7210 ford=1to500:next:return
-