mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-23 07:29:02 -08:00
@@ -284,7 +284,7 @@
|
|||||||
2940 PRINT "THE UNION HAS WON THE WAR"
|
2940 PRINT "THE UNION HAS WON THE WAR"
|
||||||
2950 PRINT
|
2950 PRINT
|
||||||
2960 IF R1=0 THEN 3100
|
2960 IF R1=0 THEN 3100
|
||||||
2970 PRINT "FOR THE "W+L+W0" BATTLES FOUGHT (EXCUDING RERUNS)"
|
2970 PRINT "FOR THE "W+L+W0" BATTLES FOUGHT (EXCLUDING RERUNS)"
|
||||||
2980 PRINT " "," "," ";
|
2980 PRINT " "," "," ";
|
||||||
2990 PRINT "CONFEDERACY"," UNION"
|
2990 PRINT "CONFEDERACY"," UNION"
|
||||||
3000 PRINT "HISTORICAL LOSSES",INT(P1+.5),INT(P2+.5)
|
3000 PRINT "HISTORICAL LOSSES",INT(P1+.5),INT(P2+.5)
|
||||||
@@ -295,7 +295,7 @@
|
|||||||
3050 PRINT
|
3050 PRINT
|
||||||
3060 PRINT "UNION INTELLIGENCE SUGGESTS THAT THE SOUTH USED "
|
3060 PRINT "UNION INTELLIGENCE SUGGESTS THAT THE SOUTH USED "
|
||||||
3070 PRINT "STRATEGIES 1, 2, 3, 4 IN THE FOLLOWING PERCENTAGES"
|
3070 PRINT "STRATEGIES 1, 2, 3, 4 IN THE FOLLOWING PERCENTAGES"
|
||||||
3080 PRINT S(1);S2(2);S(3);S(4)
|
3080 PRINT S(1);S(2);S(3);S(4)
|
||||||
3090 REM---------------------------------
|
3090 REM---------------------------------
|
||||||
3100 STOP
|
3100 STOP
|
||||||
3110 REM - UNION STRATEGY IS COMPUTER CHOSEN
|
3110 REM - UNION STRATEGY IS COMPUTER CHOSEN
|
||||||
|
|||||||
9
27 Civil War/javascript/civilwar.html
Normal file
9
27 Civil War/javascript/civilwar.html
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>CIVIL WAR</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<pre id="output" style="font-size: 12pt;"></pre>
|
||||||
|
<script src="civilwar.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
528
27 Civil War/javascript/civilwar.js
Normal file
528
27 Civil War/javascript/civilwar.js
Normal file
@@ -0,0 +1,528 @@
|
|||||||
|
// CIVIL WAR
|
||||||
|
//
|
||||||
|
// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
|
||||||
|
//
|
||||||
|
|
||||||
|
function print(str)
|
||||||
|
{
|
||||||
|
document.getElementById("output").appendChild(document.createTextNode(str));
|
||||||
|
}
|
||||||
|
|
||||||
|
function input()
|
||||||
|
{
|
||||||
|
var input_element;
|
||||||
|
var input_str;
|
||||||
|
|
||||||
|
return new Promise(function (resolve) {
|
||||||
|
input_element = document.createElement("INPUT");
|
||||||
|
|
||||||
|
print("? ");
|
||||||
|
input_element.setAttribute("type", "text");
|
||||||
|
input_element.setAttribute("length", "50");
|
||||||
|
document.getElementById("output").appendChild(input_element);
|
||||||
|
input_element.focus();
|
||||||
|
input_str = undefined;
|
||||||
|
input_element.addEventListener("keydown", function (event) {
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
input_str = input_element.value;
|
||||||
|
document.getElementById("output").removeChild(input_element);
|
||||||
|
print(input_str);
|
||||||
|
print("\n");
|
||||||
|
resolve(input_str);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function tab(space)
|
||||||
|
{
|
||||||
|
var str = "";
|
||||||
|
while (space-- > 0)
|
||||||
|
str += " ";
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Historical data...can add more (strat., etc) by inserting
|
||||||
|
// data statements after appro. info, and adjusting read
|
||||||
|
// 0 - C$ 1-M1 2-M2 3-C1 4-C2 5-D
|
||||||
|
var historical_data = [,
|
||||||
|
["BULL RUN",18000,18500,1967,2708,1],
|
||||||
|
["SHILOH",40000.,44894.,10699,13047,3],
|
||||||
|
["SEVEN DAYS",95000.,115000.,20614,15849,3],
|
||||||
|
["SECOND BULL RUN",54000.,63000.,10000,14000,2],
|
||||||
|
["ANTIETAM",40000.,50000.,10000,12000,3],
|
||||||
|
["FREDERICKSBURG",75000.,120000.,5377,12653,1],
|
||||||
|
["MURFREESBORO",38000.,45000.,11000,12000,1],
|
||||||
|
["CHANCELLORSVILLE",32000,90000.,13000,17197,2],
|
||||||
|
["VICKSBURG",50000.,70000.,12000,19000,1],
|
||||||
|
["GETTYSBURG",72500.,85000.,20000,23000,3],
|
||||||
|
["CHICKAMAUGA",66000.,60000.,18000,16000,2],
|
||||||
|
["CHATTANOOGA",37000.,60000.,36700.,5800,2],
|
||||||
|
["SPOTSYLVANIA",62000.,110000.,17723,18000,2],
|
||||||
|
["ATLANTA",65000.,100000.,8500,3700,1]];
|
||||||
|
var sa = [];
|
||||||
|
var da = [];
|
||||||
|
var fa = [];
|
||||||
|
var ha = [];
|
||||||
|
var ba = [];
|
||||||
|
var oa = [];
|
||||||
|
|
||||||
|
// Main program
|
||||||
|
async function main()
|
||||||
|
{
|
||||||
|
print(tab(26) + "CIVIL WAR\n");
|
||||||
|
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
// Original game design: Cram, Goodie, Hibbard Lexington H.S.
|
||||||
|
// Modifications: G. Paul, R. Hess (Ties), 1973
|
||||||
|
// Union info on likely confederate strategy
|
||||||
|
sa[1] = 25;
|
||||||
|
sa[2] = 25;
|
||||||
|
sa[3] = 25;
|
||||||
|
sa[4] = 25;
|
||||||
|
d = Math.random();
|
||||||
|
print("\n");
|
||||||
|
print("DO YOU WANT INSTRUCTIONS");
|
||||||
|
while (1) {
|
||||||
|
str = await input();
|
||||||
|
if (str == "YES" || str == "NO")
|
||||||
|
break;
|
||||||
|
print("YES OR NO -- \n");
|
||||||
|
}
|
||||||
|
if (str == "YES") {
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("THIS IS A CIVIL WAR SIMULATION.\n");
|
||||||
|
print("TO PLAY TYPE A RESPONSE WHEN THE COMPUTER ASKS.\n");
|
||||||
|
print("REMEMBER THAT ALL FACTORS ARE INTERRELATED AND THAT YOUR\n");
|
||||||
|
print("RESPONSES COULD CHANGE HISTORY. FACTS AND FIGURES USED ARE\n");
|
||||||
|
print("BASED ON THE ACTUAL OCCURRENCE. MOST BATTLES TEND TO RESULT\n");
|
||||||
|
print("AS THEY DID IN THE CIVIL WAR, BUT IT ALL DEPENDS ON YOU!!\n");
|
||||||
|
print("\n");
|
||||||
|
print("THE OBJECT OF THE GAME IS TO WIN AS MANY BATTLES AS ");
|
||||||
|
print("POSSIBLE.\n");
|
||||||
|
print("\n");
|
||||||
|
print("YOUR CHOICES FOR DEFENSIVE STRATEGY ARE:\n");
|
||||||
|
print(" (1) ARTILLERY ATTACK\n");
|
||||||
|
print(" (2) FORTIFICATION AGAINST FRONTAL ATTACK\n");
|
||||||
|
print(" (3) FORTIFICATION AGAINST FLANKING MANEUVERS\n");
|
||||||
|
print(" (4) FALLING BACK\n");
|
||||||
|
print(" YOUR CHOICES FOR OFFENSIVE STRATEGY ARE:\n");
|
||||||
|
print(" (1) ARTILLERY ATTACK\n");
|
||||||
|
print(" (2) FRONTAL ATTACK\n");
|
||||||
|
print(" (3) FLANKING MANEUVERS\n");
|
||||||
|
print(" (4) ENCIRCLEMENT\n");
|
||||||
|
print("YOU MAY SURRENDER BY TYPING A '5' FOR YOUR STRATEGY.\n");
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("ARE THERE TWO GENERALS PRESENT ");
|
||||||
|
while (1) {
|
||||||
|
print("(ANSWER YES OR NO)");
|
||||||
|
bs = await input();
|
||||||
|
if (bs == "YES") {
|
||||||
|
d = 2;
|
||||||
|
break;
|
||||||
|
} else if (bs == "NO") {
|
||||||
|
print("\n");
|
||||||
|
print("YOU ARE THE CONFEDERACY. GOOD LUCK!\n");
|
||||||
|
print("\n");
|
||||||
|
d = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print("SELECT A BATTLE BY TYPING A NUMBER FROM 1 TO 14 ON\n");
|
||||||
|
print("REQUEST. TYPE ANY OTHER NUMBER TO END THE SIMULATION.\n");
|
||||||
|
print("BUT '0' BRINGS BACK EXACT PREVIOUS BATTLE SITUATION\n");
|
||||||
|
print("ALLOWING YOU TO REPLAY IT\n");
|
||||||
|
print("\n");
|
||||||
|
print("NOTE: A NEGATIVE FOOD$ ENTRY CAUSES THE PROGRAM TO \n");
|
||||||
|
print("USE THE ENTRIES FROM THE PREVIOUS BATTLE\n");
|
||||||
|
print("\n");
|
||||||
|
print("AFTER REQUESTING A BATTLE, DO YOU WISH ");
|
||||||
|
print("BATTLE DESCRIPTIONS ");
|
||||||
|
while (1) {
|
||||||
|
print("(ANSWER YES OR NO)");
|
||||||
|
xs = await input();
|
||||||
|
if (xs == "YES" || xs == "NO")
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
l = 0;
|
||||||
|
w = 0;
|
||||||
|
r1 = 0;
|
||||||
|
q1 = 0;
|
||||||
|
m3 = 0;
|
||||||
|
m4 = 0;
|
||||||
|
p1 = 0;
|
||||||
|
p2 = 0;
|
||||||
|
t1 = 0;
|
||||||
|
t2 = 0;
|
||||||
|
for (i = 1; i <= 2; i++) {
|
||||||
|
da[i] = 0;
|
||||||
|
fa[i] = 0;
|
||||||
|
ha[i] = 0;
|
||||||
|
ba[i] = 0;
|
||||||
|
oa[i] = 0;
|
||||||
|
}
|
||||||
|
r2 = 0;
|
||||||
|
q2 = 0;
|
||||||
|
c6 = 0;
|
||||||
|
f = 0;
|
||||||
|
w0 = 0;
|
||||||
|
y = 0;
|
||||||
|
y2 = 0;
|
||||||
|
u = 0;
|
||||||
|
u2 = 0;
|
||||||
|
while (1) {
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("WHICH BATTLE DO YOU WISH TO SIMULATE");
|
||||||
|
a = parseInt(await input());
|
||||||
|
if (a < 1 || a > 14)
|
||||||
|
break;
|
||||||
|
if (a != 0 || r == 0) {
|
||||||
|
cs = historical_data[a][0];
|
||||||
|
m1 = historical_data[a][1];
|
||||||
|
m2 = historical_data[a][2];
|
||||||
|
c1 = historical_data[a][3];
|
||||||
|
c2 = historical_data[a][4];
|
||||||
|
m = historical_data[a][5];
|
||||||
|
u = 0;
|
||||||
|
// Inflation calc
|
||||||
|
i1 = 10 + (l - w) * 2;
|
||||||
|
i2 = 10 + (w - l) * 2;
|
||||||
|
// Money available
|
||||||
|
da[1] = 100 * Math.floor((m1 * (100 - i1) / 2000) * (1 + (r1 - q1) / (r1 + 1)) + 0.5);
|
||||||
|
da[2] = 100 * Math.floor(m2 * (100 - i2) / 2000 + 0.5);
|
||||||
|
if (bs == "YES") {
|
||||||
|
da[2] = 100 * Math.floor((m2 * (100 - i2) / 2000) * (1 + (r2 - q2) / (r2 + 1)) + 0.5);
|
||||||
|
}
|
||||||
|
// Men available
|
||||||
|
m5 = Math.floor(m1 * (1 + (p1 - t1) / (m3 + 1)));
|
||||||
|
m6 = Math.floor(m2 * (1 + (p2 - t2) / (m4 + 1)));
|
||||||
|
f1 = 5 * m1 / 6;
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("THIS IS THE BATTLE OF " + cs + "\n");
|
||||||
|
if (xs != "NO") {
|
||||||
|
switch (a) {
|
||||||
|
case 1:
|
||||||
|
print("JULY 21, 1861. GEN. BEAUREGARD, COMMANDING THE SOUTH, MET\n");
|
||||||
|
print("UNION FORCES WITH GEN. MCDOWELL IN A PREMATURE BATTLE AT\n");
|
||||||
|
print("BULL RUN. GEN. JACKSON HELPED PUSH BACK THE UNION ATTACK.\n");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
print("APRIL 6-7, 1862. THE CONFEDERATE SURPRISE ATTACK AT\n");
|
||||||
|
print("SHILOH FAILED DUE TO POOR ORGANIZATION.\n");
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
print("JUNE 25-JULY 1, 1862. GENERAL LEE (CSA) UPHELD THE\n");
|
||||||
|
print("OFFENSIVE THROUGHOUT THE BATTLE AND FORCED GEN. MCCLELLAN\n");
|
||||||
|
print("AND THE UNION FORCES AWAY FROM RICHMOND.\n");
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
print("AUG 29-30, 1862. THE COMBINED CONFEDERATE FORCES UNDER LEE\n");
|
||||||
|
print("AND JACKSON DROVE THE UNION FORCES BACK INTO WASHINGTON.\n");
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
print("SEPT 17, 1862. THE SOUTH FAILED TO INCORPORATE MARYLAND\n");
|
||||||
|
print("INTO THE CONFEDERACY.\n");
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
print("DEC 13, 1862. THE CONFEDERACY UNDER LEE SUCCESSFULLY\n");
|
||||||
|
print("REPULSED AN ATTACK BY THE UNION UNDER GEN. BURNSIDE.\n");
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
print("DEC 31, 1862. THE SOUTH UNDER GEN. BRAGG WON A CLOSE BATTLE.\n");
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
print("MAY 1-6, 1863. THE SOUTH HAD A COSTLY VICTORY AND LOST\n");
|
||||||
|
print("ONE OF THEIR OUTSTANDING GENERALS, 'STONEWALL' JACKSON.\n");
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
print("JULY 4, 1863. VICKSBURG WAS A COSTLY DEFEAT FOR THE SOUTH\n");
|
||||||
|
print("BECAUSE IT GAVE THE UNION ACCESS TO THE MISSISSIPPI.\n");
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
print("JULY 1-3, 1863. A SOUTHERN MISTAKE BY GEN. LEE AT GETTYSBURG\n");
|
||||||
|
print("COST THEM ONE OF THE MOST CRUCIAL BATTLES OF THE WAR.\n");
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
print("SEPT. 15, 1863. CONFUSION IN A FOREST NEAR CHICKAMAUGA LED\n");
|
||||||
|
print("TO A COSTLY SOUTHERN VICTORY.\n");
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
print("NOV. 25, 1863. AFTER THE SOUTH HAD SIEGED GEN. ROSENCRANS'\n");
|
||||||
|
print("ARMY FOR THREE MONTHS, GEN. GRANT BROKE THE SIEGE.\n");
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
print("MAY 5, 1864. GRANT'S PLAN TO KEEP LEE ISOLATED BEGAN TO\n");
|
||||||
|
print("FAIL HERE, AND CONTINUED AT COLD HARBOR AND PETERSBURG.\n");
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
print("AUGUST, 1864. SHERMAN AND THREE VETERAN ARMIES CONVERGED\n");
|
||||||
|
print("ON ATLANTA AND DEALT THE DEATH BLOW TO THE CONFEDERACY.\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
print(cs + " INSTANT REPLAY\n");
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
print(" \tCONFEDERACY\t UNION\n"),
|
||||||
|
print("MEN\t " + m5 + "\t\t " + m6 + "\n");
|
||||||
|
print("MONEY\t $" + da[1] + "\t\t$" + da[2] + "\n");
|
||||||
|
print("INFLATION\t " + (i1 + 15) + "%\t " + i2 + "%\n");
|
||||||
|
print("\n");
|
||||||
|
// ONLY IN PRINTOUT IS CONFED INFLATION = I1 + 15%
|
||||||
|
// IF TWO GENERALS, INPUT CONFED, FIRST
|
||||||
|
for (i = 1; i <= d; i++) {
|
||||||
|
if (bs == "YES" && i == 1)
|
||||||
|
print("CONFEDERATE GENERAL---");
|
||||||
|
print("HOW MUCH DO YOU WISH TO SPEND FOR\n");
|
||||||
|
while (1) {
|
||||||
|
print(" - FOOD......");
|
||||||
|
f = parseInt(await input());
|
||||||
|
if (f < 0) {
|
||||||
|
if (r1 == 0) {
|
||||||
|
print("NO PREVIOUS ENTRIES\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
print("ASSUME YOU WANT TO KEEP SAME ALLOCATIONS\n");
|
||||||
|
print("\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
fa[i] = f;
|
||||||
|
while (1) {
|
||||||
|
print(" - SALARIES..");
|
||||||
|
ha[i] = parseInt(await input());
|
||||||
|
if (ha[i] >= 0)
|
||||||
|
break;
|
||||||
|
print("NEGATIVE VALUES NOT ALLOWED.\n");
|
||||||
|
}
|
||||||
|
while (1) {
|
||||||
|
print(" - AMMUNITION");
|
||||||
|
ba[i] = parseInt(await input());
|
||||||
|
if (ba[i] >= 0)
|
||||||
|
break;
|
||||||
|
print("NEGATIVE VALUES NOT ALLOWED.\n");
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
if (fa[i] + ha[i] + ba[i] > da[i]) {
|
||||||
|
print("THINK AGAIN! YOU HAVE ONLY $" + da[i] + "\n");
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (bs != "YES" || i == 2)
|
||||||
|
break;
|
||||||
|
print("UNION GENERAL---");
|
||||||
|
}
|
||||||
|
for (z = 1; z <= d; z++) {
|
||||||
|
if (bs == "YES") {
|
||||||
|
if (z == 1)
|
||||||
|
print("CONFEDERATE ");
|
||||||
|
else
|
||||||
|
print(" UNION ");
|
||||||
|
}
|
||||||
|
// Find morale
|
||||||
|
o = ((2 * Math.pow(fa[z], 2) + Math.pow(ha[z], 2)) / Math.pow(f1, 2) + 1);
|
||||||
|
if (o >= 10) {
|
||||||
|
print("MORALE IS HIGH\n");
|
||||||
|
} else if (o >= 5) {
|
||||||
|
print("MORALE IS FAIR\n");
|
||||||
|
} else {
|
||||||
|
print("MORALE IS POOR\n");
|
||||||
|
}
|
||||||
|
if (bs != "YES")
|
||||||
|
break;
|
||||||
|
oa[z] = o;
|
||||||
|
}
|
||||||
|
o2 = oa[2];
|
||||||
|
o = oa[1];
|
||||||
|
print("CONFEDERATE GENERAL---");
|
||||||
|
// Actual off/def battle situation
|
||||||
|
if (m == 3) {
|
||||||
|
print("YOU ARE ON THE OFFENSIVE\n");
|
||||||
|
} else if (m == 1) {
|
||||||
|
print("YOU ARE ON THE DEFENSIVE\n");
|
||||||
|
} else {
|
||||||
|
print("BOTH SIDES ARE ON THE OFFENSIVE \n");
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
// Choose strategies
|
||||||
|
if (bs != "YES") {
|
||||||
|
print("YOUR STRATEGY ");
|
||||||
|
while (1) {
|
||||||
|
y = parseInt(await input());
|
||||||
|
if (Math.abs(y - 3) < 3)
|
||||||
|
break;
|
||||||
|
print("STRATEGY " + y + " NOT ALLOWED.\n");
|
||||||
|
}
|
||||||
|
if (y == 5) {
|
||||||
|
print("THE CONFEDERACY HAS SURRENDERED.\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// Union strategy is computer choesn
|
||||||
|
print("UNION STRATEGY IS ");
|
||||||
|
if (a == 0) {
|
||||||
|
while (1) {
|
||||||
|
y2 = parseInt(await input());
|
||||||
|
if (y2 > 0 && y2 < 5)
|
||||||
|
break;
|
||||||
|
print("ENTER 1, 2, 3, OR 4 (USUALLY PREVIOUS UNION STRATEGY)\n");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
s0 = 0;
|
||||||
|
r = Math.random() * 100;
|
||||||
|
for (i = 1; i <= 4; i++) {
|
||||||
|
s0 += sa[i];
|
||||||
|
// If actual strategy info is in program data statements
|
||||||
|
// then r-100 is extra weight given to that strategy.
|
||||||
|
if (r < s0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
y2 = i;
|
||||||
|
print(y2 + "\n");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (i = 1; i <= 2; i++) {
|
||||||
|
if (i == 1)
|
||||||
|
print("CONFEDERATE STRATEGY ");
|
||||||
|
while (1) {
|
||||||
|
y = parseInt(await input());
|
||||||
|
if (Math.abs(y - 3) < 3)
|
||||||
|
break;
|
||||||
|
print("STRATEGY " + y + " NOT ALLOWED.\n");
|
||||||
|
}
|
||||||
|
if (i == 2) {
|
||||||
|
y2 = y;
|
||||||
|
y = y1;
|
||||||
|
if (y2 != 5)
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
y1 = y;
|
||||||
|
}
|
||||||
|
print("UNION STRATEGY ");
|
||||||
|
}
|
||||||
|
// Simulated losses - North
|
||||||
|
c6 = (2 * c2 / 5) * (1 + 1 / (2 * (Math.abs(y2 - y) + 1)));
|
||||||
|
c6 = c6 * (1.28 + (5 * m2 / 6) / (ba[2] + 1));
|
||||||
|
c6 = Math.floor(c6 * (1 + 1 / o2) + 0.5);
|
||||||
|
// If loss > men present, rescale losses
|
||||||
|
e2 = 100 / o2;
|
||||||
|
if (Math.floor(c6 + e2) >= m6) {
|
||||||
|
c6 = Math.floor(13 * m6 / 20);
|
||||||
|
e2 = 7 * c6 / 13;
|
||||||
|
u2 = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Calculate simulated losses
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\t\tCONFEDERACY\tUNION\n");
|
||||||
|
c5 = (2 * c1 / 5) * (1 + 1 / (2 * (Math.abs(y2 - y) + 1)));
|
||||||
|
c5 = Math.floor(c5 * (1 + 1 / o) * (1.28 + f1 / (ba[1] + 1)) + 0.5);
|
||||||
|
e = 100 / o;
|
||||||
|
if (c5 + 100 / o >= m1 * (1 + (p1 - t1) / (m3 + 1))) {
|
||||||
|
c5 = Math.floor(13 * m1 / 20 * (1 + (p1 - t1) / (m3 + 1)));
|
||||||
|
e = 7 * c5 / 13;
|
||||||
|
u = 1;
|
||||||
|
}
|
||||||
|
if (d == 1) {
|
||||||
|
c6 = Math.floor(17 * c2 * c1 / (c5 * 20));
|
||||||
|
e2 = 5 * o;
|
||||||
|
}
|
||||||
|
print("CASUALTIES\t" + c5 + "\t\t" + c6 + "\n");
|
||||||
|
print("DESERTIONS\t" + Math.floor(e) + "\t\t" + Math.floor(e2) + "\n");
|
||||||
|
print("\n");
|
||||||
|
if (bs == "YES") {
|
||||||
|
print("COMPARED TO THE ACTUAL CASUALTIES AT " + cs + "\n");
|
||||||
|
print("CONFEDERATE: " + Math.floor(100 * (c5 / c1) + 0.5) + "% OF THE ORIGINAL\n");
|
||||||
|
print("UNION: " + Math.floor(100 * (c6 / c2) + 0.5) + "% OF THE ORIGINAL\n");
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
// 1 Who one
|
||||||
|
if (u == 1 && u2 == 1 || (u != 1 && u2 != 1 && c5 + e == c6 + e2)) {
|
||||||
|
print("BATTLE OUTCOME UNRESOLVED\n");
|
||||||
|
w0++;
|
||||||
|
} else if (u == 1 || (u != 1 && u2 != 1 && c5 + e > c6 + e2)) {
|
||||||
|
print("THE UNION WINS " + cs + "\n");
|
||||||
|
if (a != 0)
|
||||||
|
l++;
|
||||||
|
} else {
|
||||||
|
print("THE CONFEDERACY WINS " + cs + "\n");
|
||||||
|
if (a != 0)
|
||||||
|
w++;
|
||||||
|
}
|
||||||
|
// Lines 2530 to 2590 from original are unreachable.
|
||||||
|
if (a != 0) {
|
||||||
|
t1 += c5 + e;
|
||||||
|
t2 += c6 + e2;
|
||||||
|
p1 += c1;
|
||||||
|
p2 += c2;
|
||||||
|
q1 += fa[1] + ha[1] + ba[1];
|
||||||
|
q2 += fa[2] + ha[2] + ba[2];
|
||||||
|
r1 += m1 * (100 - i1) / 20;
|
||||||
|
r2 += m2 * (100 - i2) / 20;
|
||||||
|
m3 += m1;
|
||||||
|
m4 += m2;
|
||||||
|
// Learn present strategy, start forgetting old ones
|
||||||
|
// present startegy of south gains 3*s, others lose s
|
||||||
|
// probability points, unless a strategy falls below 5%.
|
||||||
|
s = 3;
|
||||||
|
s0 = 0;
|
||||||
|
for (i = 1; i <= 4; i++) {
|
||||||
|
if (sa[i] <= 5)
|
||||||
|
continue;
|
||||||
|
sa[i] -= 5;
|
||||||
|
s0 += s;
|
||||||
|
}
|
||||||
|
sa[y] += s0;
|
||||||
|
}
|
||||||
|
u = 0;
|
||||||
|
u2 = 0;
|
||||||
|
print("---------------");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("THE CONFEDERACY HAS WON " + w + " BATTLES AND LOST " + l + "\n");
|
||||||
|
if (y == 5 || (y2 != 5 && w <= l)) {
|
||||||
|
print("THE UNION HAS WON THE WAR\n");
|
||||||
|
} else {
|
||||||
|
print("THE CONFEDERACY HAS WON THE WAR\n");
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
if (r1) {
|
||||||
|
print("FOR THE " + (w + l + w0) + " BATTLES FOUGHT (EXCLUDING RERUNS)\n");
|
||||||
|
print(" \t \t ");
|
||||||
|
print("CONFEDERACY\t UNION\n");
|
||||||
|
print("HISTORICAL LOSSES\t" + Math.floor(p1 + 0.5) + "\t" + Math.floor(p2 + 0.5) + "\n");
|
||||||
|
print("SIMULATED LOSSES\t" + Math.floor(t1 + 0.5) + "\t" + Math.floor(t2 + 0.5) + "\n");
|
||||||
|
print("\n");
|
||||||
|
print(" % OF ORIGINAL\t" + Math.floor(100 * (t1 / p1) + 0.5) + "\t" + Math.floor(100 * (t2 / p2) + 0.5) + "\n");
|
||||||
|
if (bs != "YES") {
|
||||||
|
print("\n");
|
||||||
|
print("UNION INTELLIGENCE SUGGEST THAT THE SOUTH USED \n");
|
||||||
|
print("STRATEGIES 1, 2, 3, 4 IN THE FOLLOWING PERCENTAGES\n");
|
||||||
|
print(sa[1] + " " + sa[2] + " " + sa[3] + " " + sa[4] + "\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
// CHOMP
|
// COMBAT
|
||||||
//
|
//
|
||||||
// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
|
// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
|
||||||
//
|
//
|
||||||
|
|||||||
9
29 Craps/javascript/craps.html
Normal file
9
29 Craps/javascript/craps.html
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>CRAPS</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<pre id="output" style="font-size: 12pt;"></pre>
|
||||||
|
<script src="craps.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
128
29 Craps/javascript/craps.js
Normal file
128
29 Craps/javascript/craps.js
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
// CRAPS
|
||||||
|
//
|
||||||
|
// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
|
||||||
|
//
|
||||||
|
|
||||||
|
function print(str)
|
||||||
|
{
|
||||||
|
document.getElementById("output").appendChild(document.createTextNode(str));
|
||||||
|
}
|
||||||
|
|
||||||
|
function input()
|
||||||
|
{
|
||||||
|
var input_element;
|
||||||
|
var input_str;
|
||||||
|
|
||||||
|
return new Promise(function (resolve) {
|
||||||
|
input_element = document.createElement("INPUT");
|
||||||
|
|
||||||
|
print("? ");
|
||||||
|
input_element.setAttribute("type", "text");
|
||||||
|
input_element.setAttribute("length", "50");
|
||||||
|
document.getElementById("output").appendChild(input_element);
|
||||||
|
input_element.focus();
|
||||||
|
input_str = undefined;
|
||||||
|
input_element.addEventListener("keydown", function (event) {
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
input_str = input_element.value;
|
||||||
|
document.getElementById("output").removeChild(input_element);
|
||||||
|
print(input_str);
|
||||||
|
print("\n");
|
||||||
|
resolve(input_str);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function tab(space)
|
||||||
|
{
|
||||||
|
var str = "";
|
||||||
|
while (space-- > 0)
|
||||||
|
str += " ";
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main program
|
||||||
|
async function main()
|
||||||
|
{
|
||||||
|
print(tab(33) + "CRAPS\n");
|
||||||
|
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
r = 0;
|
||||||
|
print("2,3,12 ARE LOSERS: 4,5,6,8,9,10 ARE POINTS: 7,11 ARE NATURAL WINNERS.\n");
|
||||||
|
t = 1;
|
||||||
|
print("PICK A NUMBER AND INPUT TO ROLL DICE");
|
||||||
|
z = parseInt(await input());
|
||||||
|
do {
|
||||||
|
x = Math.random();
|
||||||
|
t++;
|
||||||
|
} while (t <= z) ;
|
||||||
|
while (1) {
|
||||||
|
print("INPUT THE AMOUNT OF YOUR WAGER.");
|
||||||
|
f = parseInt(await input());
|
||||||
|
print("I WILL NOW THROW THE DICE\n");
|
||||||
|
do {
|
||||||
|
e = Math.floor(7 * Math.random());
|
||||||
|
s = Math.floor(7 * Math.random());
|
||||||
|
x = e + s;
|
||||||
|
} while (x == 0 || x == 1) ;
|
||||||
|
if (x == 7 || x == 11) {
|
||||||
|
print(x + " - NATURAL....A WINNER!!!!\n");
|
||||||
|
print(x + " PAYS EVEN MONEY, YOU WIN " + f + " DOLLARS\n");
|
||||||
|
r += f;
|
||||||
|
} else if (x == 2) {
|
||||||
|
print(x + " - SNAKE EYES....YOU LOSE.\n");
|
||||||
|
print("YOU LOSE " + f + " DOLLARS.\n");
|
||||||
|
r -= f;
|
||||||
|
} else if (x == 3 || x == 12) { // Original duplicates comparison in line 70
|
||||||
|
print(x + " - CRAPS....YOU LOSE.\n");
|
||||||
|
print("YOU LOSE " + f + " DOLLARS.\n");
|
||||||
|
r -= f;
|
||||||
|
} else {
|
||||||
|
print(x + " IS THE POINT. I WILL ROLL AGAIN\n");
|
||||||
|
while (1) {
|
||||||
|
do {
|
||||||
|
h = Math.floor(7 * Math.random());
|
||||||
|
q = Math.floor(7 * Math.random());
|
||||||
|
o = h + q;
|
||||||
|
} while (o == 0 || o == 1) ;
|
||||||
|
if (o == 7) {
|
||||||
|
print(o + " - CRAPS, YOU LOSE.\n");
|
||||||
|
print("YOU LOSE $" + f + "\n");
|
||||||
|
r -= f;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (o == x) {
|
||||||
|
print(x + " - A WINNER.........CONGRATS!!!!!!!!\n");
|
||||||
|
print(x + " AT 2 TO 1 ODDS PAYS YOU...LET ME SEE..." + 2 * f + " DOLLARS\n");
|
||||||
|
r += f * 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
print(o + " - NO POINT. I WILL ROLL AGAIN\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print(" IF YOU WANT TO PLAY AGAIN PRINT 5 IF NOT PRINT 2");
|
||||||
|
m = parseInt(await input());
|
||||||
|
if (r < 0) {
|
||||||
|
print("YOU ARE NOW UNDER $" + -r + "\n");
|
||||||
|
} else if (r > 0) {
|
||||||
|
print("YOU ARE NOW AHEAD $" + r + "\n");
|
||||||
|
} else {
|
||||||
|
print("YOU ARE NOW EVEN AT 0\n");
|
||||||
|
}
|
||||||
|
if (m != 5)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (r < 0) {
|
||||||
|
print("TOO BAD, YOU ARE IN THE HOLE. COME AGAIN.\n");
|
||||||
|
} else if (r > 0) {
|
||||||
|
print("CONGRATULATIONS---YOU CAME OUT A WINNER. COME AGAIN!\n");
|
||||||
|
} else {
|
||||||
|
print("CONGRATULATIONS---YOU CAME OUT EVEN, NOT BAD FOR AN AMATEUR\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
820 LET O=3
|
820 LET O=3
|
||||||
830 PRINT "WANT TO MAKE A WAGER?"
|
830 PRINT "WANT TO MAKE A WAGER?"
|
||||||
840 INPUT Z
|
840 INPUT Z
|
||||||
850 IF Z=0 THEN 920
|
850 IF Z=0 THEN 880
|
||||||
860 PRINT "HOW MUCH ";
|
860 PRINT "HOW MUCH ";
|
||||||
870 INPUT Z1
|
870 INPUT Z1
|
||||||
876 IF A1<Z1 THEN 1522
|
876 IF A1<Z1 THEN 1522
|
||||||
@@ -124,7 +124,7 @@
|
|||||||
1290 GOTO 1330
|
1290 GOTO 1330
|
||||||
1300 IF Q=K THEN 1320
|
1300 IF Q=K THEN 1320
|
||||||
1310 GOTO 1330
|
1310 GOTO 1330
|
||||||
1320 IF R=L THEN 1440
|
1320 IF R=L THEN 1400
|
||||||
1330 IF P=M THEN 1350
|
1330 IF P=M THEN 1350
|
||||||
1340 GOTO 1380
|
1340 GOTO 1380
|
||||||
1350 IF Q=N THEN 1370
|
1350 IF Q=N THEN 1370
|
||||||
|
|||||||
9
30 Cube/javascript/cube.html
Normal file
9
30 Cube/javascript/cube.html
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>CUBE</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<pre id="output" style="font-size: 12pt;"></pre>
|
||||||
|
<script src="cube.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
207
30 Cube/javascript/cube.js
Normal file
207
30 Cube/javascript/cube.js
Normal file
@@ -0,0 +1,207 @@
|
|||||||
|
// CUBE
|
||||||
|
//
|
||||||
|
// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
|
||||||
|
//
|
||||||
|
|
||||||
|
function print(str)
|
||||||
|
{
|
||||||
|
document.getElementById("output").appendChild(document.createTextNode(str));
|
||||||
|
}
|
||||||
|
|
||||||
|
function input()
|
||||||
|
{
|
||||||
|
var input_element;
|
||||||
|
var input_str;
|
||||||
|
|
||||||
|
return new Promise(function (resolve) {
|
||||||
|
input_element = document.createElement("INPUT");
|
||||||
|
|
||||||
|
print("? ");
|
||||||
|
input_element.setAttribute("type", "text");
|
||||||
|
input_element.setAttribute("length", "50");
|
||||||
|
document.getElementById("output").appendChild(input_element);
|
||||||
|
input_element.focus();
|
||||||
|
input_str = undefined;
|
||||||
|
input_element.addEventListener("keydown", function (event) {
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
input_str = input_element.value;
|
||||||
|
document.getElementById("output").removeChild(input_element);
|
||||||
|
print(input_str);
|
||||||
|
print("\n");
|
||||||
|
resolve(input_str);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function tab(space)
|
||||||
|
{
|
||||||
|
var str = "";
|
||||||
|
while (space-- > 0)
|
||||||
|
str += " ";
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main program
|
||||||
|
async function main()
|
||||||
|
{
|
||||||
|
print(tab(33) + "CUBE\n");
|
||||||
|
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("DO YOU WANT TO SEE THE INSTRUCTIONS? (YES--1,NO--0)");
|
||||||
|
b7 = parseInt(await input());
|
||||||
|
if (b7 != 0) {
|
||||||
|
print("THIS IS A GAME IN WHICH YOU WILL BE PLAYING AGAINST THE\n");
|
||||||
|
print("RANDOM DECISION OF THE COMPUTER. THE FIELD OF PLAY IS A\n");
|
||||||
|
print("CUBE OF SIDE 3. ANY OF THE 27 LOCATIONS CAN BE DESIGNATED\n");
|
||||||
|
print("BY INPUTING THREE NUMBERS SUCH AS 2,3,1. AT THE START,\n");
|
||||||
|
print("YOU ARE AUTOMATICALLY AT LOCATION 1,1,1. THE OBJECT OF\n");
|
||||||
|
print("THE GAME IS TO GET TO LOCATION 3,3,3. ONE MINOR DETAIL:\n");
|
||||||
|
print("THE COMPUTER WILL PICK, AT RANDOM, 5 LOCATIONS AT WHICH\n");
|
||||||
|
print("IT WILL PLANT LAND MINES. IF YOU HIT ONE OF THESE LOCATIONS\n");
|
||||||
|
print("YOU LOSE. ONE OTHER DETAIL: YOU MAY MOVE ONLY ONE SPACE \n");
|
||||||
|
print("IN ONE DIRECTION EACH MOVE. FOR EXAMPLE: FROM 1,1,2 YOU\n");
|
||||||
|
print("MAY MOVE TO 2,1,2 OR 1,1,3. YOU MAY NOT CHANGE\n");
|
||||||
|
print("TWO OF THE NUMBERS ON THE SAME MOVE. IF YOU MAKE AN ILLEGAL\n");
|
||||||
|
print("MOVE, YOU LOSE AND THE COMPUTER TAKES THE MONEY YOU MAY\n");
|
||||||
|
print("HAVE BET ON THAT ROUND.\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("ALL YES OR NO QUESTIONS WILL BE ANSWERED BY A 1 FOR YES\n");
|
||||||
|
print("OR A 0 (ZERO) FOR NO.\n");
|
||||||
|
print("\n");
|
||||||
|
print("WHEN STATING THE AMOUNT OF A WAGER, PRINT ONLY THE NUMBER\n");
|
||||||
|
print("OF DOLLARS (EXAMPLE: 250) YOU ARE AUTOMATICALLY STARTED WITH\n");
|
||||||
|
print("500 DOLLARS IN YOUR ACCOUNT.\n");
|
||||||
|
print("\n");
|
||||||
|
print("GOOD LUCK!\n");
|
||||||
|
}
|
||||||
|
a1 = 500;
|
||||||
|
while (1) {
|
||||||
|
a = Math.floor(3 * Math.random());
|
||||||
|
if (a == 0)
|
||||||
|
a = 3;
|
||||||
|
b = Math.floor(3 * Math.random());
|
||||||
|
if (b == 0)
|
||||||
|
b = 2;
|
||||||
|
c = Math.floor(3 * Math.random());
|
||||||
|
if (c == 0)
|
||||||
|
c = 3;
|
||||||
|
d = Math.floor(3 * Math.random());
|
||||||
|
if (d == 0)
|
||||||
|
d = 1;
|
||||||
|
e = Math.floor(3 * Math.random());
|
||||||
|
if (e == 0)
|
||||||
|
e = 3;
|
||||||
|
f = Math.floor(3 * Math.random());
|
||||||
|
if (f == 0)
|
||||||
|
f = 3;
|
||||||
|
g = Math.floor(3 * Math.random());
|
||||||
|
if (g == 0)
|
||||||
|
g = 3;
|
||||||
|
h = Math.floor(3 * Math.random());
|
||||||
|
if (h == 0)
|
||||||
|
h = 3;
|
||||||
|
i = Math.floor(3 * Math.random());
|
||||||
|
if (i == 0)
|
||||||
|
i = 2;
|
||||||
|
j = Math.floor(3 * Math.random());
|
||||||
|
if (j == 0)
|
||||||
|
j = 3;
|
||||||
|
k = Math.floor(3 * Math.random());
|
||||||
|
if (k == 0)
|
||||||
|
k = 2;
|
||||||
|
l = Math.floor(3 * Math.random());
|
||||||
|
if (l == 0)
|
||||||
|
l = 3;
|
||||||
|
m = Math.floor(3 * Math.random());
|
||||||
|
if (m == 0)
|
||||||
|
m = 3;
|
||||||
|
n = Math.floor(3 * Math.random());
|
||||||
|
if (n == 0)
|
||||||
|
n = 1;
|
||||||
|
o = Math.floor(3 * Math.random());
|
||||||
|
if (o == 0)
|
||||||
|
o = 3;
|
||||||
|
print("WANT TO MAKE A WAGER?");
|
||||||
|
z = parseInt(await input());
|
||||||
|
if (z != 0) {
|
||||||
|
print("HOW MUCH ");
|
||||||
|
while (1) {
|
||||||
|
z1 = parseInt(await input());
|
||||||
|
if (a1 < z1) {
|
||||||
|
print("TRIED TO FOOL ME; BET AGAIN");
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
w = 1;
|
||||||
|
x = 1;
|
||||||
|
y = 1;
|
||||||
|
print("\n");
|
||||||
|
print("IT'S YOUR MOVE: ");
|
||||||
|
while (1) {
|
||||||
|
str = await input();
|
||||||
|
p = parseInt(str);
|
||||||
|
q = parseInt(str.substr(str.indexOf(",") + 1));
|
||||||
|
r = parseInt(str.substr(str.lastIndexOf(",") + 1));
|
||||||
|
if (p > w + 1 || q > x + 1 || r > y + 1 || (p == w + 1 && (q >= x + 1 || r >= y + 1)) || (q == x + 1 && r >= y + 1)) {
|
||||||
|
print("\n");
|
||||||
|
print("ILLEGAL MOVE, YOU LOSE.\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
w = p;
|
||||||
|
x = q;
|
||||||
|
y = r;
|
||||||
|
if (p == 3 && q == 3 && r == 3) {
|
||||||
|
won = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (p == a && q == b && r == c
|
||||||
|
|| p == d && q == e && r == f
|
||||||
|
|| p == g && q == h && r == i
|
||||||
|
|| p == j && q == k && r == l
|
||||||
|
|| p == m && q == n && r == o) {
|
||||||
|
print("******BANG******");
|
||||||
|
print("YOU LOSE!");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
won = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
print("NEXT MOVE: ");
|
||||||
|
}
|
||||||
|
if (won) {
|
||||||
|
print("CONGRATULATIONS!\n");
|
||||||
|
if (z != 0) {
|
||||||
|
z2 = a1 + z1;
|
||||||
|
print("YOU NOW HAVE " + z2 + " DOLLARS.\n");
|
||||||
|
a1 = z2;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (z != 0) {
|
||||||
|
print("\n");
|
||||||
|
z2 = a1 - z1;
|
||||||
|
if (z2 <= 0) {
|
||||||
|
print("YOU BUST.\n");
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
print(" YOU NOW HAVE " + z2 + " DOLLARS.\n");
|
||||||
|
a1 = z2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print("DO YOU WANT TO TRY AGAIN ");
|
||||||
|
s = parseInt(await input());
|
||||||
|
if (s != 1)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
print("TOUGH LUCK!\n");
|
||||||
|
print("\n");
|
||||||
|
print("GOODBYE.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
Reference in New Issue
Block a user