diff --git a/.project b/.project
new file mode 100644
index 0000000..d4ab2e6
--- /dev/null
+++ b/.project
@@ -0,0 +1,11 @@
+
+
+ JumpGame
+
+
+
+
+
+
+
+
diff --git a/src/Acceleration.java b/src/Acceleration.java
new file mode 100644
index 0000000..3bccc68
--- /dev/null
+++ b/src/Acceleration.java
@@ -0,0 +1,25 @@
+import java.util.*;
+
+public class Acceleration {
+ private double mass;
+ private Map.Entry force;
+ private Velocity velocity;
+ private Onground onground;
+ private Map.Entry acceleration;
+ public void updateMass(double mass) {
+ this.mass = mass;
+ acceleration = (this.onground.getOnground() ? new AbstractMap.SimpleEntry<>((force.getKey()/mass), 0.0) : new AbstractMap.SimpleEntry<>((force.getKey()/mass), (force.getValue()/mass)));
+ velocity.updateAcceleration(acceleration);
+ }
+ public void updateForce(Map.Entry force) {
+ this.force = force;
+ acceleration = (this.onground.getOnground() ? new AbstractMap.SimpleEntry<>((force.getKey()/mass), 0.0) : new AbstractMap.SimpleEntry<>((force.getKey()/mass), (force.getValue()/mass)));
+ velocity.updateAcceleration(acceleration);
+ }
+ public Acceleration(Velocity velocity, Onground onground) {
+ this.onground = onground;
+ }
+ public Map.Entry getAcceleration() {
+ return acceleration;
+ }
+}
\ No newline at end of file
diff --git a/src/Clear.java b/src/Clear.java
new file mode 100644
index 0000000..5936436
--- /dev/null
+++ b/src/Clear.java
@@ -0,0 +1,11 @@
+import java.util.*;
+
+public class Clear {
+ private Position position;
+ public Clear(Position position) {
+ this.position = position;
+ }
+ public boolean getClear() {
+ return ((this.position.getPosition().getKey()>100.0) ? true : false);
+ }
+}
\ No newline at end of file
diff --git a/src/Force.java b/src/Force.java
new file mode 100644
index 0000000..e379404
--- /dev/null
+++ b/src/Force.java
@@ -0,0 +1,16 @@
+import java.util.*;
+
+public class Force {
+ private Acceleration acceleration;
+ private Map.Entry force;
+ public Force(Acceleration acceleration) {
+ this.acceleration = acceleration;
+ }
+ public void gravity(double y) {
+ this.force = new AbstractMap.SimpleEntry<>(0.0, y);
+ acceleration.updateForce(force);
+ }
+ public Map.Entry getForce() {
+ return force;
+ }
+}
\ No newline at end of file
diff --git a/src/Gameover.java b/src/Gameover.java
new file mode 100644
index 0000000..e0bef2f
--- /dev/null
+++ b/src/Gameover.java
@@ -0,0 +1,11 @@
+import java.util.*;
+
+public class Gameover {
+ private Position position;
+ public Gameover(Position position) {
+ this.position = position;
+ }
+ public boolean getGameover() {
+ return ((this.position.getPosition().getValue()<-(1.0)) ? true : false);
+ }
+}
\ No newline at end of file
diff --git a/src/Ground.java b/src/Ground.java
new file mode 100644
index 0000000..6a1763e
--- /dev/null
+++ b/src/Ground.java
@@ -0,0 +1,12 @@
+import java.util.*;
+
+public class Ground {
+ private Position position;
+ private boolean ground;
+ public Ground(Position position) {
+ this.position = position;
+ }
+ public boolean getGround() {
+ return ground;
+ }
+}
\ No newline at end of file
diff --git a/src/JumpGame.java b/src/JumpGame.java
new file mode 100644
index 0000000..9aca478
--- /dev/null
+++ b/src/JumpGame.java
@@ -0,0 +1,61 @@
+import java.util.*;
+
+public class JumpGame {
+ private Time time = new Time();
+ private Position position = new Position();
+ private Gameover gameover = new Gameover(position);
+ private Ground ground = new Ground(position);
+ private Onground onground = new Onground(ground,position);
+ private Velocity velocity = new Velocity(position,onground);
+ private Clear clear = new Clear(position);
+ private Move move = new Move(velocity);
+ private Acceleration acceleration = new Acceleration(velocity,onground);
+ private Force force = new Force(acceleration);
+ private Mass mass = new Mass(acceleration);
+ public void gravity(double y) {
+ this.force.gravity(y);
+ this.time.gravity(y);
+ }
+ public void moveY(double y) {
+ this.move.moveY(y);
+ }
+ public void moveX(double x) {
+ this.move.moveX(x);
+ }
+ public void setMass(double x) {
+ this.mass.setMass(x);
+ }
+ public Map.Entry getAcceleration() {
+ return acceleration.getAcceleration();
+ }
+ public Map.Entry getMove() {
+ return move.getMove();
+ }
+ public double getMass() {
+ return mass.getMass();
+ }
+ public boolean getClear() {
+ return clear.getClear();
+ }
+ public boolean getGround() {
+ return ground.getGround();
+ }
+ public Map.Entry getForce() {
+ return force.getForce();
+ }
+ public Map.Entry getVelocity() {
+ return velocity.getVelocity();
+ }
+ public Map.Entry getPosition() {
+ return position.getPosition();
+ }
+ public boolean getOnground() {
+ return onground.getOnground();
+ }
+ public double getTime() {
+ return time.getTime();
+ }
+ public boolean getGameover() {
+ return gameover.getGameover();
+ }
+}
\ No newline at end of file
diff --git a/src/Mass.java b/src/Mass.java
new file mode 100644
index 0000000..c381628
--- /dev/null
+++ b/src/Mass.java
@@ -0,0 +1,16 @@
+import java.util.*;
+
+public class Mass {
+ private Acceleration acceleration;
+ private double mass;
+ public Mass(Acceleration acceleration) {
+ this.acceleration = acceleration;
+ }
+ public void setMass(double x) {
+ this.mass = x;
+ acceleration.updateMass(mass);
+ }
+ public double getMass() {
+ return mass;
+ }
+}
\ No newline at end of file
diff --git a/src/Move.java b/src/Move.java
new file mode 100644
index 0000000..ab8511b
--- /dev/null
+++ b/src/Move.java
@@ -0,0 +1,19 @@
+import java.util.*;
+
+public class Move {
+ private Velocity velocity;
+ private Map.Entry move;
+ public Move(Velocity velocity) {
+ this.velocity = velocity;
+ }
+ public void moveY(double y) {
+ this.move = new AbstractMap.SimpleEntry<>(this.move.getKey(), y);
+ velocity.updateMove(move);
+ }
+ public void moveX(double x) {
+ this.move = new AbstractMap.SimpleEntry<>(x, this.move.getValue());
+ }
+ public Map.Entry getMove() {
+ return move;
+ }
+}
\ No newline at end of file
diff --git a/src/Onground.java b/src/Onground.java
new file mode 100644
index 0000000..694d757
--- /dev/null
+++ b/src/Onground.java
@@ -0,0 +1,13 @@
+import java.util.*;
+
+public class Onground {
+ private Ground ground;
+ private Position position;
+ public Onground(Ground ground, Position position) {
+ this.ground = ground;
+ this.position = position;
+ }
+ public boolean getOnground() {
+ return ((this.ground.getGround()==true)&&(this.position.getPosition().getValue()<=0.0));
+ }
+}
\ No newline at end of file
diff --git a/src/Position.java b/src/Position.java
new file mode 100644
index 0000000..0ecaa4f
--- /dev/null
+++ b/src/Position.java
@@ -0,0 +1,18 @@
+import java.util.*;
+
+public class Position {
+ private Map.Entry velocity;
+ private boolean ground;
+ private Map.Entry position;
+ public void updateVelocity(Map.Entry velocity) {
+ this.velocity = velocity;
+ position = (((ground==true)&&((this.position.getValue()+(0.01*velocity.getValue()))<0.0)) ? new AbstractMap.SimpleEntry<>((this.position.getKey()+(0.01*velocity.getKey())), 0.0) : new AbstractMap.SimpleEntry<>((this.position.getKey()+(0.01*velocity.getKey())), (this.position.getValue()+(0.01*velocity.getValue()))));
+ }
+ public void updateGround(boolean ground) {
+ this.ground = ground;
+ position = (((ground==true)&&((this.position.getValue()+(0.01*velocity.getValue()))<0.0)) ? new AbstractMap.SimpleEntry<>((this.position.getKey()+(0.01*velocity.getKey())), 0.0) : new AbstractMap.SimpleEntry<>((this.position.getKey()+(0.01*velocity.getKey())), (this.position.getValue()+(0.01*velocity.getValue()))));
+ }
+ public Map.Entry getPosition() {
+ return position;
+ }
+}
\ No newline at end of file
diff --git a/src/Time.java b/src/Time.java
new file mode 100644
index 0000000..cf5540a
--- /dev/null
+++ b/src/Time.java
@@ -0,0 +1,11 @@
+import java.util.*;
+
+public class Time {
+ private double time;
+ public void gravity(double y) {
+ this.time = (this.time+0.01);
+ }
+ public double getTime() {
+ return time;
+ }
+}
\ No newline at end of file
diff --git a/src/Velocity.java b/src/Velocity.java
new file mode 100644
index 0000000..4f20c7b
--- /dev/null
+++ b/src/Velocity.java
@@ -0,0 +1,25 @@
+import java.util.*;
+
+public class Velocity {
+ private Map.Entry acceleration;
+ private Map.Entry move;
+ private Position position;
+ private Onground onground;
+ private Map.Entry velocity;
+ public void updateAcceleration(Map.Entry acceleration) {
+ this.acceleration = acceleration;
+ velocity = ((this.onground.getOnground()&&(this.velocity.getValue()<0.0)) ? new AbstractMap.SimpleEntry<>((this.velocity.getKey()+(0.01*acceleration.getKey())), 0.0) : new AbstractMap.SimpleEntry<>((this.velocity.getKey()+(0.01*acceleration.getKey())), (this.velocity.getValue()+(0.01*acceleration.getValue()))));
+ position.updateVelocity(velocity);
+ }
+ public void updateMove(Map.Entry move) {
+ this.move = move;
+ velocity = ((this.onground.getOnground()&&(move.getValue()>=0.0)) ? move : this.velocity);
+ position.updateVelocity(velocity);
+ }
+ public Velocity(Position position, Onground onground) {
+ this.onground = onground;
+ }
+ public Map.Entry getVelocity() {
+ return velocity;
+ }
+}
\ No newline at end of file