Civil War
This simulation is based on 14 battles in the Civil War. Facts and figures used are based on the actual occurrence. If you follow the same strategy used in the actual battle, the results will be the same. Generally, this is good strategy since the generals in the Civil War were fairly good military strategists. However, you can frequently outperform the Civil War generals, particularly in cases where they did not have good enemy intelligence and consequently followed a poor course of action.
Naturally, it helps to know your civil war history, although the computer gives you the rudiments. After each of the 14 battles, your casualties are compared to the actual casualties of the battle, and you are told whether you win or lose the battle.
You may play Civil War alone in which case the program simulates the Union general. Or two players may play in which case, the computer becomes the moderator.
Civil War was written in 1968 by three Students at Lexington High School, Massachusetts: L Cram, L. Goodie, and D. Hibbard. It was modified into a 2-player game by G. Paul and R. Hess of TIES, St. Paul, Minnesota. It was ported to Microsoft Small Basic by Philip Conrod in 2010.
TextWindow.CursorLeft = 26
TextWindow.WriteLine(“CIVIL WAR”)
TextWindow.CursorLeft = 15
TextWindow.WriteLine(“BIBLEBYTE BOOKS, MAPLE VALLEY, WASHINGTON”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
‘ ORIGINAL GAME DESIGN
‘CRAM, GOODIE, HIBBARD LEXINGTON H.S.
‘ MODIFICATIONS
‘G. PAUL, R. HESS (TIES), 1973
‘ UNION INFO ON LIKELY CONFEDERATE STRATEGY
SArray[1]=25
SArray[2]=25
SArray[3]=25
SArray[4]=25
‘ HISTORICAL DATA.
CDArray[1] = “BULL RUN”
M1Array[1] = 18000
M2Array[1] = 18500
C1Array[1] = 1967
C2Array[1] = 2708
MArray[1] = 1
CDArray[2] = “SHILOH”
M1Array[2] = 40000
M2Array[2] = 44894
C1Array[2] = 10699
C2Array[2] = 13047
MArray[2] = 3
CDArray[3] = “SEVEN DAYS”
M1Array[3] = 95000
M2Array[3] = 115000
C1Array[3] = 20614
C2Array[3] = 15849
MArray[3] = 3
CDArray[4] = “SECOND BULL RUN”
M1Array[4] = 54000
M2Array[4] = 63000
C1Array[4] = 10000
C2Array[4] = 14000
MArray[4] = 2
CDArray[5] = “ANTIETAM”
M1Array[5] = 40000
M2Array[5] = 50000
C1Array[5] = 10000
C2Array[5] = 12000
MArray[5] = 3
CDArray[6] = “FREDERICKSBURG”
M1Array[6] = 75000
M2Array[6] = 120000
C1Array[6] = 5377
C2Array[6] = 12653
MArray[6] = 1
CDArray[7] = “MURFREESBORO”
M1Array[7] = 38000
M2Array[7] = 45000
C1Array[7] = 11000
C2Array[7] = 12000
MArray[7] = 1
CDArray[8] = “CHANCELLORSVILLE”
M1Array[8] = 32000
M2Array[8] = 90000
C1Array[8] = 13000
C2Array[8] = 17197
MArray[8] = 2
CDArray[9] = “VICKSBURG”
M1Array[9] = 50000
M2Array[9] = 70000
C1Array[9] = 12000
C2Array[9] = 19000
MArray[9] = 1
CDArray[10] = “GETTYSBURG”
M1Array[10] = 72500
M2Array[10] = 85000
C1Array[10] = 20000
C2Array[10] = 23000
MArray[10] = 3
CDArray[11] = “CHICKAMAUGA”
M1Array[11] = 66000
M2Array[11] = 60000
C1Array[11] = 18000
C2Array[11] = 16000
MArray[11] = 2
CDArray[12] = “CHATTANOOGA”
M1Array[12] = 37000
M2Array[12] = 60000
C1Array[12] = 36700
C2Array[12] = 5800
MArray[12] = 2
CDArray[13] = “SPOTSYLVANIA”
M1Array[13] = 62000
M2Array[13] = 110000
C1Array[13] = 17723
C2Array[13] = 18000
MArray[13] = 2
CDArray[14] = “ATLANTA”
M1Array[14] = 65000
M2Array[14] = 100000
C1Array[14] = 8500
C2Array[14] = 3700
MArray[14] = 1
D=Math.GetRandomNumber(999)/1000
TextWindow.WriteLine(“”)
TextWindow.Write(“DO YOU WANT INSTRUCTIONS? “)
LN110:
XD = TextWindow.Read()
If XD=”YES” Then
Goto LN160
EndIf
If XD=”NO” Then
Goto LN370
EndIf
TextWindow.Write(“YES OR NO — “)
Goto LN110
LN160:
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“THIS IS A CIVIL WAR SIMULATION.”)
TextWindow.WriteLine(“TO PLAY TYPE A RESPONSE WHEN THE COMPUTER ASKS.”)
TextWindow.WriteLine(“REMEMBER THAT ALL FACTORS ARE INTERRELATED AND THAT YOUR”)
TextWindow.WriteLine(“RESPONSES COULD CHANGE HISTORY. FACTS AND FIGURES USED ARE”)
TextWindow.WriteLine(“BASED ON THE ACTUAL OCCURRENCE. MOST BATTLES TEND TO RESULT”)
TextWindow.WriteLine(“AS THEY DID IN THE CIVIL WAR, BUT IT ALL DEPENDS ON YOU!!”)
TextWindow.WriteLine(“”)
TextWindow.Write(“THE OBJECT OF THE GAME IS TO WIN AS MANY BATTLES AS “)
TextWindow.WriteLine(“POSSIBLE.”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“YOUR CHOICES FOR DEFENSIVE STRATEGY ARE:”)
TextWindow.WriteLine(” [1] ARTILLERY ATTACK”)
TextWindow.WriteLine(” [2] FORTIFICATION AGAINST FRONTAL ATTACK”)
TextWindow.WriteLine(” [3] FORTIFICATION AGAINST FLANKING MANEUVERS”)
TextWindow.WriteLine(” [4] FALLING BACK”)
TextWindow.WriteLine(” YOUR CHOICES FOR OFFENSIVE STRATEGY ARE:”)
TextWindow.WriteLine(” [1] ARTILLERY ATTACK”)
TextWindow.WriteLine(” [2] FRONTAL ATTACK”)
TextWindow.WriteLine(” [3] FLANKING MANEUVERS”)
TextWindow.WriteLine(” [4] ENCIRCLEMENT”)
TextWindow.WriteLine(“YOU MAY SURRENDER BY TYPING A ‘5’ FOR YOUR STRATEGY.”)
LN370:
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.Write(“ARE THERE TWO GENERALS PRESENT “)
LN380:
TextWindow.Write(“(ANSWER YES OR NO)? “)
BD = TextWindow.Read()
If BD=”YES” Then
Goto LN430
EndIf
If BD <> “NO” Then
Goto LN380
EndIf
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“YOU ARE THE CONFEDERACY. GOOD LUCK!”)
TextWindow.WriteLine(“”)
LN430:
D=1
If BD <> “YES” Then
Goto LN460
EndIf
D=2
LN460:
TextWindow.WriteLine(“SELECT A BATTLE BY TYPING A NUMBER FROM 1 TO 14 ON”)
TextWindow.WriteLine(“REQUEST. TYPE ANY OTHER NUMBER TO END THE SIMULATION.”)
TextWindow.WriteLine(“BUT ‘0’ BRINGS BACK EXACT PREVIOUS BATTLE SITUATION”)
TextWindow.WriteLine(“ALLOWING YOU TO REPLAY IT”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“NOTE: A NEGATIVE FOOD ENTRY CAUSES THE PROGRAM TO “)
TextWindow.WriteLine(“USE THE ENTRIES FROM THE PREVIOUS BATTLE”)
TextWindow.WriteLine(“”)
TextWindow.Write(“DO YOU WISH BATTLE DESCRIPTIONS? “)
LN560:
TextWindow.Write(“(ANSWER YES OR NO)? “)
XD = TextWindow.Read()
If XD=”YES” Then
Goto LN600
EndIf
If XD <> “NO” Then
Goto LN560
EndIf
LN600:
L=0
W=0
R1=0
Q1=0
M3=0
M4=0
P1=0
P2=0
T1=0
T2=0
F[2]=0
H[2]=0
B[2]=0
R2=0
Q2=0
C6=0
F=0
W0=0
Y=0
Y2=0
U=0
U2=0
LN620:
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.Write(“WHICH BATTLE DO YOU WISH TO SIMULATE? “)
A = TextWindow.ReadNumber()
If A <> 0 Then
Goto LN660
EndIf
If R <> 0 Then
Goto LN1140
EndIf
LN660:
If A <=0 Then
Goto LN2860
EndIf
If A >= 15 Then
Goto LN2860
EndIf
CD=CDArray[A]
M1=M1Array[A]
M2=M2Array[A]
C1=C1Array[A]
C2=C2Array[A]
M=MArray[A]
U=0
‘ INFLATION CALC
I1=10+(L-W)*2
I2=10+(W-L)*2
‘ – MONEY AVAILABLE
DArray[1]=100*Math.Floor((M1*(100-I1)/2000)*(1+(R1-Q1)/(R1+1))+.5)
DArray[2]=100*Math.Floor(M2*(100-I2)/2000+.5)
If BD <> “YES” Then
Goto LN1050
EndIf
DArray[2]=100*Math.Floor((M2*(100-I2)/2000)*(1+(R2-Q2)/(R2+1))+.5)
LN1050:
‘ – MEN AVAILABLE
M5=Math.Floor(M1*(1+(P1-T1)/(M3+1)))
M6=Math.Floor(M2*(1+(P2-T2)/(M4+1)))
F1=5*M1/6
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“THIS IS THE BATTLE OF “+CD)
If XD=”NO” Then
Goto LN1150
EndIf
If A>11 Then
Goto LN1130
EndIf
If (A = 1) Then
Goto LN3580
ElseIf (A = 2) Then
Goto LN3620
ElseIf (A = 3) Then
Goto LN3650
ElseIf (A = 4) Then
Goto LN3690
ElseIf (A = 5) Then
Goto LN3720
ElseIf (A = 6) Then
Goto LN3750
ElseIf (A = 7) Then
Goto LN3780
ElseIf (A = 8) Then
Goto LN3800
ElseIf (A = 9) Then
Goto LN3830
ElseIf (A = 10) Then
Goto LN3860
ElseIf (A = 11) Then
Goto LN3890
EndIf
LN1130:
If (A-11 = 1) Then
Goto LN3920
ElseIf (A-11 = 2) Then
Goto LN3950
ElseIf (A-11 = 3) Then
Goto LN3980
EndIf
LN1140:
TextWindow.WriteLine(CD+” INSTANT REPLAY”)
LN1150:
TextWindow.WriteLine(“”)
TextWindow.WriteLine(” CONFEDERACY UNION”)
TextWindow.WriteLine(“MEN “+M5+” “+M6)
TextWindow.WriteLine(“MONEY “+”$”+DArray[1]+” $”+DArray[2])
TextWindow.WriteLine(“INFLATION “+(I1+15)+”%”+” “+I2+”%”)
TextWindow.WriteLine(“”)
‘ONLY IN PRINTOUT IS CONFED INFLATION = I1+15%)
‘ – IF TWO GENERALS, INPUT CONFED. FIRST
For I=1 To D
If BD <> “YES” Then
Goto LN1260
EndIf
If I=2 Then
Goto LN1260
EndIf
TextWindow.Write(“CONFEDERATE GENERAL—“)
LN1260:
TextWindow.WriteLine(“HOW MUCH DO YOU WISH TO SPEND FOR”)
LN1270:
TextWindow.Write(” – FOOD……? “)
F = TextWindow.ReadNumber()
If F >= 0 Then
Goto LN1360
EndIf
If R1 <> 0 Then
Goto LN1330
EndIf
TextWindow.WriteLine(“NO PREVIOUS ENTRIES”)
Goto LN1270
LN1330:
TextWindow.WriteLine(“ASSUME YOU WANT TO KEEP SAME ALLOCATIONS”)
TextWindow.WriteLine(“”)
Goto LN1510
LN1360:
FArray[I]=F
LN1370:
TextWindow.Write(” – SALARIES..? “)
HArray[I] = TextWindow.ReadNumber()
N=1
If HArray[I]<0 Then
Goto LN1490
EndIf
LN1410:
TextWindow.Write(” – AMMUNITION? “)
BArray[I] = TextWindow.ReadNumber()
N=2
If BArray[I]<0 Then
Goto LN1490
EndIf
TextWindow.WriteLine(“”)
If FArray[I]+HArray[I]+BArray[I] <= DArray[I] Then
Goto LN1510
EndIf
TextWindow.WriteLine(“THINK AGAIN! YOU HAVE ONLY $”+DArray[I])
Goto LN1270
LN1490:
TextWindow.WriteLine(“NEGATIVE VALUES NOT ALLOWED.”)
If (N = 1) Then
Goto LN1370
ElseIf (N = 2) Then
Goto LN1410
EndIf
LN1510:
If BD <> “YES” Then
Goto LN1550
EndIf
If I=2 Then
Goto LN1550
EndIf
TextWindow.Write(“UNION GENERAL—“)
EndFor
LN1550:
For Z=1 To D
If BD <> “YES” Then
Goto LN1620
EndIf
If (Z = 1) Then
Goto LN1580
ElseIf (Z = 2) Then
Goto LN1600
EndIf
LN1580:
TextWindow.Write(“CONFEDERATE “)
Goto LN1620
LN1600:
TextWindow.Write(” UNION “)
‘ – FIND MORALE
LN1620:
O=((2*FArray[Z]*FArray[Z]+HArray[Z]*HArray[z])/(F1*F1)+1)
If O<10 Then
Goto LN1660
EndIf
TextWindow.WriteLine(“MORALE IS HIGH”)
Goto LN1700
LN1660:
If O<5 Then
Goto LN1690
EndIf
TextWindow.WriteLine(“MORALE IS FAIR”)
Goto LN1700
LN1690:
TextWindow.WriteLine(“MORALE IS POOR”)
LN1700:
If BD <> “YES” Then
Goto LN1760
EndIf
OArray[Z]=O
EndFor
O2=OArray[2]
O=OArray[1]
TextWindow.Write(“CONFEDERATE GENERAL—“)
LN1760:
‘ – ACTUAL OFF/DEF BATTLE SITUATION
If M <> 3 Then
Goto LN1800
EndIf
TextWindow.WriteLine(“YOU ARE ON THE OFFENSIVE”)
Goto LN1840
LN1800:
If M <> 1 Then
Goto LN1830
EndIf
TextWindow.WriteLine(“YOU ARE ON THE DEFENSIVE”)
Goto LN1840
LN1830:
TextWindow.WriteLine(“BOTH SIDES ARE ON THE OFFENSIVE “)
LN1840:
TextWindow.WriteLine(“”)
‘ – CHOOSE STRATEGIES
If BD <> “YES” Then
Goto LN1910
EndIf
For I=1 To 2
If (I = 1) Then
Goto LN1890
ElseIf (I = 2) Then
Goto LN1920
EndIf
LN1890:
TextWindow.Write(“CONFEDERATE STRATEGY? “)
Goto LN1920
LN1910:
TextWindow.Write(“YOUR STRATEGY? “)
LN1920:
Y = TextWindow.ReadNumber()
If Math.Abs(Y-3)<3 Then
Goto LN1960
EndIf
TextWindow.WriteLine(“STRATEGY “+Y+” NOT ALLOWED.”)
Goto LN1910
LN1960:
If BD=”YES” Then
Goto LN2000
EndIf
If Y=5 Then
Goto LN2830
EndIf
Sub3110()
Goto LN2170
LN2000:
If I=2 Then
Goto LN2040
EndIf
Y1=Y
LN2020:
TextWindow.Write(“UNION STRATEGY? “)
EndFor
LN2040:
Y2=Y
Y=Y1
If Y2=5 Then
Goto LN2020
EndIf
‘
‘SIMULATED LOSSES-NORTH
C6=(2*C2/5)*(1+1/(2*(Math.Abs(Y2-Y)+1)))
C6=C6*(1.28+(5*M2/6)/(B[2]+1))
C6=Math.Floor(C6*(1+1/O2)+.5)
‘ – IF LOSS > MEN PRESENT, RESCALE LOSSES
E2=100/O2
If Math.Floor(C6+E2)Then
Goto LN2190
EndIf
C6=Math.Floor(13*M6/20)
E2=7*C6/13
U2=1
LN2170:
‘ – CALCULATE SIMULATED LOSSES
TextWindow.WriteLine(“”)
LN2190:
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(” CONFEDERACY UNION”)
C5=(2*C1/5)*(1+1/(2*(Math.Abs(Y2-Y)+1)))
C5=Math.Floor(C5*(1+1/O)*(1.28+F1/(BArray[1]+1))+.5)
E=100/O
If C5+100/O<m1*(1+(p1-t1) (m3+1))=”” <strong=””>Then</m1*(1+(p1-t1)>
Goto LN2270
EndIf
C5=Math.Floor(13*M1/20*(1+(P1-T1)/(M3+1)))
E=7*C5/13
U=1
LN2270:
If D=1 Then
Goto LN2500
EndIf
LN2280:
TextWindow.WriteLine(Text.Append(“CASUALTIES “,C5)+” “+C6)
TextWindow.WriteLine(Text.Append(“DESERTIONS “,Math.Floor(E))+” “+Math.floor(E2))
TextWindow.WriteLine(“”)
If BD <> “YES” Then
Goto LN2350
EndIf
TextWindow.WriteLine(“COMPARED TO THE ACTUAL CASUALTIES AT “+CD)
TextWindow.WriteLine(“CONFEDERATE: “+Math.Floor(100*(C5/C1)+.5)+”% OF THE ORIGINAL”)
TextWindow.WriteLine(“UNION: “+Math.Floor(100*(C6/C2)+.5)+”% OF THE ORIGINAL”)
LN2350:
TextWindow.WriteLine(“”)
‘ – 1 WHO ONE
If U <> 1 Then
Goto LN2380
EndIf
If U2=1 Then
Goto LN2460
EndIf
LN2380:
If U=1 Then
Goto LN2420
EndIf
If U2=1 Then
Goto LN2440
EndIf
If C5+E=C6+E2 Then
Goto LN2460
EndIf
If C5+E<c6+e2 <strong=””>Then</c6+e2>
Goto LN2440
EndIf
LN2420:
TextWindow.WriteLine(“THE UNION WINS “+CD)
Goto LN2600
LN2440:
TextWindow.WriteLine(“THE CONFEDERACY WINS “+CD)
Goto LN2660
LN2460:
TextWindow.WriteLine(“BATTLE OUTCOME UNRESOLVED”)
W0=W0+1
If A=0 Then
Goto LN2790
EndIf
Goto LN2680
LN2500:
C6=Math.Floor(17*C2*C1/(C5*20))
E2=5*O
Goto LN2280
TextWindow.WriteLine(“YOUR CASUALTIES WERE “+math.floor(100*(C5/C1)+.5)+”% OF “)
TextWindow.WriteLine(“THE ACTUAL CASUALTIES AT “+CD)
TextWindow.WriteLine(“”)
‘ – FIND WHO WON
If U=1 Then
Goto LN2590
EndIf
If C5+E<17*C2*C1/(C5*20)+5*O Then
Goto LN2630
EndIf
LN2590:
TextWindow.WriteLine(“YOU LOSE “+CD)
LN2600:
If A=0 Then
Goto LN2790
EndIf
L=L+1
Goto LN2680
LN2630:
TextWindow.WriteLine(“YOU WIN “+CD)
‘ – CUMULATIVE BATTLE FACTORS WHICH ALTER HISTORICAL
‘ RESOURCES AVAILABLE.IF A REPLAY DON’T UPDATE.
LN2660:
If A=0 Then
Goto LN2790
EndIf
W=W+1
LN2680:
T1=T1+C5+E
T2=T2+C6+E2
P1=P1+C1
P2=P2+C2
Q1=Q1+(F[1]+H[1]+B[1])
Q2=Q2+(F[2]+H[2]+B[2])
R1=R1+M1*(100-I1)/20
R2=R2+M2*(100-I2)/20
M3=M3+M1
M4=M4+M2
Sub3300()
LN2790:
U=0
U2=0
TextWindow.WriteLine(“—————“)
Goto LN620
‘ ——FINISH OFF
LN2830:
TextWindow.WriteLine(“THE CONFEDERACY HAS SURRENDERED”)
Goto LN2860
TextWindow.WriteLine(“THE UNION HAS SURRENDERED.”)
LN2860:
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“”)
TextWindow.Write(“THE CONFEDERACY “)
TextWindow.WriteLine(“HAS WON “+W+” BATTLES AND LOST “+L)
If Y=5 Then
Goto LN2940
EndIf
If Y2=5 Then
Goto LN2920
EndIf
If W <= L Then
Goto LN2940
EndIf
If Y=5 Then
Goto LN2940
EndIf
LN2920:
TextWindow.WriteLine(“THE CONFEDERACY HAS WON THE WAR”)
Goto LN2950
LN2940:
TextWindow.WriteLine(“THE UNION HAS WON THE WAR”)
LN2950:
TextWindow.WriteLine(“”)
If R1=0 Then
Goto LN3100
EndIf
TextWindow.WriteLine(“FOR THE “+(W+L+W0)+” BATTLES FOUGHT (EXCUDING RERUNS)”)
TextWindow.Write(” “)
TextWindow.WriteLine(” CONFEDERACY UNION”)
TextWindow.WriteLine(Text.Append(“HISTORICAL LOSSES “, Math.floor(P1+.5))+” “+Math.floor(P2+.5))
TextWindow.WriteLine(Text.Append(“SIMULATED LOSSES “,Math.floor(T1+.5))+” “+Math.Floor(T2+.5))
TextWindow.WriteLine(“”)
TextWindow.WriteLine(Text.Append(“% OF ORIGINAL “,math.floor(100*(T1/P1)+.5))+” “+Math.floor(100*(T2/P2)+.5))
If BD=”YES” Then
Goto LN3100
EndIf
TextWindow.WriteLine(“”)
TextWindow.WriteLine(“UNION INTELLIGENCE SUGGESTS THAT THE SOUTH USED “)
TextWindow.WriteLine(“STRATEGIES 1, 2, 3, 4 IN THE FOLLOWING PERCENTAGES”)
TextWindow.WriteLine(” 1 – ” + SArray[1])
TextWindow.WriteLine(” 2 – ” + SArray[2])
TextWindow.WriteLine(” 3 – ” + SArray[3])
TextWindow.WriteLine(” 4 – ” + SArray[4])
‘ ———————————
LN3100:
TextWindow.Write(“Press ENTER to Stop”)
JJJ = TextWindow.Read()
Program.End()
Sub Sub3110
‘ – UNION STRATEGY IS COMPUTER CHOSEN
TextWindow.Write(“UNION STRATEGY IS “)
If A <> 0 Then
Goto LN3180
EndIf
LN3140:
Y2 = TextWindow.ReadNumber()
If Y2 <=0 Then
Goto LN3160
EndIf
If Y2<5 Then
Goto LN3290
EndIf
LN3160:
TextWindow.WriteLine(“ENTER 1 , 2 ,3 , OR 4 (USUALLY PREVIOUS UNION STRATEGY)”)
Goto LN3140
LN3180:
S0=0
R=100*Math.GetRandomNumber(999)/1000
For I=1 To 4
S0=S0+SArray[I]
‘ – IF ACTUAL STRATEGY INFO IS IN PROGRAM DATA STATEMENTS
‘ THEN R-100 IS EXTRA WEIGHT GIVEN TO THAT STATEGY.
If RThen
Goto LN3270
EndIf
EndFor
‘ – IF ACTUAL STRAT. IN,THEN HERE IS Y2= HIST. STRAT.
LN3270:
Y2=I
TextWindow.WriteLine(Y2)
LN3290:
EndSub
Sub Sub3300
‘ LEARN PRESENT STRATEGY, START FORGETTING OLD ONES
‘ – PRESENT STRATEGY OF SOUTH GAINS 3*S, OTHERS LOSE S
‘ PROBABILITY POINTS, UNLESS A STRATEGY FALLS BELOW 5%.
S = 3
S0=0
For I=1 To 4
If SArray[I] <= 5 Then
Goto LN3390
EndIf
SArray[I]=SArray[I]-S
S0=S0+S
LN3390:
EndFor
SArray[Y]=SArray[Y]+S0
EndSub
LN3580:
TextWindow.WriteLine(“JULY 21, 1861. GEN. BEAUREGARD, COMMANDING THE SOUTH, MET”)
TextWindow.WriteLine(“UNION FORCES WITH GEN. MCDOWELL IN A PREMATURE BATTLE AT”)
TextWindow.WriteLine(“BULL RUN. GEN. JACKSON HELPED PUSH BACK THE UNION ATTACK.”)
Goto LN1150
LN3620:
TextWindow.WriteLine(“APRIL 6-7, 1862. THE CONFEDERATE SURPRISE ATTACK AT”)
TextWindow.WriteLine(“SHILOH FAILED DUE TO POOR ORGANIZATION.”)
Goto LN1150
LN3650:
TextWindow.WriteLine(“JUNE 25-JULY 1, 1862. GENERAL LEE (CSA) UPHELD THE”)
TextWindow.WriteLine(“OFFENSIVE THROUGHOUT THE BATTLE AND FORCED GEN. MCCLELLAN”)
TextWindow.WriteLine(“AND THE UNION FORCES AWAY FROM RICHMOND.”)
Goto LN1150
LN3690:
TextWindow.Write(“AUG 29-30, 1862. THE COMBINED CONFEDERATE FORCES UNDER”)
TextWindow.WriteLine(” LEE”)
TextWindow.WriteLine(“AND JACKSON DROVE THE UNION FORCES BACK INTO WASHINGTON.”)
Goto LN1150
LN3720:
TextWindow.WriteLine(“SEPT 17, 1862. THE SOUTH FAILED TO INCORPORATE MARYLAND”)
TextWindow.WriteLine(“INTO THE CONFEDERACY.”)
Goto LN1150
LN3750:
TextWindow.WriteLine(“DEC 13, 1862. THE CONFEDERACY UNDER LEE SUCCESSFULLY”)
TextWindow.WriteLine(“REPULSED AN ATTACK BY THE UNION UNDER GEN. BURNSIDE.”)
Goto LN1150
LN3780:
TextWindow.Write(“DEC 31, 1862. THE SOUTH UNDER GEN. BRAGG WON A CLOSE “)
TextWindow.WriteLine(“BATTLE.”)
Goto LN1150
LN3800:
TextWindow.WriteLine(“MAY 1-6, 1863. THE SOUTH HAD A COSTLY VICTORY AND LOST”)
TextWindow.WriteLine(“ONE OF THEIR OUTSTANDING GENERALS, ‘STONEWALL’ JACKSON.”)
Goto LN1150
LN3830:
TextWindow.WriteLine(“JULY 4, 1863. VICKSBURG WAS A COSTLY DEFEAT FOR THE SOUTH”)
TextWindow.WriteLine(“BECAUSE IT GAVE THE UNION ACCESS TO THE MISSISSIPPI.”)
Goto LN1150
LN3860:
TextWindow.Write(“JULY 1-3, 1863. A SOUTHERN MISTAKE BY GEN. LEE AT “)
TextWindow.WriteLine(“GETTYSBURG”)
TextWindow.WriteLine(“COST THEM ONE OF THE MOST CRUCIAL BATTLES OF THE WAR.”)
Goto LN1150
LN3890:
TextWindow.WriteLine(“SEPT. 15, 1863. CONFUSION IN A FOREST NEAR CHICKAMAUGA LED”)
TextWindow.WriteLine(“TO A COSTLY SOUTHERN VICTORY.”)
Goto LN1150
LN3920:
TextWindow.WriteLine(“NOV. 25, 1863. AFTER THE SOUTH HAD SIEGED GEN. ROSENCRANS'”)
TextWindow.WriteLine(“ARMY FOR THREE MONTHS, GEN. GRANT BROKE THE SIEGE.”)
Goto LN1150
LN3950:
TextWindow.WriteLine(“MAY 5, 1864. GRANT’S PLAN TO KEEP LEE ISOLATED BEGAN TO”)
TextWindow.WriteLine(“FAIL HERE, AND CONTINUED AT COLD HARBOR AND PETERSBURG.”)
Goto LN1150
LN3980:
TextWindow.WriteLine(“AUGUST, 1864. SHERMAN AND THREE VETERAN ARMIES CONVERGED”)
TextWindow.WriteLine(“ON ATLANTA AND DEALT THE DEATH BLOW TO THE CONFEDERACY.”)
Goto LN1150