mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-24 20:10:15 -08:00
Removed spaces from top-level directory names.
Spaces tend to cause annoyances in a Unix-style shell environment. This change fixes that.
This commit is contained in:
7
53_King/README.md
Normal file
7
53_King/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### King
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=96
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
3
53_King/csharp/README.md
Normal file
3
53_King/csharp/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html)
|
||||
|
||||
Conversion to [Microsoft C#](https://docs.microsoft.com/en-us/dotnet/csharp/)
|
||||
3
53_King/java/README.md
Normal file
3
53_King/java/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html)
|
||||
|
||||
Conversion to [Oracle Java](https://openjdk.java.net/)
|
||||
3
53_King/javascript/README.md
Normal file
3
53_King/javascript/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html)
|
||||
|
||||
Conversion to [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells)
|
||||
9
53_King/javascript/king.html
Normal file
9
53_King/javascript/king.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>KING</title>
|
||||
</head>
|
||||
<body>
|
||||
<pre id="output" style="font-size: 12pt;"></pre>
|
||||
<script src="king.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
376
53_King/javascript/king.js
Normal file
376
53_King/javascript/king.js
Normal file
@@ -0,0 +1,376 @@
|
||||
// KING
|
||||
//
|
||||
// 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;
|
||||
}
|
||||
|
||||
function hate_your_guts()
|
||||
{
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("OVER ONE THIRD OF THE POPULATION HAS DIED SINCE YOU\n");
|
||||
print("WERE ELECTED TO OFFICE. THE PEOPLE (REMAINING)\n");
|
||||
print("HATE YOUR GUTS.\n");
|
||||
}
|
||||
|
||||
// Main program
|
||||
async function main()
|
||||
{
|
||||
print(tab(34) + "KING\n");
|
||||
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("DO YOU WANT INSTRUCTIONS");
|
||||
str = await input();
|
||||
n5 = 8;
|
||||
if (str == "AGAIN") {
|
||||
while (1) {
|
||||
print("HOW MANY YEARS HAD YOU BEEN IN OFFICE WHEN INTERRUPTED");
|
||||
x5 = parseInt(await input());
|
||||
if (x5 == 0)
|
||||
return;
|
||||
if (x5 < 8)
|
||||
break;
|
||||
print(" COME ON, YOUR TERM IN OFFICE IS ONLY " + n5 + " YEARS.\n");
|
||||
}
|
||||
print("HOW MUCH DID YOU HAVE IN THE TREASURY");
|
||||
a = parseInt(await input());
|
||||
if (a < 0)
|
||||
return;
|
||||
print("HOW MANY COUNTRYMEN");
|
||||
b = parseInt(await input());
|
||||
if (b < 0)
|
||||
return;
|
||||
print("HOW MANY WORKERS");
|
||||
c = parseInt(await input());
|
||||
if (c < 0)
|
||||
return;
|
||||
while (1) {
|
||||
print("HOW MANY SQUARE MILES OF LAND");
|
||||
d = parseInt(await input());
|
||||
if (d < 0)
|
||||
return;
|
||||
if (d > 1000 && d <= 2000)
|
||||
break;
|
||||
print(" COME ON, YOU STARTED WITH 1000 SQ. MILES OF FARM LAND\n");
|
||||
print(" AND 10,000 SQ. MILES OF FOREST LAND.\n");
|
||||
}
|
||||
} else {
|
||||
if (str.substr(0, 1) != "N") {
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("CONGRATULATIONS! YOU'VE JUST BEEN ELECTED PREMIER OF SETATS\n");
|
||||
print("DETINU, A SMALL COMMUNIST ISLAND 30 BY 70 MILES LONG. YOUR\n");
|
||||
print("JOB IS TO DECIDE UPON THE CONTRY'S BUDGET AND DISTRIBUTE\n");
|
||||
print("MONEY TO YOUR COUNTRYMEN FROM THE COMMUNAL TREASURY.\n");
|
||||
print("THE MONEY SYSTEM IS RALLODS, AND EACH PERSON NEEDS 100\n");
|
||||
print("RALLODS PER YEAR TO SURVIVE. YOUR COUNTRY'S INCOME COMES\n");
|
||||
print("FROM FARM PRODUCE AND TOURISTS VISITING YOUR MAGNIFICENT\n");
|
||||
print("FORESTS, HUNTING, FISHING, ETC. HALF YOUR LAND IS FARM LAND\n");
|
||||
print("WHICH ALSO HAS AN EXCELLENT MINERAL CONTENT AND MAY BE SOLD\n");
|
||||
print("TO FOREIGN INDUSTRY (STRIP MINING) WHO IMPORT AND SUPPORT\n");
|
||||
print("THEIR OWN WORKERS. CROPS COST BETWEEN 10 AND 15 RALLODS PER\n");
|
||||
print("SQUARE MILE TO PLANT.\n");
|
||||
print("YOUR GOAL IS TO COMPLETE YOUR " + n5 + " YEAR TERM OF OFFICE.\n");
|
||||
print("GOOD LUCK!\n");
|
||||
}
|
||||
print("\n");
|
||||
a = Math.floor(60000 + (1000 * Math.random()) - (1000 * Math.random()));
|
||||
b = Math.floor(500 + (10 * Math.random()) - (10 * Math.random()));
|
||||
c = 0;
|
||||
d = 2000;
|
||||
x5 = 0;
|
||||
}
|
||||
v3 = 0;
|
||||
b5 = 0;
|
||||
x = false;
|
||||
while (1) {
|
||||
w = Math.floor(10 * Math.random() + 95);
|
||||
print("\n");
|
||||
print("YOU NOW HAVE " + a + " RALLODS IN THE TREASURY.\n");
|
||||
print(b + " COUNTRYMEN, ");
|
||||
v9 = Math.floor(((Math.random() / 2) * 10 + 10));
|
||||
if (c != 0)
|
||||
print(c + " FOREIGN WORKERS, ");
|
||||
print("AND " + Math.floor(d) + " SQ. MILES OF LAND.\n");
|
||||
print("THIS YEAR INDUSTRY WILL BUY LAND FOR " + w + " ");
|
||||
print("RALLODS PER SQUARE MILE.\n");
|
||||
print("LAND CURRENTLY COSTS " + v9 + " RALLODS PER SQUARE MILE TO PLANT.\n");
|
||||
print("\n");
|
||||
while (1) {
|
||||
print("HOW MANY SQUARE MILES DO YOU WISH TO SELL TO INDUSTRY");
|
||||
h = parseInt(await input());
|
||||
if (h < 0)
|
||||
continue;
|
||||
if (h <= d - 1000)
|
||||
break;
|
||||
print("*** THINK AGAIN. YOU ONLY HAVE " + (d - 1000) + " SQUARE MILES OF FARM LAND.\n");
|
||||
if (x == false) {
|
||||
print("\n");
|
||||
print("(FOREIGN INDUSTRY WILL ONLY BUY FARM LAND BECAUSE\n");
|
||||
print("FOREST LAND IS UNECONOMICAL TO STRIP MINE DUE TO TREES,\n");
|
||||
print("THICKER TOP SOIL, ETC.)\n");
|
||||
x = true;
|
||||
}
|
||||
}
|
||||
d = Math.floor(d - h);
|
||||
a = Math.floor(a + (h * w));
|
||||
while (1) {
|
||||
print("HOW MANY RALLODS WILL YOU DISTRIBUTE AMONG YOUR COUNTRYMEN");
|
||||
i = parseInt(await input());
|
||||
if (i < 0)
|
||||
continue;
|
||||
if (i < a)
|
||||
break;
|
||||
if (i == a) {
|
||||
j = 0;
|
||||
k = 0;
|
||||
a = 0;
|
||||
break;
|
||||
}
|
||||
print(" THINK AGAIN. YOU'VE ONLY " + a + " RALLODS IN THE TREASURY\n");
|
||||
}
|
||||
if (a) {
|
||||
a = Math.floor(a - i);
|
||||
while (1) {
|
||||
print("HOW MANY SQUARE MILES DO YOU WISH TO PLANT");
|
||||
j = parseInt(await input());
|
||||
if (j < 0)
|
||||
continue;
|
||||
if (j <= b * 2) {
|
||||
if (j <= d - 1000) {
|
||||
u1 = Math.floor(j * v9);
|
||||
if (u1 > a) {
|
||||
print(" THINK AGAIN. YOU'VE ONLY " + a + " RALLODS LEFT IN THE TREASURY.\n");
|
||||
continue;
|
||||
} else if (u1 == a) {
|
||||
k = 0;
|
||||
a = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
print(" SORRY, BUT YOU'VE ONLY " + (d - 1000) + " SQ. MILES OF FARM LAND.\n");
|
||||
continue;
|
||||
}
|
||||
print(" SORRY, BUT EACH COUNTRYMAN CAN ONLY PLANT 2 SQ. MILES.\n");
|
||||
}
|
||||
}
|
||||
if (a) {
|
||||
a -= u1;
|
||||
while (1) {
|
||||
print("HOW MANY RALLODS DO YOU WISH TO SPEND ON POLLUTION CONTROL");
|
||||
k = parseInt(await input());
|
||||
if (k < 0)
|
||||
continue;
|
||||
if (k <= a)
|
||||
break;
|
||||
print(" THINK AGAIN. YOU ONLY HAVE " + a + " RALLODS REMAINING.\n");
|
||||
}
|
||||
}
|
||||
if (h == 0 && i == 0 && j == 0 && k == 0) {
|
||||
print("GOODBYE.\n");
|
||||
print("(IF YOU WISH TO CONTINUE THIS GAME AT A LATER DATE, ANSWER\n");
|
||||
print("'AGAIN' WHEN ASKED IF YOU WANT INSTRUCTIONS AT THE START\n");
|
||||
print("OF THE GAME).\n");
|
||||
return;
|
||||
}
|
||||
print("\n");
|
||||
print("\n");
|
||||
a = Math.floor(a - k);
|
||||
a4 = a;
|
||||
if (Math.floor(i / 100 - b) < 0) {
|
||||
if (i / 100 < 50) {
|
||||
hate_your_guts();
|
||||
break;
|
||||
}
|
||||
print(Math.floor(b - (i / 100)) + " COUNTRYMEN DIED OF STARVATION\n");
|
||||
}
|
||||
f1 = Math.floor(Math.random() * (2000 - d));
|
||||
if (k >= 25)
|
||||
f1 = Math.floor(f1 / (k / 25));
|
||||
if (f1 > 0)
|
||||
print(f1 + " COUNTRYMEN DIED OF CARBON-MONOXIDE AND DUST INHALATION\n");
|
||||
funeral = false;
|
||||
if (Math.floor((i / 100) - b) >= 0) {
|
||||
if (f1 > 0) {
|
||||
print(" YOU WERE FORCED TO SPEND " + Math.floor(f1 * 9) + " RALLODS ON ");
|
||||
print("FUNERAL EXPENSES.\n");
|
||||
b5 = f1;
|
||||
a = Math.floor(a - (f1 * 9));
|
||||
funeral = true;
|
||||
}
|
||||
} else {
|
||||
print(" YOU WERE FORCED TO SPEND " + Math.floor((f1 + (b - (i / 100))) * 9));
|
||||
print(" RALLODS ON FUNERAL EXPENSES.\n");
|
||||
b5 = Math.floor(f1 + (b - (i / 100)));
|
||||
a = Math.floor(a - ((f1 + (b - (i / 100))) * 9));
|
||||
funeral = true;
|
||||
}
|
||||
if (funeral) {
|
||||
if (a < 0) {
|
||||
print(" INSUFFICIENT RESERVES TO COVER COST - LAND WAS SOLD\n");
|
||||
d = Math.floor(d + (a / w));
|
||||
a = 0;
|
||||
}
|
||||
b = Math.floor(b - b5);
|
||||
}
|
||||
c1 = 0;
|
||||
if (h != 0) {
|
||||
c1 = Math.floor(h + (Math.random() * 10) - (Math.random() * 20));
|
||||
if (c <= 0)
|
||||
c1 += 20;
|
||||
print(c1 + " WORKERS CAME TO THE COUNTRY AND ");
|
||||
}
|
||||
p1 = Math.floor(((i / 100 - b) / 10) + (k / 25) - ((2000 - d) / 50) - (f1 / 2));
|
||||
print(Math.abs(p1) + " COUNTRYMEN ");
|
||||
if (p1 >= 0)
|
||||
print("CAME TO");
|
||||
else
|
||||
print("LEFT");
|
||||
print(" THE ISLAND.\n");
|
||||
b = Math.floor(b + p1);
|
||||
c = Math.floor(c + c1);
|
||||
u2 = Math.floor(((2000 - d) * ((Math.random() + 1.5) / 2)));
|
||||
if (c != 0) {
|
||||
print("OF " + Math.floor(j) + " SQ. MILES PLANTED,");
|
||||
}
|
||||
if (j <= u2)
|
||||
u2 = j;
|
||||
print(" YOU HARVESTED " + Math.floor(j - u2) + " SQ. MILES OF CROPS.\n");
|
||||
if (u2 != 0 && t1 < 2) {
|
||||
print(" (DUE TO ");
|
||||
if (t1 != 0)
|
||||
print("INCREASED ");
|
||||
print("AIR AND WATER POLLUTION FROM FOREIGN INDUSTRY.)\n");
|
||||
}
|
||||
q = Math.floor((j - u2) * (w / 2));
|
||||
print("MAKING " + q + " RALLODS.\n");
|
||||
a = Math.floor(a + q);
|
||||
v1 = Math.floor(((b - p1) * 22) + (Math.random() * 500));
|
||||
v2 = Math.floor((2000 - d) * 15);
|
||||
print(" YOU MADE " + Math.abs(Math.floor(v1 - v2)) + " RALLODS FROM TOURIST TRADE.\n");
|
||||
if (v2 != 0 && v1 - v2 < v3) {
|
||||
print(" DECREASE BECAUSE ");
|
||||
g1 = 10 * Math.random();
|
||||
if (g1 <= 2)
|
||||
print("FISH POPULATION HAS DWINDLED DUE TO WATER POLLUTION.\n");
|
||||
else if (g1 <= 4)
|
||||
print("AIR POLLUTION IS KILLING GAME BIRD POPULATION.\n");
|
||||
else if (g1 <= 6)
|
||||
print("MINERAL BATHS ARE BEING RUINED BY WATER POLLUTION.\n");
|
||||
else if (g1 <= 8)
|
||||
print("UNPLEASANT SMOG IS DISCOURAGING SUN BATHERS.\n");
|
||||
else if (g1 <= 10)
|
||||
print("HOTELS ARE LOOKING SHABBY DUE TO SMOG GRIT.\n");
|
||||
}
|
||||
v3 = Math.floor(a + v3); // Probable bug from original game
|
||||
a = Math.floor(a + v3);
|
||||
if (b5 > 200) {
|
||||
print("\n");
|
||||
print("\n");
|
||||
print(b5 + " COUNTRYMEN DIED IN ONE YEAR!!!!!\n");
|
||||
print("DUE TO THIS EXTREME MISMANAGEMENT, YOU HAVE NOT ONLY\n");
|
||||
print("BEEN IMPEACHED AND THROWN OUT OF OFFICE, BUT YOU\n");
|
||||
m6 = Math.floor(Math.random() * 10);
|
||||
if (m6 <= 3)
|
||||
print("ALSO HAD YOUR LEFT EYE GOUGED OUT!\n");
|
||||
else if (m6 <= 6)
|
||||
print("HAVE ALSO GAINED A VERY BAD REPUTATION.\n");
|
||||
else
|
||||
print("HAVE ALSO BEEN DECLARED NATIONAL FINK.\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
return;
|
||||
}
|
||||
if (b < 343) {
|
||||
hate_your_guts();
|
||||
break;
|
||||
}
|
||||
if (a4 / 100 > 5 && b5 - f1 >= 2) {
|
||||
print("\n");
|
||||
print("MONEY WAS LEFT OVER IN THE TREASURY WHICH YOU DID\n");
|
||||
print("NOT SPEND. AS A RESULT, SOME OF YOUR COUNTRYMEN DIED\n");
|
||||
print("OF STARVATION. THE PUBLIC IS ENRAGED AND YOU HAVE\n");
|
||||
print("BEEN FORCED TO EITHER RESIGN OR COMMIT SUICIDE.\n");
|
||||
print("THE CHOICE IS YOURS.\n");
|
||||
print("IF YOU CHOOSE THE LATTER, PLEASE TURN OFF YOUR COMPUTER\n");
|
||||
print("BEFORE PROCEEDING.\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
return;
|
||||
}
|
||||
if (c > b) {
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("THE NUMBER OF FOREIGN WORKERS HAS EXCEEDED THE NUMBER\n");
|
||||
print("OF COUNTRYMEN. AS A MINORITY, THEY HAVE REVOLTED AND\n");
|
||||
print("TAKEN OVER THE COUNTRY.\n");
|
||||
break;
|
||||
}
|
||||
if (n5 - 1 == x5) {
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("CONGRATULATIONS!!!!!!!!!!!!!!!!!!\n");
|
||||
print("YOU HAVE SUCCESFULLY COMPLETED YOUR " + n5 + " YEAR TERM\n");
|
||||
print("OF OFFICE. YOU WERE, OF COURSE, EXTREMELY LUCKY, BUT\n");
|
||||
print("NEVERTHELESS, IT'S QUITE AN ACHIEVEMENT. GOODBYE AND GOOD\n");
|
||||
print("LUCK - YOU'LL PROBABLY NEED IT IF YOU'RE THE TYPE THAT\n");
|
||||
print("PLAYS THIS GAME.\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
return;
|
||||
}
|
||||
x5++;
|
||||
b5 = 0;
|
||||
}
|
||||
if (Math.random() <= 0.5) {
|
||||
print("YOU HAVE BEEN ASSASSINATED.\n");
|
||||
} else {
|
||||
print("YOU HAVE BEEN THROWN OUT OF OFFICE AND ARE NOW\n");
|
||||
print("RESIDING IN PRISON.\n");
|
||||
}
|
||||
print("\n");
|
||||
print("\n");
|
||||
}
|
||||
|
||||
main();
|
||||
268
53_King/king.bas
Normal file
268
53_King/king.bas
Normal file
@@ -0,0 +1,268 @@
|
||||
1 PRINT TAB(34);"KING"
|
||||
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
3 PRINT:PRINT:PRINT
|
||||
4 PRINT "DO YOU WANT INSTRUCTIONS";
|
||||
5 INPUT Z$
|
||||
6 N5=8
|
||||
10 IF LEFT$(Z$,1)="N" THEN 47
|
||||
11 IF Z$="AGAIN" THEN 1960
|
||||
12 PRINT:PRINT:PRINT
|
||||
20 PRINT "CONGRATULATIONS! YOU'VE JUST BEEN ELECTED PREMIER OF SETATS"
|
||||
22 PRINT "DETINU, A SMALL COMMUNIST ISLAND 30 BY 70 MILES LONG. YOUR"
|
||||
24 PRINT "JOB IS TO DECIDE UPON THE CONTRY'S BUDGET AND DISTRIBUTE"
|
||||
26 PRINT "MONEY TO YOUR COUNTRYMEN FROM THE COMMUNAL TREASURY."
|
||||
28 PRINT "THE MONEY SYSTEM IS RALLODS, AND EACH PERSON NEEDS 100"
|
||||
30 PRINT "RALLODS PER YEAR TO SURVIVE. YOUR COUNTRY'S INCOME COMES"
|
||||
32 PRINT "FROM FARM PRODUCE AND TOURISTS VISITING YOUR MAGNIFICENT"
|
||||
34 PRINT "FORESTS, HUNTING, FISHING, ETC. HALF YOUR LAND IS FARM LAND"
|
||||
36 PRINT "WHICH ALSO HAS AN EXCELLENT MINERAL CONTENT AND MAY BE SOLD"
|
||||
38 PRINT "TO FOREIGN INDUSTRY (STRIP MINING) WHO IMPORT AND SUPPORT"
|
||||
40 PRINT "THEIR OWN WORKERS. CROPS COST BETWEEN 10 AND 15 RALLODS PER"
|
||||
42 PRINT "SQUARE MILE TO PLANT."
|
||||
44 PRINT "YOUR GOAL IS TO COMPLETE YOUR";N5;"YEAR TERM OF OFFICE."
|
||||
46 PRINT "GOOD LUCK!"
|
||||
47 PRINT
|
||||
50 A=INT(60000+(1000*RND(1))-(1000*RND(1)))
|
||||
55 B=INT(500+(10*RND(1))-(10*RND(1)))
|
||||
65 D=2000
|
||||
100 W=INT(10*RND(1)+95)
|
||||
102 PRINT
|
||||
105 PRINT "YOU NOW HAVE ";A;" RALLODS IN THE TREASURY."
|
||||
110 PRINT INT(B);:PRINT "COUNTRYMEN, ";
|
||||
115 V9=INT(((RND(1)/2)*10+10))
|
||||
120 IF C=0 THEN 140
|
||||
130 PRINT INT(C);"FOREIGN WORKERS, ";
|
||||
140 PRINT "AND";INT(D);"SQ. MILES OF LAND."
|
||||
150 PRINT "THIS YEAR INDUSTRY WILL BUY LAND FOR";W;
|
||||
152 PRINT "RALLODS PER SQUARE MILE."
|
||||
155 PRINT "LAND CURRENTLY COSTS";V9;"RALLODS PER SQUARE MILE TO PLANT."
|
||||
162 PRINT
|
||||
200 PRINT "HOW MANY SQUARE MILES DO YOU WISH TO SELL TO INDUSTRY";
|
||||
210 INPUT H
|
||||
215 IF H<0 THEN 200
|
||||
220 IF H<=D-1000 THEN 300
|
||||
230 PRINT "*** THINK AGAIN. YOU ONLY HAVE";D-1000;"SQUARE MILES OF FARM LAND."
|
||||
240 IF X<>0 THEN 200
|
||||
250 PRINT:PRINT "(FOREIGN INDUSTRY WILL ONLY BUY FARM LAND BECAUSE"
|
||||
260 PRINT "FOREST LAND IS UNECONOMICAL TO STRIP MINE DUE TO TREES,"
|
||||
270 PRINT "THICKER TOP SOIL, ETC.)"
|
||||
280 X=1
|
||||
299 GOTO 200
|
||||
300 D=INT(D-H)
|
||||
310 A=INT(A+(H*W))
|
||||
320 PRINT "HOW MANY RALLODS WILL YOU DISTRIBUTE AMONG YOUR COUNTRYMEN";
|
||||
340 INPUT I
|
||||
342 IF I<0 THEN 320
|
||||
350 IF I<A THEN 400
|
||||
360 IF I=A THEN 380
|
||||
370 PRINT " THINK AGAIN. YOU'VE ONLY";A;" RALLODS IN THE TREASURY"
|
||||
375 GOTO 320
|
||||
380 J=0
|
||||
390 K=0
|
||||
395 A=0
|
||||
399 GOTO 1000
|
||||
400 A=INT(A-I)
|
||||
410 PRINT "HOW MANY SQUARE MILES DO YOU WISH TO PLANT";
|
||||
420 INPUT J
|
||||
421 IF J<0 THEN 410
|
||||
422 IF J<=B*2 THEN 426
|
||||
423 PRINT " SORRY, BUT EACH COUNTRYMAN CAN ONLY PLANT 2 SQ. MILES."
|
||||
424 GOTO 410
|
||||
426 IF J<=D-1000 THEN 430
|
||||
427 PRINT " SORRY, BUT YOU'VE ONLY";D-1000;"SQ. MILES OF FARM LAND."
|
||||
428 GOTO 410
|
||||
430 U1=INT(J*V9)
|
||||
435 IF U1<A THEN 500
|
||||
440 IF U1=A THEN 490
|
||||
450 PRINT " THINK AGAIN. YOU'VE ONLY";A;" RALLODS LEFT IN THE TREASURY."
|
||||
460 GOTO 410
|
||||
490 K=0
|
||||
495 A=0
|
||||
499 GOTO 1000
|
||||
500 A=A-U1
|
||||
510 PRINT "HOW MANY RALLODS DO YOU WISH TO SPEND ON POLLUTION CONTROL";
|
||||
520 INPUT K
|
||||
522 IF K<0 THEN 510
|
||||
530 IF K<=A THEN 1000
|
||||
540 PRINT " THINK AGAIN. YOU ONLY HAVE ";A;" RALLODS REMAINING."
|
||||
550 GOTO 510
|
||||
600 IF H<>0 THEN 1002
|
||||
602 IF I<>0 THEN 1002
|
||||
604 IF J<>0 THEN 1002
|
||||
606 IF K<>0 THEN 1002
|
||||
609 PRINT
|
||||
612 PRINT "GOODBYE."
|
||||
614 PRINT "(IF YOU WISH TO CONTINUE THIS GAME AT A LATER DATE, ANSWER"
|
||||
616 PRINT "'AGAIN' WHEN ASKED IF YOU WANT INSTRUCTIONS AT THE START"
|
||||
617 PRINT "OF THE GAME)."
|
||||
618 STOP
|
||||
1000 GOTO 600
|
||||
1002 PRINT
|
||||
1003 PRINT
|
||||
1010 A=INT(A-K)
|
||||
1020 A4=A
|
||||
1100 IF INT(I/100-B)>=0 THEN 1120
|
||||
1105 IF I/100<50 THEN 1700
|
||||
1110 PRINT INT(B-(I/100));"COUNTRYMEN DIED OF STARVATION"
|
||||
1120 F1=INT(RND(1)*(2000-D))
|
||||
1122 IF K<25 THEN 1130
|
||||
1125 F1=INT(F1/(K/25))
|
||||
1130 IF F1<=0 THEN 1150
|
||||
1140 PRINT F1;"COUNTRYMEN DIED OF CARBON-MONOXIDE AND DUST INHALATION"
|
||||
1150 IF INT((I/100)-B)<0 THEN 1170
|
||||
1160 IF F1>0 THEN 1180
|
||||
1165 GOTO 1200
|
||||
1170 PRINT " YOU WERE FORCED TO SPEND";INT((F1+(B-(I/100)))*9);
|
||||
1172 PRINT "RALLODS ON FUNERAL EXPENSES"
|
||||
1174 B5=INT(F1+(B-(I/100)))
|
||||
1175 A=INT(A-((F1+(B-(I/100)))*9))
|
||||
1176 GOTO 1185
|
||||
1180 PRINT " YOU WERE FORCED TO SPEND ";INT(F1*9);"RALLODS ON ";
|
||||
1181 PRINT "FUNERAL EXPENSES."
|
||||
1182 B5=F1
|
||||
1183 A=INT(A-(F1*9))
|
||||
1185 IF A>=0 THEN 1194
|
||||
1187 PRINT " INSUFFICIENT RESERVES TO COVER COST - LAND WAS SOLD"
|
||||
1189 D=INT(D+(A/W))
|
||||
1190 A=0
|
||||
1194 B=INT(B-B5)
|
||||
1200 IF H=0 THEN 1250
|
||||
1220 C1=INT(H+(RND(1)*10)-(RND(1)*20))
|
||||
1224 IF C>0 THEN 1230
|
||||
1226 C1=C1+20
|
||||
1230 PRINT C1;"WORKERS CAME TO THE COUNTRY AND";
|
||||
1250 P1=INT(((I/100-B)/10)+(K/25)-((2000-D)/50)-(F1/2))
|
||||
1255 PRINT ABS(P1);"COUNTRYMEN ";
|
||||
1260 IF P1<0 THEN 1275
|
||||
1265 PRINT "CAME TO";
|
||||
1270 GOTO 1280
|
||||
1275 PRINT "LEFT";
|
||||
1280 PRINT " THE ISLAND."
|
||||
1290 B=INT(B+P1)
|
||||
1292 C=INT(C+C1)
|
||||
1305 U2=INT(((2000-D)*((RND(1)+1.5)/2)))
|
||||
1310 IF C=0 THEN 1324
|
||||
1320 PRINT "OF ";INT(J);"SQ. MILES PLANTED,";
|
||||
1324 IF J>U2 THEN 1330
|
||||
1326 U2=J
|
||||
1330 PRINT " YOU HARVESTED ";INT(J-U2);"SQ. MILES OF CROPS."
|
||||
1340 IF U2=0 THEN 1370
|
||||
1344 IF T1>=2 THEN 1370
|
||||
1350 PRINT " (DUE TO ";
|
||||
1355 IF T1=0 THEN 1365
|
||||
1360 PRINT "INCREASED ";
|
||||
1365 PRINT "AIR AND WATER POLLUTION FROM FOREIGN INDUSTRY.)"
|
||||
1370 Q=INT((J-U2)*(W/2))
|
||||
1380 PRINT "MAKING";INT(Q);"RALLODS."
|
||||
1390 A=INT(A+Q)
|
||||
1400 V1=INT(((B-P1)*22)+(RND(1)*500))
|
||||
1405 V2=INT((2000-D)*15)
|
||||
1410 PRINT " YOU MADE";ABS(INT(V1-V2));"RALLODS FROM TOURIST TRADE."
|
||||
1420 IF V2=0 THEN 1450
|
||||
1425 IF V1-V2>=V3 THEN 1450
|
||||
1430 PRINT " DECREASE BECAUSE ";
|
||||
1435 G1=10*RND(1)
|
||||
1440 IF G1<=2 THEN 1460
|
||||
1442 IF G1<=4 THEN 1465
|
||||
1444 IF G1<=6 THEN 1470
|
||||
1446 IF G1<=8 THEN 1475
|
||||
1448 IF G1<=10 THEN 1480
|
||||
1450 V3=INT(A+V3)
|
||||
1451 A=INT(A+V3)
|
||||
1452 GOTO 1500
|
||||
1460 PRINT "FISH POPULATION HAS DWINDLED DUE TO WATER POLLUTION."
|
||||
1462 GOTO 1450
|
||||
1465 PRINT "AIR POLLUTION IS KILLING GAME BIRD POPULATION."
|
||||
1467 GOTO 1450
|
||||
1470 PRINT "MINERAL BATHS ARE BEING RUINED BY WATER POLLUTION."
|
||||
1472 GOTO 1450
|
||||
1475 PRINT "UNPLEASANT SMOG IS DISCOURAGING SUN BATHERS."
|
||||
1477 GOTO 1450
|
||||
1480 PRINT "HOTELS ARE LOOKING SHABBY DUE TO SMOG GRIT."
|
||||
1482 GOTO 1450
|
||||
1500 IF B5>200 THEN 1600
|
||||
1505 IF B<343 THEN 1700
|
||||
1510 IF (A4/100)>5 THEN 1800
|
||||
1515 IF C>B THEN 1550
|
||||
1520 IF N5-1=X5 THEN 1900
|
||||
1545 GOTO 2000
|
||||
1550 PRINT
|
||||
1552 PRINT
|
||||
1560 PRINT "THE NUMBER OF FOREIGN WORKERS HAS EXCEEDED THE NUMBER"
|
||||
1562 PRINT "OF COUNTRYMEN. AS A MINORITY, THEY HAVE REVOLTED AND"
|
||||
1564 PRINT "TAKEN OVER THE COUNTRY."
|
||||
1570 IF RND(1)<=.5 THEN 1580
|
||||
1574 PRINT "YOU HAVE BEEN THROWN OUT OF OFFICE AND ARE NOW"
|
||||
1576 PRINT "RESIDING IN PRISON."
|
||||
1578 GOTO 1590
|
||||
1580 PRINT "YOU HAVE BEEN ASSASSINATED."
|
||||
1590 PRINT
|
||||
1592 PRINT
|
||||
1596 STOP
|
||||
1600 PRINT
|
||||
1602 PRINT
|
||||
1610 PRINT B5;"COUNTRYMEN DIED IN ONE YEAR!!!!!"
|
||||
1615 PRINT "DUE TO THIS EXTREME MISMANAGEMENT, YOU HAVE NOT ONLY"
|
||||
1620 PRINT "BEEN IMPEACHED AND THROWN OUT OF OFFICE, BUT YOU"
|
||||
1622 M6=INT(RND(1)*10)
|
||||
1625 IF M6<=3 THEN 1670
|
||||
1630 IF M6<=6 THEN 1680
|
||||
1635 IF M6<=10 THEN 1690
|
||||
1670 PRINT "ALSO HAD YOUR LEFT EYE GOUGED OUT!"
|
||||
1672 GOTO 1590
|
||||
1680 PRINT "HAVE ALSO GAINED A VERY BAD REPUTATION."
|
||||
1682 GOTO 1590
|
||||
1690 PRINT "HAVE ALSO BEEN DECLARED NATIONAL FINK."
|
||||
1692 GOTO 1590
|
||||
1700 PRINT
|
||||
1702 PRINT
|
||||
1710 PRINT "OVER ONE THIRD OF THE POPULTATION HAS DIED SINCE YOU"
|
||||
1715 PRINT "WERE ELECTED TO OFFICE. THE PEOPLE (REMAINING)"
|
||||
1720 PRINT "HATE YOUR GUTS."
|
||||
1730 GOTO 1570
|
||||
1800 IF B5-F1<2 THEN 1515
|
||||
1807 PRINT
|
||||
1815 PRINT "MONEY WAS LEFT OVER IN THE TREASURY WHICH YOU DID"
|
||||
1820 PRINT "NOT SPEND. AS A RESULT, SOME OF YOUR COUNTRYMEN DIED"
|
||||
1825 PRINT "OF STARVATION. THE PUBLIC IS ENRAGED AND YOU HAVE"
|
||||
1830 PRINT "BEEN FORCED TO EITHER RESIGN OR COMMIT SUICIDE."
|
||||
1835 PRINT "THE CHOICE IS YOURS."
|
||||
1840 PRINT "IF YOU CHOOSE THE LATTER, PLEASE TURN OFF YOUR COMPUTER"
|
||||
1845 PRINT "BEFORE PROCEEDING."
|
||||
1850 GOTO 1590
|
||||
1900 PRINT
|
||||
1902 PRINT
|
||||
1920 PRINT "CONGRATULATIONS!!!!!!!!!!!!!!!!!!"
|
||||
1925 PRINT "YOU HAVE SUCCESFULLY COMPLETED YOUR";N5;"YEAR TERM"
|
||||
1930 PRINT "OF OFFICE. YOU WERE, OF COURSE, EXTREMELY LUCKY, BUT"
|
||||
1935 PRINT "NEVERTHELESS, IT'S QUITE AN ACHIEVEMENT. GOODBYE AND GOOD"
|
||||
1940 PRINT "LUCK - YOU'LL PROBABLY NEED IT IF YOU'RE THE TYPE THAT"
|
||||
1945 PRINT "PLAYS THIS GAME."
|
||||
1950 GOTO 1590
|
||||
1960 PRINT "HOW MANY YEARS HAD YOU BEEN IN OFFICE WHEN INTERRUPTED";
|
||||
1961 INPUT X5
|
||||
1962 IF X5<0 THEN 1590
|
||||
1963 IF X5<8 THEN 1969
|
||||
1965 PRINT " COME ON, YOUR TERM IN OFFICE IS ONLY";N5;"YEARS."
|
||||
1967 GOTO 1960
|
||||
1969 PRINT "HOW MUCH DID YOU HAVE IN THE TREASURY";
|
||||
1970 INPUT A
|
||||
1971 IF A<0 THEN 1590
|
||||
1975 PRINT "HOW MANY COUNTRYMEN";
|
||||
1976 INPUT B
|
||||
1977 IF B<0 THEN 1590
|
||||
1980 PRINT "HOW MANY WORKERS";
|
||||
1981 INPUT C
|
||||
1982 IF C<0 THEN 1590
|
||||
1990 PRINT "HOW MANY SQUARE MILES OF LAND";
|
||||
1991 INPUT D
|
||||
1992 IF D<0 THEN 1590
|
||||
1993 IF D>2000 THEN 1996
|
||||
1994 IF D>1000 THEN 100
|
||||
1996 PRINT " COME ON, YOU STARTED WITH 1000 SQ. MILES OF FARM LAND"
|
||||
1997 PRINT " AND 10,000 SQ. MILES OF FOREST LAND."
|
||||
1998 GOTO 1990
|
||||
2000 X5=X5+1
|
||||
2020 B5=0
|
||||
2040 GOTO 100
|
||||
2046 END
|
||||
3
53_King/pascal/README.md
Normal file
3
53_King/pascal/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html)
|
||||
|
||||
Conversion to [Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language))
|
||||
3
53_King/perl/README.md
Normal file
3
53_King/perl/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html)
|
||||
|
||||
Conversion to [Perl](https://www.perl.org/)
|
||||
3
53_King/python/README.md
Normal file
3
53_King/python/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html)
|
||||
|
||||
Conversion to [Python](https://www.python.org/about/)
|
||||
3
53_King/ruby/README.md
Normal file
3
53_King/ruby/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html)
|
||||
|
||||
Conversion to [Ruby](https://www.ruby-lang.org/en/)
|
||||
3
53_King/vbnet/README.md
Normal file
3
53_King/vbnet/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
Original BASIC source [downloaded from Vintage Basic](http://www.vintage-basic.net/games.html)
|
||||
|
||||
Conversion to [Visual Basic .NET](https://en.wikipedia.org/wiki/Visual_Basic_.NET)
|
||||
Reference in New Issue
Block a user