Repository navigation
Expand file tree
/
Copy pathking.js
More file actions
376 lines (368 loc) · 14 KB
/
Copy pathking.js
File metadata and controls
376 lines (368 loc) · 14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
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();