home *** CD-ROM | disk | FTP | other *** search
/ AppleDisk Magazine Miscellaneous Programs / AppleDisk_Misc_Programs_1.dsk / RISKIO.bas < prev    next >
Encoding:
BASIC Source File  |  1987-01-01  |  18.4 KB  |  362 lines

  1. 0  POKE  -16368,0
  2. 1  PRINT "<CTRL-D>NOMON I,O,C"
  3. 2  TEXT : HOME : VTAB 5: PRINT  TAB( 15);: FLASH : PRINT "   RISKIO   ": NORMAL : VTAB 10: PRINT  TAB( 6);: INVERSE : PRINT " COPYRIGHT (C) APPLEDISK 1989 ": NORMAL : PRINT : PRINT 
  4. 4  HIMEM: 16384
  5. 5  GET A$
  6. 6  REM  **********************
  7. 7  REM  *                    *
  8. 8  REM  *       RISIKO       *
  9. 9  REM  *         BY         *
  10. 10  REM * FRANCESCO ADORNATO *
  11. 11  REM *                    *
  12. 12  REM * COPYRIGHT (C) 1989 *
  13. 13  REM *    BY APPLEDISK    *
  14. 14  REM **********************
  15. 15  SPEED= 255:X =  FRE(0): CLEAR 
  16. 16  REM                                                                                                                       
  17. 17  REM                                                              
  18. 18  REM              
  19. 20  DIM T(42),R(42),A(42),X(42),Y(42)
  20. 25  DIM N$(42),CN$(6)
  21. 26  VTAB 20: PRINT "SCEGLI:  ": PRINT "     1: NUOVO GIOCO.": PRINT "     2: CARICA GIOCO DAL DISCO.": GET A$: IF A$ = "2"  THEN  GOTO 3500
  22. 30 P = 0:D = 1
  23. 50  PRINT : PRINT : PRINT : PRINT 
  24. 60  GOTO 1000
  25. 70  VTAB 24: FLASH : PRINT " PREMI SPAZIO PER CONTINUARE";: GET AN$: NORMAL : RETURN 
  26. 100  ON T1 GOTO 101,103,105,107,109,111,113,115,117,119,121,123,125,127,129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183
  27. 101  IF T2 = 2  OR T2 = 4  OR T2 = 30  THEN 190
  28. 102  GOTO 195
  29. 103  IF T2 = 1  OR T2 = 4  OR T2 = 5  OR T2 = 3  THEN 190
  30. 104  GOTO 195
  31. 105  IF T2 = 2  OR T2 = 6  OR T2 = 14  THEN 190
  32. 106  GOTO 195
  33. 107  IF T2 = 1  OR T2 = 2  OR T2 = 5  OR T2 = 7  THEN 190
  34. 108  GOTO 195
  35. 109  IF T2 = 2  OR T2 = 4  OR T2 = 6  OR T2 = 7  OR T2 = 8  THEN 190
  36. 110  GOTO 195
  37. 111  IF T2 = 3  OR T2 = 5  OR T2 = 8  THEN 190
  38. 112  GOTO 195
  39. 113  IF T2 = 4  OR T2 = 5  OR T2 = 8  OR T2 = 9  THEN 190
  40. 114  GOTO 195
  41. 115  IF T2 = 5  OR T2 = 6  OR T2 = 7  OR T2 = 9  THEN 190
  42. 116  GOTO 195
  43. 117  IF T2 = 7  OR T2 = 8  OR T2 = 10  THEN 190
  44. 118  GOTO 195
  45. 119  IF T2 = 9  OR T2 = 11  OR T2 = 12  THEN 190
  46. 120  GOTO 195
  47. 121  IF T2 = 10  OR T2 = 12  OR T2 = 13  THEN 190
  48. 122  GOTO 195
  49. 123  IF T2 = 10  OR T2 = 11  OR T2 = 13  OR T2 = 21  THEN 190
  50. 124  GOTO 195
  51. 125  IF T2 = 11  OR T2 = 12  THEN 190
  52. 126  GOTO 195
  53. 127  IF T2 = 3  OR T2 = 15  OR T2 = 16  THEN 190
  54. 128  GOTO 195
  55. 129  IF T2 = 14  OR T2 = 16  OR T2 = 17  OR T2 = 18  THEN 190
  56. 130  GOTO 195
  57. 131  IF T2 = 14  OR T2 = 20  OR T2 = 15  OR T2 = 17  THEN 190
  58. 132  GOTO 195
  59. 133  IF T2 = 16  OR T2 = 20  OR T2 = 15  OR T2 = 18  OR T2 = 19  THEN 190
  60. 134  GOTO 195
  61. 135  IF T2 = 15  OR T2 = 17  OR T2 = 19  OR T2 = 21  THEN 190
  62. 136  GOTO 195
  63. 137  IF T2 = 17  OR T2 = 18  OR T2 = 20  OR T2 = 21  OR T2 = 22  OR T2 = 36  THEN 190
  64. 138  GOTO 195
  65. 139  IF T2 = 16  OR T2 = 17  OR T2 = 19  OR T2 = 27  OR T2 = 32  OR T2 = 36  THEN 190
  66. 140  GOTO 195
  67. 141  IF T2 = 12  OR T2 = 18  OR T2 = 19  OR T2 = 22  OR T2 = 23  OR T2 = 24  THEN 190
  68. 142  GOTO 195
  69. 143  IF T2 = 19  OR T2 = 36  OR T2 = 21  OR T2 = 23  THEN 190
  70. 144  GOTO 195
  71. 145  IF T2 = 21  OR T2 = 22  OR T2 = 24  OR T2 = 25  OR T2 = 26  OR T2 = 36  THEN 190
  72. 146  GOTO 195
  73. 147  IF T2 = 21  OR T2 = 23  OR T2 = 25  THEN 190
  74. 148  GOTO 195
  75. 149  IF T2 = 23  OR T2 = 24  OR T2 = 26  THEN 190
  76. 150  GOTO 195
  77. 151  IF T2 = 23  OR T2 = 25  THEN 190
  78. 152  GOTO 195
  79. 153  IF T2 = 20  OR T2 = 28  OR T2 = 32  OR T2 = 33  THEN 190
  80. 154  GOTO 195
  81. 155  IF T2 = 27  OR T2 = 29  OR T2 = 31  OR T2 = 33  OR T2 = 34  THEN 190
  82. 156  GOTO 195
  83. 157  IF T2 = 28  OR T2 = 31  OR T2 = 30  THEN 190
  84. 158  GOTO 195
  85. 159  IF T2 = 1  OR T2 = 29  OR T2 = 31  OR T2 = 34  OR T2 = 35  THEN 190
  86. 160  GOTO 195
  87. 161  IF T2 = 28  OR T2 = 29  OR T2 = 30  OR T2 = 34  THEN 190
  88. 162  GOTO 195
  89. 163  IF T2 = 20  OR T2 = 27  OR T2 = 33  OR T2 = 36  OR T2 = 37  THEN 190
  90. 164  GOTO 195
  91. 165  IF T2 = 27  OR T2 = 28  OR T2 = 32  OR T2 = 34  OR T2 = 37  OR T2 = 38  THEN 190
  92. 166  GOTO 195
  93. 167  IF T2 = 28  OR T2 = 30  OR T2 = 31  OR T2 = 33  OR T2 = 35  THEN 190
  94. 168  GOTO 195
  95. 169  IF T2 = 30  OR T2 = 34  THEN 190
  96. 170  GOTO 195
  97. 171  IF T2 = 19  OR T2 = 20  OR T2 = 32  OR T2 = 22  OR T2 = 23  OR T2 = 37  THEN 190
  98. 172  GOTO 195
  99. 173  IF T2 = 32  OR T2 = 33  OR T2 = 36  OR T2 = 38  THEN 190
  100. 174  GOTO 195
  101. 175  IF T2 = 33  OR T2 = 37  OR T2 = 39  THEN 190
  102. 176  GOTO 195
  103. 177  IF T2 = 38  OR T2 = 40  OR T2 = 41  THEN 190
  104. 178  GOTO 195
  105. 179  IF T2 = 39  OR T2 = 41  OR T2 = 42  THEN 190
  106. 180  GOTO 195
  107. 181  IF T2 = 39  OR T2 = 40  OR T2 = 42  THEN 190
  108. 182  GOTO 195
  109. 183  IF T2 = 40  OR T2 = 41  THEN 190
  110. 184  GOTO 195
  111. 190  IF FLAG = 0  THEN  RETURN 
  112. 191  PRINT T2; TAB( 4);N$(T2); TAB( 22);NAME$(R(T2)); TAB( 36);A(T2): RETURN 
  113. 195  IF FLAG = 1  THEN  RETURN 
  114. 196  PRINT "MOSSA ERRATA!!!": PRINT "<CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G>": POP : GOTO 2000
  115. 200  REM  
  116. 210 EXTRA = 0: IF J(P) <3  THEN  RETURN 
  117. 220 N =  INT( RND(1) *3 +1): IF J(P) = 3  AND N = 1  THEN 280
  118. 230  IF J(P) = 4  THEN N = N: IF N = 1  OR N = 2  THEN 280
  119. 240  IF J(P) = 5  THEN 280
  120. 250  RETURN 
  121. 280 EXTRA = (D +1) *2: IF D >5  THEN EXTRA = (D -3) *5
  122. 290 D = D +1:J(P) = J(P) -3: RETURN 
  123. 300  REM  
  124. 305  FOR N = 1 TO PLAYERS:T(N) = 0:U(N) = 0: NEXT N
  125. 310  HOME : PRINT  TAB( 14);: FLASH : PRINT "STATO DEL GIOCO.": NORMAL : FOR N = 1 TO PLAYERS: FOR I = 1 TO 42: IF R(I) = N  THEN T(N) = T(N) +1:U(N) = U(N) +A(I)
  126. 312  NEXT I,N
  127. 320  PRINT : PRINT "GIOCATORE"; TAB( 12);"TERRITORI"; TAB( 26);"ESERCITI"; TAB( 35);"BONUS": FOR I = 1 TO 40: PRINT "*";: NEXT I: PRINT 
  128. 340  FOR I = 1 TO PLAYERS: PRINT NAME$(I); TAB( 16);T(I); TAB( 28);U(I); TAB( 37)J(I): PRINT : NEXT I
  129. 350  IF H = 1  THEN  RETURN 
  130. 360  FOR I = 1 TO PLAYERS: IF T(I) = 42  THEN 600
  131. 361  NEXT I
  132. 399  VTAB 24: PRINT "GIOCATORE SUCCESSIVO.PREMI UN TASTO";: GET AN$: RETURN 
  133. 500  REM  
  134. 505 C = 0: FOR N = 1 TO 6:N(N) = 0
  135. 510  IF N = 1  THEN A = 1:B = 9: GOTO 570
  136. 520  IF N = 2  THEN A = 10:B = 13: GOTO 570
  137. 530  IF N = 3  THEN A = 14:B = 20: GOTO 570
  138. 540  IF N = 4  THEN A = 21:B = 26: GOTO 570
  139. 550  IF N = 5  THEN A = 27:B = 38: GOTO 570
  140. 560  IF N = 6  THEN A = 39:B = 42
  141. 570 T = 0: FOR X = A TO B: IF R(X) = P  THEN T = T +1
  142. 572  NEXT X: IF T = B -A +1  THEN N(N) = 1
  143. 575  NEXT N
  144. 580  IF N(1) = 1  THEN C = C +5
  145. 582  IF N(2) = 1  THEN C = C +2
  146. 584  IF N(3) = 1  THEN C = C +5
  147. 586  IF N(4) = 1  THEN C = C +3
  148. 588  IF N(5) = 1  THEN C = C +7
  149. 590  IF N(6) = 1  THEN C = C +2
  150. 599  RETURN 
  151. 600  REM  ***END OF GAME***
  152. 610  VTAB 20: FLASH : PRINT "CONGRATULAZIONI ";NAME$(I): PRINT "ORA TU POSSIEDI IL MONDO INTERO!!!"
  153. 620  DEL 0,2
  154. 1000  HOME : VTAB 3: HTAB 3: PRINT "BENVENUTI AL GIOCO DEL 'RISKIO'": PRINT 
  155. 1005  PRINT "QUANTI GIOCATORI.......(2 - 9) ": GET PLAYERS: PRINT : IF PLAYERS <2  OR PLAYERS >9  THEN  HOME : GOTO 1005
  156. 1010  FOR I = 1 TO PLAYERS:J(I) = 0:T(I) = 1: NEXT I
  157. 1020  PRINT : FOR I = 1 TO PLAYERS: PRINT "NOME DEL GIOCATORE N.";I: INPUT NAME$(I): NEXT I
  158. 1050  PRINT : PRINT "IN QUESTO GIOCO CI SONO 42 TERRITORI. ORA VENGONO DISTRIBUITI"
  159. 1060  FOR I = 1 TO 42: READ N$(I):A(I) = 1: NEXT I
  160. 1080  FOR I = 1 TO 42: READ X(I),Y(I): NEXT I
  161. 1090  FOR I = 1 TO 6: READ CNT$(I): NEXT I
  162. 1200  FOR I = 1 TO 42:R(I) =  INT( RND(1) *PLAYERS +1): NEXT I
  163. 1990 H = 1: GOSUB 2980:H = 0: PRINT "VOLETE RI-DISTRIBUIRLI............(S/N)": GET AN$: IF AN$ = "S"  THEN 1200
  164. 1999 P =  INT( RND(1) *PLAYERS +1): PRINT : PRINT " INIZIA ";NAME$(P);"!": FOR I = 1 TO 1000: NEXT I: ONERR  GOTO 2000
  165. 2000  TEXT : REM  MENU
  166. 2001  HOME :FLAG = 0
  167. 2010  PRINT "GIOCATORE N.";P;" ---- ";: FLASH : PRINT NAME$(P): NORMAL : PRINT 
  168. 2020  PRINT "1:   NUMERI DI CODICE DEI TERRITORI."
  169. 2021  PRINT "2:   MOSTRA UN TERRITORIO."
  170. 2022  PRINT "3:   DISTRIBUZIONE DEI GIOCATORI"
  171. 2023  PRINT "4:   SITUAZIONE DEI GIOCATORI."
  172. 2024  PRINT "5:   SITUAZIONE DEI CONTINENTI."
  173. 2025  PRINT "6:   SITUAZIONE DEI TERRITORI."
  174. 2026  PRINT "7:   DISTRIBUZIONE NUOVI ESERCITI."
  175. 2027  PRINT "8:   ATTACCO!"
  176. 2028  PRINT "9:   PROSSIMO GIOCATORE."
  177. 2029  PRINT "0:   SALVA IL GIOCO CORRENTE SUL DISCO"
  178. 2030  VTAB 14: PRINT "(1-9)....": GET KEY$:KEY =  VAL(KEY$): IF KEY$ = "0"  THEN 3000
  179. 2040  ON KEY GOSUB 2700,2100,2200,2300,2400,2500,2600,2800,2900
  180. 2099  GOTO 2000
  181. 2100  REM              
  182. 2110 FLAG = 1: GOSUB 2700: PRINT  TAB( 10): FLASH : PRINT "QUALE TERRITORIO?   ";: INPUT N$:N =  VAL(N$): IF N <1  OR N >42  THEN  NORMAL : RETURN 
  183. 2120  HGR2 : SCALE= 1: ROT= 0: HCOLOR= 5: FOR I = 1 TO 42: DRAW I AT X(I),Y(I): NEXT I
  184. 2130  IF FLAG = 1  THEN  HCOLOR= 0: GOTO 2150
  185. 2140  HCOLOR= 3
  186. 2150  DRAW N AT X(N),Y(N)
  187. 2198  IF  PEEK( -16384) <127  THEN FLAG =  -1 *FLAG: GOTO 2130
  188. 2199  TEXT : RETURN 
  189. 2200  REM  ***GRAPHICS ROUTINE FOR WORLD MAP HIGHLIGHTING INDIVIDUAL PLAYERS
  190. 2210  HOME : PRINT "QUALE GIOCATORE...": PRINT : PRINT : FOR I = 1 TO PLAYERS: PRINT I;":-  ";NAME$(I): PRINT : NEXT I: GET S: IF S <1  OR S >PLAYERS  THEN  RETURN 
  191. 2220  HGR2 : SCALE= 1: ROT= 0:FLAG = 1
  192. 2225  FOR I = 1 TO 42
  193. 2230  IF R(I) = S  THEN  HCOLOR= 3: GOTO 2250
  194. 2235  IF FLAG =  -1  THEN  HCOLOR= 5: GOTO 2250
  195. 2240  HCOLOR= 0
  196. 2250  DRAW I AT X(I),Y(I): NEXT I
  197. 2260  FOR N = 1 TO 1000: NEXT N
  198. 2298  IF  PEEK( -16384) <127  THEN FLAG =  -1 *FLAG: GOTO 2225
  199. 2299  TEXT :FLAG = 0: RETURN 
  200. 2300  REM  
  201. 2305  HOME : PRINT "DI QUALE GIOCATORE VUOI LA SITUAZIONE..": PRINT : PRINT : FOR I = 1 TO PLAYERS: PRINT I;":-  ";NAME$(I): PRINT : NEXT I: GET N$:N =  VAL(N$): IF N <1  OR N >PLAYERS  THEN  RETURN 
  202. 2306  HOME : PRINT "GIOCATORE ";NAME$(N):GA = 1
  203. 2310  PRINT  TAB( 4);"TERRITORI"; TAB( 31);"ESERCITI": FOR I = 1 TO 40: PRINT "=";: NEXT I: PRINT 
  204. 2315  IF N <0  OR N >PLAYERS  THEN 2310
  205. 2320  FOR I = 1 TO 42: IF R(I) = N  THEN  PRINT I; TAB( 8);N$(I); TAB( 18),A(I)
  206. 2330  IF  PEEK( -16384) >127  THEN GA =  -1 *GA: POKE  -16368,0
  207. 2340  SPEED= 64 *(GA +3) -1
  208. 2350  NEXT I
  209. 2399  SPEED= 255: GOTO 70
  210. 2400  REM  
  211. 2405  HOME 
  212. 2410  PRINT "QUALE CONTINENTE?": PRINT : FOR I = 1 TO 6: PRINT I;":   ";CNT$(I): PRINT : NEXT I
  213. 2420  PRINT "(1-6)...": GET N
  214. 2425 N =  INT(N): IF N <0  OR N >6  THEN 2420
  215. 2430  IF N = 1  THEN A = 1:B = 9
  216. 2431  IF N = 2  THEN A = 10:B = 13
  217. 2432  IF N = 3  THEN A = 14:B = 20
  218. 2433  IF N = 4  THEN A = 21:B = 26
  219. 2434  IF N = 5  THEN A = 27:B = 38
  220. 2435  IF N = 6  THEN A = 39:B = 42
  221. 2436  HOME 
  222. 2440  PRINT : PRINT "CONTINENTE:     ";CNT$(N): VTAB (4): PRINT 
  223. 2450  PRINT " TERRITORI"; TAB( 20);"OCCUPANTE"; TAB( 32);"ESERCITI": FOR I = 1 TO 40: PRINT "=";: NEXT I: PRINT 
  224. 2460  FOR I = A TO B: PRINT I; TAB( 4);N$(I); TAB( 20);NAME$(R(I)); TAB( 35);A(I): NEXT I
  225. 2495  PRINT : PRINT 
  226. 2499  GOTO 70
  227. 2500  REM  
  228. 2510 FLAG = 1: GOSUB 2700:FLAG = 0: PRINT  TAB( 10);: FLASH : INPUT "QUALE TERRITORIO";I$:I =  VAL(I$): NORMAL :T1 = I
  229. 2512  IF I <1  OR I >42  THEN  RETURN 
  230. 2515  HOME : PRINT T1;" -- ";N$(T1);" E' OCCUPATO": PRINT "DA ";NAME$(R(T1));" CON ";A(T1);" ESERCITI.": PRINT : PRINT : PRINT "I SEGUENTI TERRITORI POSSONO ES-SERE INVASI DA ";N$(T1);" :-": PRINT 
  231. 2516  PRINT "N."; TAB( 5);"TERRITORI"; TAB( 20);"OCCUPANTE"; TAB( 34);"ESERCITI": FOR N = 1 TO 40: PRINT "+";: NEXT N
  232. 2520 FLAG = 1: FOR T2 = 1 TO 42: GOSUB 100: NEXT T2:FLAG = 0
  233. 2599  GOTO 70
  234. 2600  REM  
  235. 2605  IF AFLAG = 2  THEN  VTAB 12: PRINT  TAB( 4);: FLASH : PRINT "NON HAI ESERCITI DA DISTRIBUIRE": NORMAL : PRINT "<CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G>": FOR N = 1 TO 2000: NEXT N: RETURN 
  236. 2610  IF AFLAG = 1  THEN 2650
  237. 2615 ARMS = 0: FOR I = 1 TO 42: IF R(I) = P  THEN ARMS = ARMS +1
  238. 2620  NEXT I:ARMS =  INT(ARMS/3) +C +EXTRA: IF ARMS <3  THEN ARMS = 3
  239. 2628  HOME 
  240. 2630  PRINT  TAB( 14);"NUOVI ESERCITI.": PRINT : PRINT "DAI TERRITORI........";ARMS -EXTRA -C: PRINT "DAI CONTINENTI.......";C: PRINT "DAL BONUS............";EXTRA: PRINT 
  241. 2650  PRINT : PRINT "HAI ";ARMS;" NUOVI ESERCITI DISPONIBILI.": PRINT : INPUT "QUALE TERRITORIO VUOI RINFORZARE";I$:I =  VAL(I$): IF I = 0  THEN  RETURN 
  242. 2652  IF R(I) < >P  THEN  PRINT N$(I);" E' OCCUPATO DA ";NAME$(R(I)): PRINT "<CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G>": FOR N = 1 TO 1000: NEXT N: GOTO 2650
  243. 2655  PRINT : PRINT "QUANTI RINFORZI VUOI PIAZZARE IN ";N$(I);: INPUT ADD:ARMS = ARMS -ADD: IF ARMS <0  THEN  PRINT :ARMS = ARMS +ADD: PRINT "HAI SOLO ";ARMS;"RINFORZI ": PRINT "DISPONIBILI": GOTO 2655
  244. 2660 A(I) = A(I) +ADD: PRINT : PRINT "TI RIMANGONO ";ARMS;" RINFORZI.": IF ARMS = 0  THEN AFLAG = 2: PRINT : GOTO 70
  245. 2665 AFLAG = 1
  246. 2699  PRINT : PRINT : GOTO 70
  247. 2700  REM ***REGION NUMBER CODES***
  248. 2705  HOME : PRINT  TAB( 10);"NUMERO DI CODICE DEI TERRITORI": FOR I = 1 TO 40: PRINT "=";: NEXT I
  249. 2710  FOR I = 1 TO 21: PRINT I; TAB( 4);N$(I); TAB( 22);I +21; TAB( 25);N$(I +21): NEXT I
  250. 2798  IF FLAG = 1  THEN  RETURN 
  251. 2799  GOTO 70
  252. 2800  REM  
  253. 2805  HOME : PRINT  TAB( 11);: FLASH : PRINT "ATTACCO": NORMAL : PRINT : PRINT : PRINT : INVERSE 
  254. 2810  INPUT "DA QUALE BASE: ";BASE$:BASE =  VAL(BASE$): IF BASE >42  OR BASE = 0  THEN  RETURN 
  255. 2812  IF R(BASE) < >P  THEN  FLASH : PRINT "QUESTA BASE E' OCCUPATA DA ";NAME$(R(BASE)): INVERSE : GOTO 2810
  256. 2815  PRINT : PRINT "HAI ";A(BASE);" ESERCITI IN ": PRINT N$(BASE): IF A(BASE) = 1  THEN  PRINT "FORZE INSUFFICIENTI PER ATTACCARE!!!": PRINT "<CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G>": NORMAL : GOTO 70
  257. 2816  PRINT : INPUT "QUALE TERRITORIO VUOI OCCUPARE";OCC$:OCC =  VAL(OCC$): IF OCC = 0  OR OCC >42  THEN  RETURN 
  258. 2818 T1 = BASE:T2 = OCC: PRINT : GOSUB 100
  259. 2825  IF R(OCC) = P  THEN  PRINT "NON PUOI ATTACCARE LE TUE BASI!!!": PRINT : PRINT "<CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G>": GOTO 2815
  260. 2830  PRINT "": FLASH : PRINT NAME$(R(OCC));" E' SOTTO ATTACCO": INVERSE : PRINT : PRINT NAME$(R(OCC));" HA ";A(OCC): PRINT "DISPONIBILI PERLA DIFESA!"
  261. 2835  PRINT "FORZA DI ATTACCO....(MAX";A(BASE) -1;")";: INPUT L: IF L >A(BASE) -1  THEN  PRINT "NE HAI SOLO ";A(BASE) -1;" DISPONIBILI": PRINT "<CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G>": GOTO 2835
  262. 2840 M = A(OCC):A(BASE) = A(BASE) -L:K = L
  263. 2841  FOR N = 1 TO K:L1 =  INT( RND(1) *6 +1):M1 =  INT( RND(1) *6 +1)
  264. 2842  IF L1 >M1  THEN M = M -1
  265. 2844  IF L1 < = M1  THEN L = L -1
  266. 2845  IF L = 0  THEN  FLASH : PRINT "ATTACCO FALLITO!!!": NORMAL : FOR N = 1 TO 100:S =  PEEK( -16336): NEXT N:A(OCC) = M: PRINT "CI SONO ";M;" IN ";N$(OCC): PRINT : PRINT : PRINT : GOTO 70
  267. 2850  IF M = 0  THEN  FLASH : FOR Q = 1 TO 5: PRINT "ATTACCO RIUSCITO!!!!": NEXT Q: INVERSE :CFLAG = 1
  268. 2851  IF M = 0  THEN  PRINT : PRINT "SOPRAVVISSUTI..";L: PRINT : PRINT N$(OCC);" VIENE           ": PRINT "OCCUPATA DA UNA FORZA DI ";L:A = L
  269. 2853  IF M = 0  THEN  PRINT "QUESTO LASCIA UNA FORZA DI ": PRINT A(BASE) +L -A;" IN ";N$(BASE):A(BASE) = A(BASE) +L -A: GOTO 2860
  270. 2855  NEXT N
  271. 2856  IF M < >0  THEN K = 1: GOTO 2841
  272. 2860 R(OCC) = P:A(OCC) = A
  273. 2898  PRINT : GOTO 70
  274. 2899  RETURN 
  275. 2900  REM  
  276. 2905  HOME : PRINT "VUOI MUOVERE QUALCHE TUO ESERCITO...............(S/N) ": GET AN$: IF AN$ = "N"  THEN 2970
  277. 2906  IF AN$ < >"S"  THEN  RETURN 
  278. 2910  PRINT : INPUT "DA QUALE TERRITORIO.....";I$:T1 =  VAL(I$): IF T1 <1  OR T1 >42  THEN  RETURN 
  279. 2912  PRINT N$(T1): INPUT "VERSO QUALE TERRITORIO..";I$:T2 =  VAL(I$): IF T2 <1  OR T2 >42  THEN  RETURN 
  280. 2913  PRINT N$(T2)
  281. 2915  GOSUB 100
  282. 2920  IF R(T1) < >P  THEN  PRINT T1;":  ";N$(T1);"E' OCCUPATO DA": PRINT NAME$(R(T1)): GOTO 2910
  283. 2925  IF R(T2) < >P  THEN  PRINT T2;":  ";N$(T2);" E' OCCUPATO DA": PRINT NAME$(R(T2)): GOTO 2910
  284. 2928  PRINT "HAI ";A(T1);" FORZE FERME": PRINT "IN "N$(T1)
  285. 2930  INPUT "QUANTE FORZE DESIDERI MUOVERE";N: IF N >A(T1) -1  THEN  PRINT "NE HAI SOLO ";A(T1) -1;" CHE PUOI MUOVERE": PRINT : PRINT "<CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G>": GOTO 2930
  286. 2935 A(T1) = A(T1) -N:A(T2) = A(T2) +N
  287. 2940  PRINT : PRINT "ORA HAI ";A(T2);" ESERCITI FERMI": PRINT "IN ";N$(T2)
  288. 2970  IF CFLAG = 1  THEN J(P) = J(P) +1
  289. 2980 P = P +1: IF P >PLAYERS  THEN P = P -PLAYERS
  290. 2982 T(P) = 0: FOR I = 1 TO 42: IF R(I) = P  THEN T(P) = T(P) +1
  291. 2983  NEXT I: IF T(P) = 0  THEN 2980
  292. 2985  GOSUB 500
  293. 2986  GOSUB 300
  294. 2987  GOSUB 200
  295. 2990 AFLAG = 0:ARMS = 0:CFLAG = 0
  296. 2999  RETURN 
  297. 3000  REM   SAVE STATE
  298. 3001  PRINT : PRINT : PRINT "PREMI RETURN PER CONTINUARE O           UN ALTRO TASTO PER TORNARE AL GIOCO.      ": GET A$: IF  ASC(A$) < >13  THEN 2000
  299. 3002  PRINT : PRINT : INPUT "VUOI IL CATALOGO (S/N) ";A$: IF  LEFT$(A$,1) = "S"  THEN  PRINT "<CTRL-D>CATALOG"
  300. 3003  PRINT : PRINT : INPUT "NOME DEL FILE   : ";A$: PRINT : IF  LEN(A$) = 0  THEN 2000
  301. 3005  PRINT 
  302. 3006  PRINT 
  303. 3010  PRINT "<CTRL-D>OPEN ";A$
  304. 3020  PRINT "<CTRL-D>WRITE ";A$
  305. 3030  FOR I = 1 TO 42: PRINT R(I);",";A(I);",";X(I);",";Y(I);",";N$(I): NEXT I
  306. 3040  PRINT PLAYERS
  307. 3050  FOR I = 1 TO PLAYERS: PRINT T(I);",";J(I);",";U(I);",";NAME$(I): NEXT 
  308. 3060  FOR I = 1 TO 6: PRINT N(I);",";CN$(I): NEXT 
  309. 3070  PRINT X
  310. 3071  PRINT P
  311. 3072  PRINT D
  312. 3073  PRINT N
  313. 3074  PRINT H
  314. 3075  PRINT C
  315. 3076  PRINT A
  316. 3077  PRINT B
  317. 3078  PRINT T
  318. 3079  PRINT S
  319. 3080  PRINT FLAG
  320. 3081  PRINT EXTRA
  321. 3082  PRINT AFLAG
  322. 3090  PRINT "<CTRL-D>CLOSE"
  323. 3091  PRINT : PRINT : INPUT "RITORNO AL GIOCO (S/N) ";A$: IF A$ = "S"  THEN 2000
  324. 3099  PRINT : PRINT  CHR$(4);"RUN APDSK": END 
  325. 3500  REM   RESET STATE
  326. 3502  PRINT : PRINT : INPUT "VUOI IL CATALOGO (S/N) ";A$: IF  LEFT$(A$,1) = "S"  THEN  PRINT "<CTRL-D>CATALOG"
  327. 3503  PRINT : PRINT : INPUT "NOME DEL FILE   : ";A$: PRINT : IF  LEN(A$) = 0  THEN  HOME : GOTO 26
  328. 3505  PRINT 
  329. 3510  PRINT "<CTRL-D>OPEN ";A$
  330. 3520  PRINT "<CTRL-D>READ ";A$
  331. 3530  FOR I = 1 TO 42: INPUT R(I),A(I),X(I),Y(I),N$(I): NEXT I
  332. 3540  INPUT PLAYERS
  333. 3550  FOR I = 1 TO PLAYERS: INPUT T(I),J(I),U(I),NAME$(I): NEXT 
  334. 3560  FOR I = 1 TO 6: INPUT N(I),CN$(I): NEXT 
  335. 3570  INPUT X
  336. 3571  INPUT P
  337. 3572  INPUT D
  338. 3573  INPUT N
  339. 3574  INPUT H
  340. 3575  INPUT C
  341. 3576  INPUT A
  342. 3577  INPUT B
  343. 3578  INPUT T
  344. 3579  INPUT S
  345. 3580  INPUT FLAG
  346. 3581  INPUT EXTRA
  347. 3582  INPUT AFLAG
  348. 3590  PRINT "<CTRL-D>CLOSE"
  349. 3599  GOTO 2000
  350. 10000  REM   *** STRING DATA ***
  351. 10010  DATA "ALASKA","NORD OVEST USA","GREENLAND","ALBERTA","ONTARIO","QUEBEC","U.S.A. OCC.","U.S.A. ORIENT.  ","AMERICA CENTR.  "
  352. 10020  DATA  "VENEZUELA","PERU","BRASILE","ARGENTINA"
  353. 10030  DATA     "ISLANDA","GRAN BRETAGNA","SCANDINAVIA","EUROPA SETT.","EUROPA OCC.","EUROPA MER.","UCRAINA"
  354. 10040  DATA      "AFRICA SETT.","EGITTO","AFRICA ORIENT.","CONGO","AFRICA MERID.","MADAGASCAR"
  355. 10050  DATA   "URALI","SIBERIA","YAKUTSK","KAMCHATKA","IRKUTSK","AFGHANISTAN","CINA","MONGOLIA","GIAPPONE","MEDIO ORIENTE","INDIA","THAILANDIA"
  356. 10060  DATA "INDONESIA","NUOVA GUINEA","AUSTRALIA OCC.","AUSTRALIA OR."
  357. 10065  REM  ***CO-ORDINATE DATA***
  358. 10070  DATA  37,34,38,34,90,19,38,56,59,56,80,69,35,73,63,73,37,93,49,123,48,124,77,123,57,145,125,55,121,78,150,43,152,77,136,88,143,91,155,44
  359. 10080  DATA  129,105,142,108,149,122,140,140,140,142,175,147,189,17,206,15,217,15,249,13,210,43,181,66,198,78,208,73,244,70,161,107,182,100,202,100
  360. 10090  DATA  225,118,231,135,226,150,232,151
  361. 10100  DATA    "NORD AMERICA","SUD AMERICA","EUROPA","AFRICA","ASIA","AUSTRALASIA"
  362. 65535  REM COPYRIGHT APPLEDISK                -1989