4

Civil War BASIC game updated for Microsoft Small Basic in 2010

 2 years ago
source link: https://pastebin.com/5q1B0t2C
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
SHARE
TWEET

Civil War BASIC game updated for Microsoft Small Basic in 2010

Dec 6th, 2020

Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. TextWindow.CursorLeft = 26
  2. TextWindow.WriteLine("CIVIL WAR")
  3. TextWindow.CursorLeft = 15
  4. TextWindow.WriteLine("BIBLEBYTE BOOKS, MAPLE VALLEY, WASHINGTON")
  5. TextWindow.WriteLine("")
  6. TextWindow.WriteLine("")
  7. TextWindow.WriteLine("")
  8. ' ORIGINAL GAME DESIGN
  9. 'CRAM, GOODIE, HIBBARD LEXINGTON H.S.
  10. ' MODIFICATIONS
  11. 'G. PAUL, R. HESS (TIES), 1973
  12. ' UNION INFO ON LIKELY CONFEDERATE STRATEGY
  13. SArray[1]=25
  14. SArray[2]=25
  15. SArray[3]=25
  16. SArray[4]=25
  17. ' HISTORICAL DATA.
  18. CDArray[1] = "BULL RUN"
  19. M1Array[1] = 18000
  20. M2Array[1] = 18500
  21. C1Array[1] = 1967
  22. C2Array[1] = 2708
  23. MArray[1] = 1
  24. CDArray[2] = "SHILOH"
  25. M1Array[2] = 40000
  26. M2Array[2] = 44894
  27. C1Array[2] = 10699
  28. C2Array[2] = 13047
  29. MArray[2] = 3
  30. CDArray[3] = "SEVEN DAYS"
  31. M1Array[3] = 95000
  32. M2Array[3] = 115000
  33. C1Array[3] = 20614
  34. C2Array[3] = 15849
  35. MArray[3] = 3
  36. CDArray[4] = "SECOND BULL RUN"
  37. M1Array[4] = 54000
  38. M2Array[4] = 63000
  39. C1Array[4] = 10000
  40. C2Array[4] = 14000
  41. MArray[4] = 2
  42. CDArray[5] = "ANTIETAM"
  43. M1Array[5] = 40000
  44. M2Array[5] = 50000
  45. C1Array[5] = 10000
  46. C2Array[5] = 12000
  47. MArray[5] = 3
  48. CDArray[6] = "FREDERICKSBURG"
  49. M1Array[6] = 75000
  50. M2Array[6] = 120000
  51. C1Array[6] = 5377
  52. C2Array[6] = 12653
  53. MArray[6] = 1
  54. CDArray[7] = "MURFREESBORO"
  55. M1Array[7] = 38000
  56. M2Array[7] = 45000
  57. C1Array[7] = 11000
  58. C2Array[7] = 12000
  59. MArray[7] = 1
  60. CDArray[8] = "CHANCELLORSVILLE"
  61. M1Array[8] = 32000
  62. M2Array[8] = 90000
  63. C1Array[8] = 13000
  64. C2Array[8] = 17197
  65. MArray[8] = 2
  66. CDArray[9] = "VICKSBURG"
  67. M1Array[9] = 50000
  68. M2Array[9] = 70000
  69. C1Array[9] = 12000
  70. C2Array[9] = 19000
  71. MArray[9] = 1
  72. CDArray[10] = "GETTYSBURG"
  73. M1Array[10] = 72500
  74. M2Array[10] = 85000
  75. C1Array[10] = 20000
  76. C2Array[10] = 23000
  77. MArray[10] = 3
  78. CDArray[11] = "CHICKAMAUGA"
  79. M1Array[11] = 66000
  80. M2Array[11] = 60000
  81. C1Array[11] = 18000
  82. C2Array[11] = 16000
  83. MArray[11] = 2
  84. CDArray[12] = "CHATTANOOGA"
  85. M1Array[12] = 37000
  86. M2Array[12] = 60000
  87. C1Array[12] = 36700
  88. C2Array[12] = 5800
  89. MArray[12] = 2
  90. CDArray[13] = "SPOTSYLVANIA"
  91. M1Array[13] = 62000
  92. M2Array[13] = 110000
  93. C1Array[13] = 17723
  94. C2Array[13] = 18000
  95. MArray[13] = 2
  96. CDArray[14] = "ATLANTA"
  97. M1Array[14] = 65000
  98. M2Array[14] = 100000
  99. C1Array[14] = 8500
  100. C2Array[14] = 3700
  101. MArray[14] = 1
  102. D=Math.GetRandomNumber(999)/1000
  103. TextWindow.WriteLine("")
  104. TextWindow.Write("DO YOU WANT INSTRUCTIONS? ")
  105. LN110:
  106. XD = TextWindow.Read()
  107. If XD="YES" Then
  108. Goto LN160
  109. EndIf
  110. If XD="NO" Then
  111. Goto LN370
  112. EndIf
  113. TextWindow.Write("YES OR NO — ")
  114. Goto LN110
  115. LN160:
  116. TextWindow.WriteLine("")
  117. TextWindow.WriteLine("")
  118. TextWindow.WriteLine("")
  119. TextWindow.WriteLine("")
  120. TextWindow.WriteLine("THIS IS A CIVIL WAR SIMULATION.")
  121. TextWindow.WriteLine("TO PLAY TYPE A RESPONSE WHEN THE COMPUTER ASKS.")
  122. TextWindow.WriteLine("REMEMBER THAT ALL FACTORS ARE INTERRELATED AND THAT YOUR")
  123. TextWindow.WriteLine("RESPONSES COULD CHANGE HISTORY. FACTS AND FIGURES USED ARE")
  124. TextWindow.WriteLine("BASED ON THE ACTUAL OCCURRENCE. MOST BATTLES TEND TO RESULT")
  125. TextWindow.WriteLine("AS THEY DID IN THE CIVIL WAR, BUT IT ALL DEPENDS ON YOU!!")
  126. TextWindow.WriteLine("")
  127. TextWindow.Write("THE OBJECT OF THE GAME IS TO WIN AS MANY BATTLES AS ")
  128. TextWindow.WriteLine("POSSIBLE.")
  129. TextWindow.WriteLine("")
  130. TextWindow.WriteLine("YOUR CHOICES FOR DEFENSIVE STRATEGY ARE:")
  131. TextWindow.WriteLine(" [1] ARTILLERY ATTACK")
  132. TextWindow.WriteLine(" [2] FORTIFICATION AGAINST FRONTAL ATTACK")
  133. TextWindow.WriteLine(" [3] FORTIFICATION AGAINST FLANKING MANEUVERS")
  134. TextWindow.WriteLine(" [4] FALLING BACK")
  135. TextWindow.WriteLine(" YOUR CHOICES FOR OFFENSIVE STRATEGY ARE:")
  136. TextWindow.WriteLine(" [1] ARTILLERY ATTACK")
  137. TextWindow.WriteLine(" [2] FRONTAL ATTACK")
  138. TextWindow.WriteLine(" [3] FLANKING MANEUVERS")
  139. TextWindow.WriteLine(" [4] ENCIRCLEMENT")
  140. TextWindow.WriteLine("YOU MAY SURRENDER BY TYPING A '5’ FOR YOUR STRATEGY.")
  141. LN370:
  142. TextWindow.WriteLine("")
  143. TextWindow.WriteLine("")
  144. TextWindow.WriteLine("")
  145. TextWindow.Write("ARE THERE TWO GENERALS PRESENT ")
  146. LN380:
  147. TextWindow.Write("(ANSWER YES OR NO)? ")
  148. BD = TextWindow.Read()
  149. If BD="YES" Then
  150. Goto LN430
  151. EndIf
  152. If BD <> "NO" Then
  153. Goto LN380
  154. EndIf
  155. TextWindow.WriteLine("")
  156. TextWindow.WriteLine("YOU ARE THE CONFEDERACY. GOOD LUCK!")
  157. TextWindow.WriteLine("")
  158. LN430:
  159. If BD <> "YES" Then
  160. Goto LN460
  161. EndIf
  162. LN460:
  163. TextWindow.WriteLine("SELECT A BATTLE BY TYPING A NUMBER FROM 1 TO 14 ON")
  164. TextWindow.WriteLine("REQUEST. TYPE ANY OTHER NUMBER TO END THE SIMULATION.")
  165. TextWindow.WriteLine("BUT '0’ BRINGS BACK EXACT PREVIOUS BATTLE SITUATION")
  166. TextWindow.WriteLine("ALLOWING YOU TO REPLAY IT")
  167. TextWindow.WriteLine("")
  168. TextWindow.WriteLine("NOTE: A NEGATIVE FOOD ENTRY CAUSES THE PROGRAM TO ")
  169. TextWindow.WriteLine("USE THE ENTRIES FROM THE PREVIOUS BATTLE")
  170. TextWindow.WriteLine("")
  171. TextWindow.Write("DO YOU WISH BATTLE DESCRIPTIONS? ")
  172. LN560:
  173. TextWindow.Write("(ANSWER YES OR NO)? ")
  174. XD = TextWindow.Read()
  175. If XD="YES" Then
  176. Goto LN600
  177. EndIf
  178. If XD <> "NO" Then
  179. Goto LN560
  180. EndIf
  181. LN600:
  182. F[2]=0
  183. H[2]=0
  184. B[2]=0
  185. LN620:
  186. TextWindow.WriteLine("")
  187. TextWindow.WriteLine("")
  188. TextWindow.WriteLine("")
  189. TextWindow.Write("WHICH BATTLE DO YOU WISH TO SIMULATE? ")
  190. A = TextWindow.ReadNumber()
  191. If A <> 0 Then
  192. Goto LN660
  193. EndIf
  194. If R <> 0 Then
  195. Goto LN1140
  196. EndIf
  197. LN660:
  198. If A <=0 Then
  199. Goto LN2860
  200. EndIf
  201. If A >= 15 Then
  202. Goto LN2860
  203. EndIf
  204. CD=CDArray[A]
  205. M1=M1Array[A]
  206. M2=M2Array[A]
  207. C1=C1Array[A]
  208. C2=C2Array[A]
  209. M=MArray[A]
  210. ' INFLATION CALC
  211. I1=10+(L-W)*2
  212. I2=10+(W-L)*2
  213. ' – MONEY AVAILABLE
  214. DArray[1]=100*Math.Floor((M1*(100-I1)/2000)*(1+(R1-Q1)/(R1+1))+.5)
  215. DArray[2]=100*Math.Floor(M2*(100-I2)/2000+.5)
  216. If BD <> "YES" Then
  217. Goto LN1050
  218. EndIf
  219. DArray[2]=100*Math.Floor((M2*(100-I2)/2000)*(1+(R2-Q2)/(R2+1))+.5)
  220. LN1050:
  221. ' – MEN AVAILABLE
  222. M5=Math.Floor(M1*(1+(P1-T1)/(M3+1)))
  223. M6=Math.Floor(M2*(1+(P2-T2)/(M4+1)))
  224. F1=5*M1/6
  225. TextWindow.WriteLine("")
  226. TextWindow.WriteLine("")
  227. TextWindow.WriteLine("")
  228. TextWindow.WriteLine("")
  229. TextWindow.WriteLine("")
  230. TextWindow.WriteLine("THIS IS THE BATTLE OF "+CD)
  231. If XD="NO" Then
  232. Goto LN1150
  233. EndIf
  234. If A>11 Then
  235. Goto LN1130
  236. EndIf
  237. If (A = 1) Then
  238. Goto LN3580
  239. ElseIf (A = 2) Then
  240. Goto LN3620
  241. ElseIf (A = 3) Then
  242. Goto LN3650
  243. ElseIf (A = 4) Then
  244. Goto LN3690
  245. ElseIf (A = 5) Then
  246. Goto LN3720
  247. ElseIf (A = 6) Then
  248. Goto LN3750
  249. ElseIf (A = 7) Then
  250. Goto LN3780
  251. ElseIf (A = 8) Then
  252. Goto LN3800
  253. ElseIf (A = 9) Then
  254. Goto LN3830
  255. ElseIf (A = 10) Then
  256. Goto LN3860
  257. ElseIf (A = 11) Then
  258. Goto LN3890
  259. EndIf
  260. LN1130:
  261. If (A-11 = 1) Then
  262. Goto LN3920
  263. ElseIf (A-11 = 2) Then
  264. Goto LN3950
  265. ElseIf (A-11 = 3) Then
  266. Goto LN3980
  267. EndIf
  268. LN1140:
  269. TextWindow.WriteLine(CD+" INSTANT REPLAY")
  270. LN1150:
  271. TextWindow.WriteLine("")
  272. TextWindow.WriteLine(" CONFEDERACY UNION")
  273. TextWindow.WriteLine("MEN "+M5+" "+M6)
  274. TextWindow.WriteLine("MONEY "+"$"+DArray[1]+" $"+DArray[2])
  275. TextWindow.WriteLine("INFLATION "+(I1+15)+"%"+" "+I2+"%")
  276. TextWindow.WriteLine("")
  277. 'ONLY IN PRINTOUT IS CONFED INFLATION = I1+15%)
  278. ' – IF TWO GENERALS, INPUT CONFED. FIRST
  279. For I=1 To D
  280. If BD <> "YES" Then
  281. Goto LN1260
  282. EndIf
  283. If I=2 Then
  284. Goto LN1260
  285. EndIf
  286. TextWindow.Write("CONFEDERATE GENERAL—")
  287. LN1260:
  288. TextWindow.WriteLine("HOW MUCH DO YOU WISH TO SPEND FOR")
  289. LN1270:
  290. TextWindow.Write(" – FOOD……? ")
  291. F = TextWindow.ReadNumber()
  292. If F >= 0 Then
  293. Goto LN1360
  294. EndIf
  295. If R1 <> 0 Then
  296. Goto LN1330
  297. EndIf
  298. TextWindow.WriteLine("NO PREVIOUS ENTRIES")
  299. Goto LN1270
  300. LN1330:
  301. TextWindow.WriteLine("ASSUME YOU WANT TO KEEP SAME ALLOCATIONS")
  302. TextWindow.WriteLine("")
  303. Goto LN1510
  304. LN1360:
  305. FArray[I]=F
  306. LN1370:
  307. TextWindow.Write(" – SALARIES..? ")
  308. HArray[I] = TextWindow.ReadNumber()
  309. If HArray[I]<0 Then
  310. Goto LN1490
  311. EndIf
  312. LN1410:
  313. TextWindow.Write(" – AMMUNITION? ")
  314. BArray[I] = TextWindow.ReadNumber()
  315. If BArray[I]<0 Then
  316. Goto LN1490
  317. EndIf
  318. TextWindow.WriteLine("")
  319. If FArray[I]+HArray[I]+BArray[I] <= DArray[I] Then
  320. Goto LN1510
  321. EndIf
  322. TextWindow.WriteLine("THINK AGAIN! YOU HAVE ONLY $"+DArray[I])
  323. Goto LN1270
  324. LN1490:
  325. TextWindow.WriteLine("NEGATIVE VALUES NOT ALLOWED.")
  326. If (N = 1) Then
  327. Goto LN1370
  328. ElseIf (N = 2) Then
  329. Goto LN1410
  330. EndIf
  331. LN1510:
  332. If BD <> "YES" Then
  333. Goto LN1550
  334. EndIf
  335. If I=2 Then
  336. Goto LN1550
  337. EndIf
  338. TextWindow.Write("UNION GENERAL—")
  339. EndFor
  340. LN1550:
  341. For Z=1 To D
  342. If BD <> "YES" Then
  343. Goto LN1620
  344. EndIf
  345. If (Z = 1) Then
  346. Goto LN1580
  347. ElseIf (Z = 2) Then
  348. Goto LN1600
  349. EndIf
  350. LN1580:
  351. TextWindow.Write("CONFEDERATE ")
  352. Goto LN1620
  353. LN1600:
  354. TextWindow.Write(" UNION ")
  355. ' – FIND MORALE
  356. LN1620:
  357. O=((2*FArray[Z]*FArray[Z]+HArray[Z]*HArray[z])/(F1*F1)+1)
  358. If O<10 Then
  359. Goto LN1660
  360. EndIf
  361. TextWindow.WriteLine("MORALE IS HIGH")
  362. Goto LN1700
  363. LN1660:
  364. If O<5 Then
  365. Goto LN1690
  366. EndIf
  367. TextWindow.WriteLine("MORALE IS FAIR")
  368. Goto LN1700
  369. LN1690:
  370. TextWindow.WriteLine("MORALE IS POOR")
  371. LN1700:
  372. If BD <> "YES" Then
  373. Goto LN1760
  374. EndIf
  375. OArray[Z]=O
  376. EndFor
  377. O2=OArray[2]
  378. O=OArray[1]
  379. TextWindow.Write("CONFEDERATE GENERAL—")
  380. LN1760:
  381. ' – ACTUAL OFF/DEF BATTLE SITUATION
  382. If M <> 3 Then
  383. Goto LN1800
  384. EndIf
  385. TextWindow.WriteLine("YOU ARE ON THE OFFENSIVE")
  386. Goto LN1840
  387. LN1800:
  388. If M <> 1 Then
  389. Goto LN1830
  390. EndIf
  391. TextWindow.WriteLine("YOU ARE ON THE DEFENSIVE")
  392. Goto LN1840
  393. LN1830:
  394. TextWindow.WriteLine("BOTH SIDES ARE ON THE OFFENSIVE ")
  395. LN1840:
  396. TextWindow.WriteLine("")
  397. ' – CHOOSE STRATEGIES
  398. If BD <> "YES" Then
  399. Goto LN1910
  400. EndIf
  401. For I=1 To 2
  402. If (I = 1) Then
  403. Goto LN1890
  404. ElseIf (I = 2) Then
  405. Goto LN1920
  406. EndIf
  407. LN1890:
  408. TextWindow.Write("CONFEDERATE STRATEGY? ")
  409. Goto LN1920
  410. LN1910:
  411. TextWindow.Write("YOUR STRATEGY? ")
  412. LN1920:
  413. Y = TextWindow.ReadNumber()
  414. If Math.Abs(Y-3)<3 Then
  415. Goto LN1960
  416. EndIf
  417. TextWindow.WriteLine("STRATEGY "+Y+" NOT ALLOWED.")
  418. Goto LN1910
  419. LN1960:
  420. If BD="YES" Then
  421. Goto LN2000
  422. EndIf
  423. If Y=5 Then
  424. Goto LN2830
  425. EndIf
  426. Sub3110()
  427. Goto LN2170
  428. LN2000:
  429. If I=2 Then
  430. Goto LN2040
  431. EndIf
  432. LN2020:
  433. TextWindow.Write("UNION STRATEGY? ")
  434. EndFor
  435. LN2040:
  436. If Y2=5 Then
  437. Goto LN2020
  438. EndIf
  439. 'SIMULATED LOSSES-NORTH
  440. C6=(2*C2/5)*(1+1/(2*(Math.Abs(Y2-Y)+1)))
  441. C6=C6*(1.28+(5*M2/6)/(B[2]+1))
  442. C6=Math.Floor(C6*(1+1/O2)+.5)
  443. ' – IF LOSS > MEN PRESENT, RESCALE LOSSES
  444. E2=100/O2
  445. If Math.Floor(C6+E2)Then
  446. Goto LN2190
  447. EndIf
  448. C6=Math.Floor(13*M6/20)
  449. E2=7*C6/13
  450. LN2170:
  451. ' – CALCULATE SIMULATED LOSSES
  452. TextWindow.WriteLine("")
  453. LN2190:
  454. TextWindow.WriteLine("")
  455. TextWindow.WriteLine("")
  456. TextWindow.WriteLine(" CONFEDERACY UNION")
  457. C5=(2*C1/5)*(1+1/(2*(Math.Abs(Y2-Y)+1)))
  458. C5=Math.Floor(C5*(1+1/O)*(1.28+F1/(BArray[1]+1))+.5)
  459. E=100/O
  460. If C5+100/OThen
  461. Goto LN2270
  462. EndIf
  463. C5=Math.Floor(13*M1/20*(1+(P1-T1)/(M3+1)))
  464. E=7*C5/13
  465. LN2270:
  466. If D=1 Then
  467. Goto LN2500
  468. EndIf
  469. LN2280:
  470. TextWindow.WriteLine(Text.Append("CASUALTIES ",C5)+" "+C6)
  471. TextWindow.WriteLine(Text.Append("DESERTIONS ",Math.Floor(E))+" "+Math.floor(E2))
  472. TextWindow.WriteLine("")
  473. If BD <> "YES" Then
  474. Goto LN2350
  475. EndIf
  476. TextWindow.WriteLine("COMPARED TO THE ACTUAL CASUALTIES AT "+CD)
  477. TextWindow.WriteLine("CONFEDERATE: "+Math.Floor(100*(C5/C1)+.5)+"% OF THE ORIGINAL")
  478. TextWindow.WriteLine("UNION: "+Math.Floor(100*(C6/C2)+.5)+"% OF THE ORIGINAL")
  479. LN2350:
  480. TextWindow.WriteLine("")
  481. ' – 1 WHO ONE
  482. If U <> 1 Then
  483. Goto LN2380
  484. EndIf
  485. If U2=1 Then
  486. Goto LN2460
  487. EndIf
  488. LN2380:
  489. If U=1 Then
  490. Goto LN2420
  491. EndIf
  492. If U2=1 Then
  493. Goto LN2440
  494. EndIf
  495. If C5+E=C6+E2 Then
  496. Goto LN2460
  497. EndIf
  498. If C5+EThen
  499. Goto LN2440
  500. EndIf
  501. LN2420:
  502. TextWindow.WriteLine("THE UNION WINS "+CD)
  503. Goto LN2600
  504. LN2440:
  505. TextWindow.WriteLine("THE CONFEDERACY WINS "+CD)
  506. Goto LN2660
  507. LN2460:
  508. TextWindow.WriteLine("BATTLE OUTCOME UNRESOLVED")
  509. W0=W0+1
  510. If A=0 Then
  511. Goto LN2790
  512. EndIf
  513. Goto LN2680
  514. LN2500:
  515. C6=Math.Floor(17*C2*C1/(C5*20))
  516. E2=5*O
  517. Goto LN2280
  518. TextWindow.WriteLine("YOUR CASUALTIES WERE "+math.floor(100*(C5/C1)+.5)+"% OF ")
  519. TextWindow.WriteLine("THE ACTUAL CASUALTIES AT "+CD)
  520. TextWindow.WriteLine("")
  521. ' – FIND WHO WON
  522. If U=1 Then
  523. Goto LN2590
  524. EndIf
  525. If C5+E<17*C2*C1/(C5*20)+5*O Then
  526. Goto LN2630
  527. EndIf
  528. LN2590:
  529. TextWindow.WriteLine("YOU LOSE "+CD)
  530. LN2600:
  531. If A=0 Then
  532. Goto LN2790
  533. EndIf
  534. L=L+1
  535. Goto LN2680
  536. LN2630:
  537. TextWindow.WriteLine("YOU WIN "+CD)
  538. ' – CUMULATIVE BATTLE FACTORS WHICH ALTER HISTORICAL
  539. ' RESOURCES AVAILABLE.IF A REPLAY DON’T UPDATE.
  540. LN2660:
  541. If A=0 Then
  542. Goto LN2790
  543. EndIf
  544. W=W+1
  545. LN2680:
  546. T1=T1+C5+E
  547. T2=T2+C6+E2
  548. P1=P1+C1
  549. P2=P2+C2
  550. Q1=Q1+(F[1]+H[1]+B[1])
  551. Q2=Q2+(F[2]+H[2]+B[2])
  552. R1=R1+M1*(100-I1)/20
  553. R2=R2+M2*(100-I2)/20
  554. M3=M3+M1
  555. M4=M4+M2
  556. Sub3300()
  557. LN2790:
  558. TextWindow.WriteLine("—————")
  559. Goto LN620
  560. ' ——FINISH OFF
  561. LN2830:
  562. TextWindow.WriteLine("THE CONFEDERACY HAS SURRENDERED")
  563. Goto LN2860
  564. TextWindow.WriteLine("THE UNION HAS SURRENDERED.")
  565. LN2860:
  566. TextWindow.WriteLine("")
  567. TextWindow.WriteLine("")
  568. TextWindow.WriteLine("")
  569. TextWindow.WriteLine("")
  570. TextWindow.WriteLine("")
  571. TextWindow.WriteLine("")
  572. TextWindow.Write("THE CONFEDERACY ")
  573. TextWindow.WriteLine("HAS WON "+W+" BATTLES AND LOST "+L)
  574. If Y=5 Then
  575. Goto LN2940
  576. EndIf
  577. If Y2=5 Then
  578. Goto LN2920
  579. EndIf
  580. If W <= L Then
  581. Goto LN2940
  582. EndIf
  583. If Y=5 Then
  584. Goto LN2940
  585. EndIf
  586. LN2920:
  587. TextWindow.WriteLine("THE CONFEDERACY HAS WON THE WAR")
  588. Goto LN2950
  589. LN2940:
  590. TextWindow.WriteLine("THE UNION HAS WON THE WAR")
  591. LN2950:
  592. TextWindow.WriteLine("")
  593. If R1=0 Then
  594. Goto LN3100
  595. EndIf
  596. TextWindow.WriteLine("FOR THE "+(W+L+W0)+" BATTLES FOUGHT (EXCUDING RERUNS)")
  597. TextWindow.Write(" ")
  598. TextWindow.WriteLine(" CONFEDERACY UNION")
  599. TextWindow.WriteLine(Text.Append("HISTORICAL LOSSES ", Math.floor(P1+.5))+" "+Math.floor(P2+.5))
  600. TextWindow.WriteLine(Text.Append("SIMULATED LOSSES ",Math.floor(T1+.5))+" "+Math.Floor(T2+.5))
  601. TextWindow.WriteLine("")
  602. TextWindow.WriteLine(Text.Append("% OF ORIGINAL ",math.floor(100*(T1/P1)+.5))+" "+Math.floor(100*(T2/P2)+.5))
  603. If BD="YES" Then
  604. Goto LN3100
  605. EndIf
  606. TextWindow.WriteLine("")
  607. TextWindow.WriteLine("UNION INTELLIGENCE SUGGESTS THAT THE SOUTH USED ")
  608. TextWindow.WriteLine("STRATEGIES 1, 2, 3, 4 IN THE FOLLOWING PERCENTAGES")
  609. TextWindow.WriteLine(" 1 – " + SArray[1])
  610. TextWindow.WriteLine(" 2 – " + SArray[2])
  611. TextWindow.WriteLine(" 3 – " + SArray[3])
  612. TextWindow.WriteLine(" 4 – " + SArray[4])
  613. ' ———————————
  614. LN3100:
  615. TextWindow.Write("Press ENTER to Stop")
  616. JJJ = TextWindow.Read()
  617. Program.End()
  618. Sub Sub3110
  619. ' – UNION STRATEGY IS COMPUTER CHOSEN
  620. TextWindow.Write("UNION STRATEGY IS ")
  621. If A <> 0 Then
  622. Goto LN3180
  623. EndIf
  624. LN3140:
  625. Y2 = TextWindow.ReadNumber()
  626. If Y2 <=0 Then
  627. Goto LN3160
  628. EndIf
  629. If Y2<5 Then
  630. Goto LN3290
  631. EndIf
  632. LN3160:
  633. TextWindow.WriteLine("ENTER 1 , 2 ,3 , OR 4 (USUALLY PREVIOUS UNION STRATEGY)")
  634. Goto LN3140
  635. LN3180:
  636. R=100*Math.GetRandomNumber(999)/1000
  637. For I=1 To 4
  638. S0=S0+SArray[I]
  639. ' – IF ACTUAL STRATEGY INFO IS IN PROGRAM DATA STATEMENTS
  640. ' THEN R-100 IS EXTRA WEIGHT GIVEN TO THAT STATEGY.
  641. If RThen
  642. Goto LN3270
  643. EndIf
  644. EndFor
  645. ' – IF ACTUAL STRAT. IN,THEN HERE IS Y2= HIST. STRAT.
  646. LN3270:
  647. TextWindow.WriteLine(Y2)
  648. LN3290:
  649. EndSub
  650. Sub Sub3300
  651. ' LEARN PRESENT STRATEGY, START FORGETTING OLD ONES
  652. ' – PRESENT STRATEGY OF SOUTH GAINS 3*S, OTHERS LOSE S
  653. ' PROBABILITY POINTS, UNLESS A STRATEGY FALLS BELOW 5%.
  654. For I=1 To 4
  655. If SArray[I] <= 5 Then
  656. Goto LN3390
  657. EndIf
  658. SArray[I]=SArray[I]-S
  659. S0=S0+S
  660. LN3390:
  661. EndFor
  662. SArray[Y]=SArray[Y]+S0
  663. EndSub
  664. LN3580:
  665. TextWindow.WriteLine("JULY 21, 1861. GEN. BEAUREGARD, COMMANDING THE SOUTH, MET")
  666. TextWindow.WriteLine("UNION FORCES WITH GEN. MCDOWELL IN A PREMATURE BATTLE AT")
  667. TextWindow.WriteLine("BULL RUN. GEN. JACKSON HELPED PUSH BACK THE UNION ATTACK.")
  668. Goto LN1150
  669. LN3620:
  670. TextWindow.WriteLine("APRIL 6-7, 1862. THE CONFEDERATE SURPRISE ATTACK AT")
  671. TextWindow.WriteLine("SHILOH FAILED DUE TO POOR ORGANIZATION.")
  672. Goto LN1150
  673. LN3650:
  674. TextWindow.WriteLine("JUNE 25-JULY 1, 1862. GENERAL LEE (CSA) UPHELD THE")
  675. TextWindow.WriteLine("OFFENSIVE THROUGHOUT THE BATTLE AND FORCED GEN. MCCLELLAN")
  676. TextWindow.WriteLine("AND THE UNION FORCES AWAY FROM RICHMOND.")
  677. Goto LN1150
  678. LN3690:
  679. TextWindow.Write("AUG 29-30, 1862. THE COMBINED CONFEDERATE FORCES UNDER")
  680. TextWindow.WriteLine(" LEE")
  681. TextWindow.WriteLine("AND JACKSON DROVE THE UNION FORCES BACK INTO WASHINGTON.")
  682. Goto LN1150
  683. LN3720:
  684. TextWindow.WriteLine("SEPT 17, 1862. THE SOUTH FAILED TO INCORPORATE MARYLAND")
  685. TextWindow.WriteLine("INTO THE CONFEDERACY.")
  686. Goto LN1150
  687. LN3750:
  688. TextWindow.WriteLine("DEC 13, 1862. THE CONFEDERACY UNDER LEE SUCCESSFULLY")
  689. TextWindow.WriteLine("REPULSED AN ATTACK BY THE UNION UNDER GEN. BURNSIDE.")
  690. Goto LN1150
  691. LN3780:
  692. TextWindow.Write("DEC 31, 1862. THE SOUTH UNDER GEN. BRAGG WON A CLOSE ")
  693. TextWindow.WriteLine("BATTLE.")
  694. Goto LN1150
  695. LN3800:
  696. TextWindow.WriteLine("MAY 1-6, 1863. THE SOUTH HAD A COSTLY VICTORY AND LOST")
  697. TextWindow.WriteLine("ONE OF THEIR OUTSTANDING GENERALS, 'STONEWALL’ JACKSON.")
  698. Goto LN1150
  699. LN3830:
  700. TextWindow.WriteLine("JULY 4, 1863. VICKSBURG WAS A COSTLY DEFEAT FOR THE SOUTH")
  701. TextWindow.WriteLine("BECAUSE IT GAVE THE UNION ACCESS TO THE MISSISSIPPI.")
  702. Goto LN1150
  703. LN3860:
  704. TextWindow.Write("JULY 1-3, 1863. A SOUTHERN MISTAKE BY GEN. LEE AT ")
  705. TextWindow.WriteLine("GETTYSBURG")
  706. TextWindow.WriteLine("COST THEM ONE OF THE MOST CRUCIAL BATTLES OF THE WAR.")
  707. Goto LN1150
  708. LN3890:
  709. TextWindow.WriteLine("SEPT. 15, 1863. CONFUSION IN A FOREST NEAR CHICKAMAUGA LED")
  710. TextWindow.WriteLine("TO A COSTLY SOUTHERN VICTORY.")
  711. Goto LN1150
  712. LN3920:
  713. TextWindow.WriteLine("NOV. 25, 1863. AFTER THE SOUTH HAD SIEGED GEN. ROSENCRANS'")
  714. TextWindow.WriteLine("ARMY FOR THREE MONTHS, GEN. GRANT BROKE THE SIEGE.")
  715. Goto LN1150
  716. LN3950:
  717. TextWindow.WriteLine("MAY 5, 1864. GRANT’S PLAN TO KEEP LEE ISOLATED BEGAN TO")
  718. TextWindow.WriteLine("FAIL HERE, AND CONTINUED AT COLD HARBOR AND PETERSBURG.")
  719. Goto LN1150
  720. LN3980:
  721. TextWindow.WriteLine("AUGUST, 1864. SHERMAN AND THREE VETERAN ARMIES CONVERGED")
  722. TextWindow.WriteLine("ON ATLANTA AND DEALT THE DEATH BLOW TO THE CONFEDERACY.")
  723. Goto LN1150

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK