From 609197b1f46fe110cb73bed7a306f480f7a4aeeb Mon Sep 17 00:00:00 2001 From: jorge Date: Mon, 15 Mar 2021 21:52:09 -0400 Subject: [PATCH] OnBoardComputer works --- .idea/compiler.xml | 1 + .idea/misc.xml | 2 +- src/main/java/BurnDataStream.java | 2 +- src/main/java/OnBoardComputer.java | 12 ++++++++---- src/main/java/Simulation.java | 13 ++++++++----- src/main/java/Vehicle.java | 30 +++++++++++++++++------------- 6 files changed, 36 insertions(+), 24 deletions(-) diff --git a/.idea/compiler.xml b/.idea/compiler.xml index dde6fa0..e2222bb 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -6,6 +6,7 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index accd629..4b661a5 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,7 +8,7 @@ - + \ No newline at end of file diff --git a/src/main/java/BurnDataStream.java b/src/main/java/BurnDataStream.java index 051be0a..a442257 100644 --- a/src/main/java/BurnDataStream.java +++ b/src/main/java/BurnDataStream.java @@ -3,7 +3,7 @@ public class BurnDataStream implements BurnStream { // change them to see if you can get the lander to make a soft landing. // burns are between 0 and 200. This burn array usually crashes. - int burnArray[] = {100, 100, 200, 200, 100, 100, 0, 0, 200, 100, 100, 0, 0, 0, 0}; + int burnArray[] = {0,0,200,200,200,200,200,200,200,200,200,200,200,170,100,100,130,95,104,100,100,100,100}; int burnIdx = -1; public BurnDataStream() { } diff --git a/src/main/java/OnBoardComputer.java b/src/main/java/OnBoardComputer.java index b219803..369a199 100644 --- a/src/main/java/OnBoardComputer.java +++ b/src/main/java/OnBoardComputer.java @@ -1,11 +1,15 @@ public class OnBoardComputer implements BurnStream { + int burnArray[] = {0,0,200,200,200,200,200,200,200,200,200,200,200,170,100,100,130,95,104,100,100,100,100}; + int burnIdx = -1; @Override public int getNextBurn(DescentEvent status) { - int burn = 0; - - System.out.println(burn); /*hack!*/ - return burn; + if (burnIdx < burnArray.length) { + burnIdx++; + System.out.println(burnArray[burnIdx]); /*hack!*/ + return burnArray[burnIdx]; + } + return 0; } } diff --git a/src/main/java/Simulation.java b/src/main/java/Simulation.java index 482634f..0ee34ce 100644 --- a/src/main/java/Simulation.java +++ b/src/main/java/Simulation.java @@ -1,6 +1,7 @@ public class Simulation { private final Vehicle vehicle; + public Simulation(Vehicle v) { this.vehicle = v; } @@ -29,8 +30,8 @@ public String gameHeader() { public String getHeader() { String s = ""; s = s + "\nTime\t"; - s = s + "Velocity\t\t"; s = s + "Fuel\t\t"; - s = s + "Altitude\t\t"; s = s + "Burn\n"; + s = s + "Velocity\t"; s = s + "Fuel\t\t"; + s = s + "Altitude\t"; s = s + "Burn\n"; s = s + "----\t"; s = s + "-----\t\t"; s = s + "----\t\t"; @@ -73,9 +74,11 @@ public int runSimulation(BurnStream burnSource) { } public static void main(String[] args) { - // create a new Simulation object with a random starting altitude - // create a new BurnInputStream - // pass the new BurnInputStream to the runSimulation method + Vehicle ship = new Vehicle(9000); + Simulation newSim = new Simulation(ship);// create a new Simulation object with a random starting altitude + //BurnInputStream bis = new BurnInputStream();// create a new BurnInputStream + OnBoardComputer computer = new OnBoardComputer(); + newSim.runSimulation(computer);// pass the new BurnInputStream to the runSimulation method } } diff --git a/src/main/java/Vehicle.java b/src/main/java/Vehicle.java index e67f2c0..10b8d75 100644 --- a/src/main/java/Vehicle.java +++ b/src/main/java/Vehicle.java @@ -19,8 +19,8 @@ public Vehicle(int InitialAltitude) { public static final int FLYING = 1; // this is initial vehicle setup - int Altitude= 8000; - int PrevAltitude= 8000; + int Altitude= 9000; + int PrevAltitude= 9000; int Velocity= 1000; int Fuel = 12000; @@ -54,30 +54,34 @@ public String checkFinalStatus() { public int computeDeltaV() { // return velocity + gravity - burn amount - return 0; + return Velocity + Gravity - Burn; } public void adjustForBurn(int burnAmount) { - // set burn to burnamount requested - // save previousAltitude with current Altitude - // set new velocity to result of computeDeltaV function. - // subtract speed from Altitude - // subtract burn amount fuel used from tank + Burn = burnAmount;// set burn to burnamount requested + PrevAltitude = Altitude;// save previousAltitude with current Altitude + Velocity = computeDeltaV();// set new velocity to result of computeDeltaV function. + Altitude -= Velocity;// subtract speed from Altitude + Fuel -= burnAmount;// subtract burn amount fuel used from tank } public boolean stillFlying() { - // return true if altitude is positive + if(Altitude > 0) {// return true if altitude is positive + return true; + } return false; } public boolean outOfFuel() { - // return true if fuel is less than or equal to zero - return true; + if(Fuel <= 0) {// return true if fuel is less than or equal to zero + return true; + } + return false; } public DescentEvent getStatus(int tick) { - // create a return a new DescentEvent object + DescentEvent var = new DescentEvent(tick, Velocity, Fuel, Altitude, Flying);// create a return a new DescentEvent object // filled in with the state of the vehicle. - return null; + return var; } }