mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-24 03:58:14 -08:00
MAINT: Apply pre-commit
Remove byte-order-marker pre-commit check as there would be many adjustments necessary
This commit is contained in:
@@ -12,10 +12,10 @@ 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");
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
1085 GOTO 1100
|
||||
1090 PRINT
|
||||
1095 PRINT "MISSION ABENDED"
|
||||
1100 PRINT
|
||||
1100 PRINT
|
||||
1105 PRINT "DO YOU WANT TO TRY IT AGAIN (YES/NO)?"
|
||||
1110 INPUT Z$
|
||||
1115 IF Z$="YES" THEN 20
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
10 PRINT TAB(33);"LUNAR"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
25 PRINT:PRINT:PRINT
|
||||
30 PRINT "THIS IS A COMPUTER SIMULATION OF AN APOLLO LUNAR"
|
||||
30 PRINT "THIS IS A COMPUTER SIMULATION OF AN APOLLO LUNAR"
|
||||
40 PRINT "LANDING CAPSULE.": PRINT: PRINT
|
||||
50 PRINT "THE ON-BOARD COMPUTER HAS FAILED (IT WAS MADE BY"
|
||||
50 PRINT "THE ON-BOARD COMPUTER HAS FAILED (IT WAS MADE BY"
|
||||
60 PRINT "XEROX) SO YOU HAVE TO LAND THE CAPSULE MANUALLY."
|
||||
70 PRINT: PRINT "SET BURN RATE OF RETRO ROCKETS TO ANY VALUE BETWEEN"
|
||||
80 PRINT "0 (FREE FALL) AND 200 (MAXIMUM BURN) POUNDS PER SECOND."
|
||||
90 PRINT "SET NEW BURN RATE EVERY 10 SECONDS.": PRINT
|
||||
70 PRINT: PRINT "SET BURN RATE OF RETRO ROCKETS TO ANY VALUE BETWEEN"
|
||||
80 PRINT "0 (FREE FALL) AND 200 (MAXIMUM BURN) POUNDS PER SECOND."
|
||||
90 PRINT "SET NEW BURN RATE EVERY 10 SECONDS.": PRINT
|
||||
100 PRINT "CAPSULE WEIGHT 32,500 LBS; FUEL WEIGHT 16,500 LBS."
|
||||
110 PRINT: PRINT: PRINT: PRINT "GOOD LUCK"
|
||||
120 L=0
|
||||
130 PRINT: PRINT "SEC","MI + FT","MPH","LB FUEL","BURN RATE":PRINT
|
||||
130 PRINT: PRINT "SEC","MI + FT","MPH","LB FUEL","BURN RATE":PRINT
|
||||
140 A=120:V=1:M=33000:N=16500:G=1E-03:Z=1.8
|
||||
150 PRINT L,INT(A);INT(5280*(A-INT(A))),3600*V,M-N,:INPUT K:T=10
|
||||
150 PRINT L,INT(A);INT(5280*(A-INT(A))),3600*V,M-N,:INPUT K:T=10
|
||||
160 IF M-N<1E-03 THEN 240
|
||||
170 IF T<1E-03 THEN 150
|
||||
180 S=T: IF M>=N+S*K THEN 200
|
||||
@@ -24,12 +24,12 @@
|
||||
230 GOSUB 330: GOTO 160
|
||||
240 PRINT "FUEL OUT AT";L;"SECONDS":S=(-V+SQR(V*V+2*A*G))/G
|
||||
250 V=V+G*S: L=L+S
|
||||
260 W=3600*V: PRINT "ON MOON AT";L;"SECONDS - IMPACT VELOCITY";W;"MPH"
|
||||
274 IF W<=1.2 THEN PRINT "PERFECT LANDING!": GOTO 440
|
||||
280 IF W<=10 THEN PRINT "GOOD LANDING (COULD BE BETTER)":GOTO 440
|
||||
260 W=3600*V: PRINT "ON MOON AT";L;"SECONDS - IMPACT VELOCITY";W;"MPH"
|
||||
274 IF W<=1.2 THEN PRINT "PERFECT LANDING!": GOTO 440
|
||||
280 IF W<=10 THEN PRINT "GOOD LANDING (COULD BE BETTER)":GOTO 440
|
||||
282 IF W>60 THEN 300
|
||||
284 PRINT "CRAFT DAMAGE... YOU'RE STRANDED HERE UNTIL A RESCUE"
|
||||
286 PRINT "PARTY ARRIVES. HOPE YOU HAVE ENOUGH OXYGEN!"
|
||||
284 PRINT "CRAFT DAMAGE... YOU'RE STRANDED HERE UNTIL A RESCUE"
|
||||
286 PRINT "PARTY ARRIVES. HOPE YOU HAVE ENOUGH OXYGEN!"
|
||||
288 GOTO 440
|
||||
300 PRINT "SORRY THERE WERE NO SURVIVORS. YOU BLEW IT!"
|
||||
310 PRINT "IN FACT, YOU BLASTED A NEW LUNAR CRATER";W*.227;"FEET DEEP!"
|
||||
|
||||
@@ -9,7 +9,6 @@ Ported by Dave LeCompte
|
||||
import collections
|
||||
import math
|
||||
|
||||
|
||||
PAGE_WIDTH = 64
|
||||
|
||||
COLUMN_WIDTH = 2
|
||||
@@ -122,7 +121,7 @@ def show_landing(sim_clock, capsule):
|
||||
def show_out_of_fuel(sim_clock, capsule):
|
||||
print(f"FUEL OUT AT {sim_clock.elapsed_time} SECONDS")
|
||||
delta_t = (
|
||||
-capsule.v + math.sqrt(capsule.v ** 2 + 2 * capsule.a * capsule.g)
|
||||
-capsule.v + math.sqrt(capsule.v**2 + 2 * capsule.a * capsule.g)
|
||||
) / capsule.g
|
||||
capsule.v += capsule.g * delta_t
|
||||
sim_clock.advance(delta_t)
|
||||
@@ -186,17 +185,17 @@ class Capsule:
|
||||
new_velocity = (
|
||||
self.v
|
||||
+ self.g * delta_t
|
||||
+ self.z * (-q - q ** 2 / 2 - q ** 3 / 3 - q ** 4 / 4 - q ** 5 / 5)
|
||||
+ self.z * (-q - q**2 / 2 - q**3 / 3 - q**4 / 4 - q**5 / 5)
|
||||
)
|
||||
|
||||
# new altitude
|
||||
new_altitude = (
|
||||
self.a
|
||||
- self.g * delta_t ** 2 / 2
|
||||
- self.g * delta_t**2 / 2
|
||||
- self.v * delta_t
|
||||
+ self.z
|
||||
* delta_t
|
||||
* (q / 2 + q ** 2 / 6 + q ** 3 / 12 + q ** 4 / 20 + q ** 5 / 30)
|
||||
* (q / 2 + q**2 / 6 + q**3 / 12 + q**4 / 20 + q**5 / 30)
|
||||
)
|
||||
|
||||
return PhysicalState(altitude=new_altitude, velocity=new_velocity)
|
||||
@@ -246,7 +245,7 @@ def process_final_tick(delta_t, sim_clock, capsule):
|
||||
average_vel = (
|
||||
capsule.v
|
||||
+ math.sqrt(
|
||||
capsule.v ** 2
|
||||
capsule.v**2
|
||||
+ 2
|
||||
* capsule.a
|
||||
* (capsule.g - capsule.z * capsule.fuel_per_second / capsule.m)
|
||||
@@ -274,7 +273,7 @@ def handle_flyaway(sim_clock, capsule):
|
||||
/ (
|
||||
capsule.z
|
||||
* capsule.fuel_per_second
|
||||
* math.sqrt(w ** 2 + capsule.v / capsule.z)
|
||||
* math.sqrt(w**2 + capsule.v / capsule.z)
|
||||
)
|
||||
) + 0.05
|
||||
|
||||
|
||||
@@ -9,4 +9,3 @@ This folder for chapter #59 contains three different games. Three folders here
|
||||
- lunar
|
||||
|
||||
Conversion to [Rust](https://www.rust-lang.org)
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ fn main() {
|
||||
println!();println!();
|
||||
println!("SEC FEET SPEED FUEL PLOT OF DISTANCE");
|
||||
println!();
|
||||
let mut T=0;let mut H:i32=1000;let mut V=50;let mut F=150;
|
||||
let mut T=0;let mut H:i32=1000;let mut V=50;let mut F=150;
|
||||
let D:i32; let mut V1:i32; let mut B:i32;
|
||||
'falling: loop {
|
||||
println!(" {:<4}{:<11}{:<10}{:<8}I{capsule:>high$}", T,H,V,F,high=(H/15) as usize,capsule="*");
|
||||
@@ -76,7 +76,7 @@ fn main() {
|
||||
println!("CONGRATULATIONS! A PERFECT LANDING!!");
|
||||
println!("YOUR LICENSE WILL BE RENEWED.......LATER.");
|
||||
}
|
||||
if V1.abs()>=2 {
|
||||
if V1.abs()>=2 {
|
||||
println!("***** SORRY, BUT YOU BLEW IT!!!!");
|
||||
println!("APPROPRIATE CONDOLENCES WILL BE SENT TO YOUR NEXT OF KIN.");
|
||||
}
|
||||
@@ -90,7 +90,7 @@ fn main() {
|
||||
|
||||
fn input(prompt:&str) -> String {
|
||||
loop {
|
||||
print!("{} ? ",prompt);io::stdout().flush().unwrap();
|
||||
print!("{} ? ",prompt);io::stdout().flush().unwrap();
|
||||
let innn:String=read!("{}\n");
|
||||
let out:String = innn.trim().to_string();
|
||||
if out!="" {return out}
|
||||
@@ -98,10 +98,10 @@ fn input(prompt:&str) -> String {
|
||||
}
|
||||
fn input_int(prompt:&str) -> i32 {
|
||||
loop {
|
||||
print!("{} ? ",prompt);io::stdout().flush().unwrap();
|
||||
print!("{} ? ",prompt);io::stdout().flush().unwrap();
|
||||
match try_read!() {
|
||||
Ok(n) => return n,
|
||||
Err(_) => println!("Enter a number 0-30"),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user