home *** CD-ROM | disk | FTP | other *** search
/ Compute! Gazette 1990 January / 1990-01.d64 / flags (.txt) < prev    next >
Commodore BASIC  |  2022-09-20  |  6KB  |  206 lines

  1. 5 rem copyright 1990 compute! publications, inc. - all rights reserved
  2. 10 fori=1to24:l2$=l2$+"[192]":next:l1$=left$(l2$,17)
  3. 20 fori=54272to54296:pokei,0:next
  4. 30 print"[147]";:aa$="[149] ":fori=1to20:aa$=aa$+"[157] ":next:x=rnd(-ti)
  5. 40 mx=41:dimfl$(mx),fl(mx),v$(24),aa(mx),cl(mx):fori=1tomx:readz,a,b,c,d$
  6. 50 fl(i)=z:fl$(i)=chr$(a)+chr$(b)+chr$(c)+d$:next
  7. 60 poke53280,12:poke53281,12
  8. 70 v$(0)="":fori=1to24:v$(i)=v$(i-1)+"":next
  9. 80 fori=1to30:sp$=sp$+" ":s3$=s3$+"[185]":s4$=s4$+"[184]":next:s2$=left$(sp$,20)
  10. 90 s5$=""+left$(sp$,24):cl(1)=7:cl(2)=6:cl(3)=2:cl(4)=0:cl(5)=5:cl(27)=2
  11. 100 s=53248:fori=704to704+63:pokei,0:next
  12. 110 fori=832toi+63:pokei,0:next
  13. 120 fori=704to725:reada:pokei,a:next
  14. 130 fori=833to860:reada:pokei,a:next
  15. 140 poke2040,11:poke2041,13:print"[147]";:printv$(6)tab(10)"[144]"left$(s3$,19)"[187]"
  16. 150 printv$(15)tab(10)left$(s4$,19)"[190]"
  17. 160 printv$(7)tab(10)"[176]"l1$"[174]"
  18. 170 pokes+21,0:printtab(10)"[221]      flags      [221]"
  19. 180 printtab(10)"[221]                 [221]"
  20. 190 printtab(10)"[221] (1) learn flags [221]"
  21. 200 printtab(10)"[221] (2) one player  [221]"
  22. 210 printtab(10)"[221] (3) two players [221]"
  23. 220 printtab(10)"[221]                 [221]"
  24. 230 printtab(10)"[173]"l1$"[189][146]"v$(7);
  25. 240 fori=7to14:printtab(29)"[153][144][181]":next
  26. 250 printv$(6)tab(9)left$(aa$,len(aa$)-9)
  27. 260 printv$(5)tab(9)"[158][193]"
  28. 270 getch$:ifch$<"1"orch$>"3"orch$=""then270
  29. 280 ifch$="1"then900
  30. 290 pl=1:gs=0:print"[147][144]player #1":print"  [158]0000"
  31. 300 print""tab(18)"[144][176][192][192][174]"v$(1)tab(18)"[221]  [221]"v$(2)tab(18)"[173][192][192][189]"
  32. 310 ifch$="3"thenprint""tab(30)"[144]player #2"v$(1)tab(32)"[158]0000"
  33. 320 printv$(12)tab(12)"[144] <space> to start ":sc(1)=0:sc(2)=0:rr=0
  34. 330 geta$:ifa$<>" "then330
  35. 340 rr=rr+1:ifrr>10andch$="2"thenrr=0:goto2000
  36. 350 cc=0:fori=1tomx:ifaa(i)=0thencc=1
  37. 360 next:ifcc=0thenfori=1tomx:aa(i)=0:next
  38. 370 x=int(rnd(1)*mx)+1:ifaa(x)=1then370
  39. 380 aa(x)=1:yy=x:z$=mid$(fl$(yy),4):gosub1050
  40. 390 gosub1080:a$(1)=mid$(fl$(yy),4)
  41. 400 x1=int(rnd(1)*mx)+1:ifx1<>yythena$(2)=mid$(fl$(x1),4):goto420
  42. 410 goto400
  43. 420 x2=int(rnd(1)*mx)+1:ifx2<>x1andx2<>yythena$(3)=mid$(fl$(x2),4):goto440
  44. 430 goto420
  45. 440 ifrnd(1)<.5thent$=a$(1):a$(1)=a$(2):a$(2)=t$
  46. 450 ifrnd(1)<.5thent$=a$(2):a$(2)=a$(3):a$(3)=t$
  47. 460 ifrnd(1)<.5thent$=a$(1):a$(1)=a$(3):a$(3)=t$
  48. 470 t=15:t$="15":rv$=""
  49. 480 fori=1to3:printv$(19+i)s2$mid$(s2$,2):printv$(19+i)"  "rv$"[144]"a$(i)
  50. 490 ifch$="3"thenprintv$(19+i)tab(24)rv$a$(i)
  51. 500 rv$="[146]":next:p1=1:p2=1
  52. 510 x1=notpeek(56321)and15:x2=notpeek(56320)and15
  53. 520 geta$:ifa$="[136]"then140
  54. 530 ifx1=0andx2=0then670
  55. 540 ifx1<>1andx1<>2then560
  56. 550 printv$(p1+19)"  [146]"a$(p1)
  57. 560 ifx2<>1andx2<>2then580
  58. 570 ifch$="3"thenprintv$(p2+19)tab(24)"[146]"a$(p2)
  59. 580 ifx1=1thenp1=p1-1
  60. 590 ifx2=1thenp2=p2-1
  61. 600 ifx2=2thenp2=p2+1
  62. 610 ifx1=2thenp1=p1+1
  63. 620 ifp1<1thenp1=3
  64. 630 ifp2<1thenp2=3
  65. 640 ifp1>3thenp1=1
  66. 650 ifp2>3thenp2=1
  67. 660 printv$(p1+19)"  "a$(p1):ifch$="3"thenprintv$(p2+19)tab(24)""a$(p2)
  68. 670 tm=tm+1:iftm>5thent=t-1:tm=0:gosub1960
  69. 680 ift<0then890
  70. 690 t$=right$("0"+mid$(str$(int(t)),2),2):print""tab(19)t$
  71. 700 b1=(peek(56321)and16)/16:b2=1:ifch$="3"thenb2=(peek(56320)and16)/16
  72. 710 ifb1andb2then510
  73. 720 pp=p2:pl=2:ifb1=0thenpp=p1:pl=1
  74. 730 tb=17:ifpl=1thentb=0
  75. 740 fori=20to22:printv$(i)s2$mid$(s2$,2):next
  76. 750 printv$(22)tab(2+tb)"[144]*** "a$(pp)" [144]***"
  77. 760 ifa$(pp)=z$then810
  78. 770 gosub1990
  79. 780 printv$(18)tab(8)"wrong! it was "z$:sc(pl)=sc(pl)-int(t*30)
  80. 790 ifsc(pl)<0thensc(pl)=0
  81. 800 goto820
  82. 810 printv$(18)tab(16)"correct!":sc(pl)=sc(pl)+int(t*50):gosub1970
  83. 820 s$=right$("0000"+mid$(str$(sc(1)),2),4)
  84. 830 print"  [158]"s$:ifch$="2"then860
  85. 840 s$=right$("0000"+mid$(str$(sc(2)),2),4):print"[158]"tab(32)s$
  86. 850 ifsc(1)>5000orsc(2)>5000then2000
  87. 860 fordy=1to1500:next
  88. 870 fori=18to23:printv$(i)s2$mid$(s2$,2):next
  89. 880 goto340
  90. 890 gosub1990:printv$(18)tab(5)"out of time! it was "z$:goto860
  91. 900 print"[147][144]learn mode[149]":x=1:printv$(3)tab(6)aa$
  92. 910 printv$(2)tab(6)"[193]"
  93. 920 print"[144][183][183][183][183][183][183][183][183][183][183]"
  94. 930 printv$(21)tab(10)"[144](+) next flag"
  95. 940 printtab(10)"(-) previous flag"
  96. 950 printtab(10)"(q) quit"
  97. 960 gosub1050:gosub1080
  98. 970 geta$:ifa$="+"then1010
  99. 980 ifa$="q"then140
  100. 990 ifa$<>"-"then970
  101. 1000 goto1030
  102. 1010 x=x+1:ifx>mxthenx=1
  103. 1020 goto960
  104. 1030 x=x-1:ifx<1thenx=mx
  105. 1040 goto960
  106. 1050 pokes+21,0:e=7:printv$(3);:printtab(e)"[151][176]"l2$"[174]"
  107. 1060 fori=1to12+eu:printtab(e)"[146][151][221]"mid$(s5$,2)"[221]":next
  108. 1070 printtab(e)"[151][173]"l2$"[189]":return
  109. 1080 aa(x)=1
  110. 1090 ifch$="1"thenprintv$(18)tab(15)""mid$(fl$(x),4)left$(s2$,10)
  111. 1100 a$=fl$(x):a=fl(x)
  112. 1110 onagoto1120,1210,1270,1310,1350,1390,1420,1430,1470,1500
  113. 1120 printv$(4);:fori=1to4:printtab(8)left$(a$,1)s5$:next
  114. 1130 fori=1to4:printtab(8)mid$(a$,2,1)s5$:next
  115. 1140 fori=1to4:printtab(8)mid$(a$,3,1)s5$:next
  116. 1150 ifx<10orx>12then1170
  117. 1160 pokes,173:pokes+1,122:pokes+39,cl(x-9):pokes+23,1:pokes+29,1:pokes+21,1
  118. 1170 ifx<14orx>15then1200
  119. 1180 pokes+2,158:pokes+3,120:pokes+40,cl(x-10):pokes+23,3:pokes+29,3
  120. 1190 pokes+40,a:pokes+21,2
  121. 1200 return
  122. 1210 printv$(4);:fori=1to12:printtab(8)left$(a$,1)"        "mid$(a$,2,1);
  123. 1220 print"        "mid$(a$,3,1)"        ":next
  124. 1230 ifx=20thenprintv$(9)tab(19)"[144]r"
  125. 1240 ifx<25thenreturn
  126. 1250 pokes+2,158:pokes+3,120:pokes+23,3:pokes+29,3:a=7:ifx=25thena=5
  127. 1260 pokes+40,a:pokes+21,2:return
  128. 1270 printv$(4);:fori=1to6:printtab(8)left$(a$,1)s5$:next
  129. 1280 fori=1to6:printtab(8)mid$(a$,2,1)s5$:next
  130. 1290 ifx=30thenfori=4to15:printv$(i)tab(8)""left$(s2$,8):next
  131. 1300 return
  132. 1310 printleft$(a$,1):gosub1490
  133. 1320 printmid$(a$,2,1);
  134. 1330 fori=4to15:printv$(i)tab(15)"  ":next
  135. 1340 printv$(9)tab(8)s5$:printtab(8)s5$:return
  136. 1350 printleft$(a$,1);:gosub1490
  137. 1360 fori=6to13:printv$(i)tab(19)"  ";:next
  138. 1370 fori=9to10:printv$(i)tab(14)""left$(s2$,12):next
  139. 1380 return
  140. 1390 printleft$(a$,1);:gosub1490
  141. 1400 pokes+2,158:pokes+3,120:pokes+40,1:pokes+23,3:pokes+29,3
  142. 1410 pokes+21,2:return
  143. 1420 printleft$(a$,1):gosub1490:goto1160
  144. 1430 print"":gosub1490
  145. 1440 printv$(4)tab(8)""s5$v$(5)tab(8)s5$v$(14)tab(8)s5$v$(15)tab(8)s5$
  146. 1450 printv$(6)tab(8)""s5$v$(7)tab(8)s5$v$(12)tab(8)s5$v$(13)tab(8)s5$
  147. 1460 return
  148. 1470 print"":gosub1490:fori=4to15
  149. 1480 printv$(i)tab(20)""mid$(s5$,14):next:printv$(5)tab(9)"[144][219]":return
  150. 1490 fori=4to15:printv$(i)tab(8)s5$:next:return
  151. 1500 print"":gosub1490
  152. 1510 fori=4to7:print"[158]"v$(i)tab(14)mid$(s5$,8):next
  153. 1520 fori=12to15:print""v$(i)tab(14)mid$(s5$,8):next:return
  154. 1530 data1,28,5,31,"netherlands"
  155. 1540 data1,158,31,28,"venezuela"
  156. 1550 data1,28,5,28,"austria"
  157. 1560 data1,28,158,28,"spain"
  158. 1570 data1,28,5,30,"hungary"
  159. 1580 data1,28,5,154,"luxembourg"
  160. 1590 data1,28,5,144,"libya"
  161. 1600 data1,30,158,28,"ethiopia"
  162. 1610 data1,30,158,31,"gabon"
  163. 1620 data1,154,5,154,"argentina"
  164. 1630 data1,28,5,30,"india"
  165. 1640 data1,28,5,30,"niger"
  166. 1650 data1,144,28,158,"west germany"
  167. 1660 data1,28,158,30,"ghana"
  168. 1670 data1,28,5,144,"yemen"
  169. 1680 data1,5,30,28,"bulgaria"
  170. 1690 data2,31,158,28,"chad"
  171. 1700 data2,28,158,144,"belgium"
  172. 1710 data2,31,5,28,"france"
  173. 1720 data2,28,158,30,"rwanda"
  174. 1730 data2,30,5,28,"italy"
  175. 1740 data2,28,158,30,"new guinea"
  176. 1750 data2,30,5,30,"nigeria"
  177. 1760 data2,28,5,30,"ivory coast"
  178. 1770 data2,30,28,158,"cameroon"
  179. 1780 data2,30,158,28,"senegal"
  180. 1790 data3,5,154,1,"san marino"
  181. 1800 data3,28,5,1,"indonesia"
  182. 1810 data3,5,28,1,"poland"
  183. 1820 data3,28,30,1,"madagascar"
  184. 1830 data4,28,5,1,"denmark"
  185. 1840 data4,31,158,1,"sweden"
  186. 1850 data4,5,31,1,"finland"
  187. 1860 data5,28,5,1,"switzerland"
  188. 1870 data6,154,1,1,"somali rep."
  189. 1880 data7,144,1,1,"bangladesh"
  190. 1890 data8,1,1,1,"thailand"
  191. 1900 data9,1,1,1,"malta"
  192. 1910 data10,1,1,1,"oman"
  193. 1920 data1,144,5,28,"upper volta"
  194. 1930 data1,30,5,28,"sierra leone"
  195. 1940 data60,0,0,126,0,0,126,0,0,255,0,0,255,0,0,126,0,0,126,0,0,60,16,0,0
  196. 1950 data16,0,0,56,0,0,56,0,3,255,128,1,255,0,0,124,0,0,124,0,0,198,0,1,1
  197. 1960 poke54273,70:poke54278,70:poke54296,15:poke54276,17:poke54276,16:return
  198. 1970 poke54278,96:poke54296,15
  199. 1980 fori=1to100step3:poke54273,50+i:poke54276,33:poke54276,0:next:return
  200. 1990 fort=1to15:poke54296,15:poke54296,0:next:return
  201. 2000 gosub1970:fori=18to23:printv$(i)s2$mid$(s2$,2):next
  202. 2010 print