mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-22 15:16:33 -08:00
factor out silly play again prompt
This commit is contained in:
@@ -21,13 +21,11 @@ public class Splat {
|
|||||||
while (true) {
|
while (true) {
|
||||||
|
|
||||||
InitialJumpConditions jump = buildInitialConditions();
|
InitialJumpConditions jump = buildInitialConditions();
|
||||||
final float V = jump.getTerminalVelocity();
|
|
||||||
final float A = jump.getGravitationalAcceleration();
|
|
||||||
|
|
||||||
System.out.println();
|
System.out.println();
|
||||||
System.out.printf(" ALTITUDE = %d FT\n", jump.getAltitude());
|
System.out.printf(" ALTITUDE = %d FT\n", jump.getAltitude());
|
||||||
System.out.printf(" TERM. VELOCITY = %.2f FT/SEC +/-5%%\n", jump.getOriginalTerminalVelocity());
|
System.out.printf(" TERM. VELOCITY = %.2f FT/SEC +/-5%%\n", jump.getOriginalTerminalVelocity());
|
||||||
System.out.printf(" ACCELERATION = %.2f FT/SEC/SEC +/-5%%\n", jump.getOriginalGravitationalAcceleration());
|
System.out.printf(" ACCELERATION = %.2f FT/SEC/SEC +/-5%%\n", jump.getOriginalAcceleration());
|
||||||
|
|
||||||
System.out.println("SET THE TIMER FOR YOUR FREEFALL.");
|
System.out.println("SET THE TIMER FOR YOUR FREEFALL.");
|
||||||
System.out.print("HOW MANY SECONDS ");
|
System.out.print("HOW MANY SECONDS ");
|
||||||
@@ -35,6 +33,8 @@ public class Splat {
|
|||||||
System.out.println("HERE WE GO.\n");
|
System.out.println("HERE WE GO.\n");
|
||||||
System.out.println("TIME (SEC) DIST TO FALL (FT)");
|
System.out.println("TIME (SEC) DIST TO FALL (FT)");
|
||||||
System.out.println("========== =================");
|
System.out.println("========== =================");
|
||||||
|
final float V = jump.getTerminalVelocity();
|
||||||
|
final float A = jump.getAcceleration();
|
||||||
boolean splat = false;
|
boolean splat = false;
|
||||||
boolean terminalReached = false;
|
boolean terminalReached = false;
|
||||||
float D = 0.0f;
|
float D = 0.0f;
|
||||||
@@ -123,35 +123,22 @@ public class Splat {
|
|||||||
System.out.println("SUCCESSFUL JUMP!!!");
|
System.out.println("SUCCESSFUL JUMP!!!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean chosen = false;
|
if(!playAgain()){
|
||||||
while (!chosen) {
|
|
||||||
System.out.print("DO YOU WANT TO PLAY AGAIN ");
|
|
||||||
String Z = scanner.next();
|
|
||||||
if (Z.equals("YES")) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (Z.equals("NO")) {
|
|
||||||
System.out.print("PLEASE ");
|
|
||||||
while (true) {
|
|
||||||
Z = scanner.next();
|
|
||||||
if (Z.equals("YES")) {
|
|
||||||
chosen = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (Z.equals("NO")) {
|
|
||||||
System.out.println("SSSSSSSSSS.");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
System.out.print("YES OR NO ");
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
} else {
|
|
||||||
System.out.print("YES OR NO ");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean playAgain() {
|
||||||
|
if (askYesNo("DO YOU WANT TO PLAY AGAIN ")) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (askYesNo("PLEASE")) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
System.out.println("SSSSSSSSSS.");
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showRandomSplatMessage() {
|
private void showRandomSplatMessage() {
|
||||||
@@ -173,8 +160,8 @@ public class Splat {
|
|||||||
private InitialJumpConditions buildInitialConditions() {
|
private InitialJumpConditions buildInitialConditions() {
|
||||||
System.out.print("\n\n");
|
System.out.print("\n\n");
|
||||||
float terminalVelocity = promptTerminalVelocity();
|
float terminalVelocity = promptTerminalVelocity();
|
||||||
float gravitationalAcceleration = promptGravitationalAcceleration();
|
float acceleration = promptGravitationalAcceleration();
|
||||||
return InitialJumpConditions.create(terminalVelocity, gravitationalAcceleration);
|
return InitialJumpConditions.create(terminalVelocity, acceleration);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showIntroduction() {
|
private void showIntroduction() {
|
||||||
@@ -226,21 +213,20 @@ public class Splat {
|
|||||||
return planet.getAcceleration();
|
return planet.getAcceleration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Immutable
|
// Immutable
|
||||||
static class InitialJumpConditions {
|
static class InitialJumpConditions {
|
||||||
private final float originalTerminalVelocity;
|
private final float originalTerminalVelocity;
|
||||||
private final float originalGravitationalAcceleration;
|
private final float originalAcceleration;
|
||||||
private final float terminalVelocity;
|
private final float terminalVelocity;
|
||||||
private final float gravitationalAcceleration;
|
private final float acceleration;
|
||||||
private final int altitude;
|
private final int altitude;
|
||||||
|
|
||||||
private InitialJumpConditions(float originalTerminalVelocity, float originalGravitationalAcceleration,
|
private InitialJumpConditions(float originalTerminalVelocity, float originalAcceleration,
|
||||||
float terminalVelocity, float gravitationalAcceleration, int altitude) {
|
float terminalVelocity, float acceleration, int altitude) {
|
||||||
this.originalTerminalVelocity = originalTerminalVelocity;
|
this.originalTerminalVelocity = originalTerminalVelocity;
|
||||||
this.originalGravitationalAcceleration = originalGravitationalAcceleration;
|
this.originalAcceleration = originalAcceleration;
|
||||||
this.terminalVelocity = terminalVelocity;
|
this.terminalVelocity = terminalVelocity;
|
||||||
this.gravitationalAcceleration = gravitationalAcceleration;
|
this.acceleration = acceleration;
|
||||||
this.altitude = altitude;
|
this.altitude = altitude;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -259,16 +245,16 @@ public class Splat {
|
|||||||
return originalTerminalVelocity;
|
return originalTerminalVelocity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getOriginalGravitationalAcceleration() {
|
public float getOriginalAcceleration() {
|
||||||
return originalGravitationalAcceleration;
|
return originalAcceleration;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getTerminalVelocity() {
|
public float getTerminalVelocity() {
|
||||||
return terminalVelocity;
|
return terminalVelocity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getGravitationalAcceleration() {
|
public float getAcceleration() {
|
||||||
return gravitationalAcceleration;
|
return acceleration;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getAltitude() {
|
public int getAltitude() {
|
||||||
@@ -276,7 +262,7 @@ public class Splat {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public float getTimeOfTerminalAccelerationReached(){
|
public float getTimeOfTerminalAccelerationReached(){
|
||||||
return terminalVelocity / gravitationalAcceleration;
|
return terminalVelocity / acceleration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user