diff --git a/frontend/core/src/com/game/tankwars/controller/GameController.java b/frontend/core/src/com/game/tankwars/controller/GameController.java
index b085ce214dbddec8e1db2c7edc2a90786008bebd..c005df1dc7f70e8f6da3034ec2b7672d02b99378 100644
--- a/frontend/core/src/com/game/tankwars/controller/GameController.java
+++ b/frontend/core/src/com/game/tankwars/controller/GameController.java
@@ -17,7 +17,7 @@ public class GameController {
         this.tankWarsGame = tankWarsGame;
     }
 
-    public void checkKeyInput(){
+    public void checkKeyInput(Tank tank){
         if(Gdx.input.isKeyPressed(Input.Keys.D)) {
             tank.moveRight();
         }
diff --git a/frontend/core/src/com/game/tankwars/model/Tank.java b/frontend/core/src/com/game/tankwars/model/Tank.java
index fb2a7ed180d0b767c5b869ad7263f66c2c5a07a7..43d4746745b3d401fd74261c9f03698e50a53c10 100644
--- a/frontend/core/src/com/game/tankwars/model/Tank.java
+++ b/frontend/core/src/com/game/tankwars/model/Tank.java
@@ -33,13 +33,13 @@ public class Tank {
     Body cannon;
     BodyDef bodyDef = new BodyDef();
     FixtureDef fixtureDef = new FixtureDef();
-    RevoluteJoint joint;
     Terrain terrain;
     private Vector2[] vertices;
     int posInVertArr;
     float cannonAngle = 90;
+    boolean directionLeft;
 
-    public Tank(int posInVertArr, Texture chassisTexture, Texture cannonTexture, Terrain terrain, TankWarsGame tankWarsGame) {
+    public Tank(int posInVertArr, Texture chassisTexture, Texture cannonTexture, Terrain terrain, TankWarsGame tankWarsGame, boolean directionLeft) {
         VIEWPORT_HEIGHT = tankWarsGame.getViewportHeight();
         VIEWPORT_WIDTH = tankWarsGame.getViewportWidth();
 
@@ -80,6 +80,14 @@ public class Tank {
         cannon.setUserData(cannonSprite);
 
         shape.dispose();
+        updateCannonPos();
+        moveLeft();
+        if(directionLeft){
+            moveRight();
+        }
+        else{
+            moveLeft();
+        }
     }
 
     public void moveRight() {
@@ -87,6 +95,10 @@ public class Tank {
         Vector2 newPos = new Vector2(vertices[posInVertArr + 1]);
         float angle = new Vector2(newPos.x - curPos.x, newPos.y - curPos.y).angleRad();
 
+        if(directionLeft){
+            chassisSprite.flip(true, false);
+            directionLeft = false;
+        }
         if (chassis.getPosition().x <= VIEWPORT_WIDTH - TANK_WIDTH){
             setPosition(newPos);
             chassis.setTransform(newPos.x, newPos.y + 0.11f, angle);
@@ -104,6 +116,11 @@ public class Tank {
         Vector2 newPos = new Vector2(vertices[posInVertArr - 1]);
         float angle = new Vector2(newPos.x - curPos.x, newPos.y - curPos.y).angleRad();
 
+        if(!directionLeft){
+            chassisSprite.flip(true, false);
+            directionLeft = true;
+        }
+
         if (chassis.getPosition().x >= TANK_WIDTH){
             setPosition(newPos);
             chassis.setTransform(newPos.x, newPos.y + 0.11f, angle);
diff --git a/frontend/core/src/com/game/tankwars/view/GameScreen.java b/frontend/core/src/com/game/tankwars/view/GameScreen.java
index 83bcae53c1bd141411ec8757f1fc4d85bb9a0853..76ff0093c61b699c7a9479e140e3d914873c6563 100644
--- a/frontend/core/src/com/game/tankwars/view/GameScreen.java
+++ b/frontend/core/src/com/game/tankwars/view/GameScreen.java
@@ -32,7 +32,8 @@ public class GameScreen implements Screen {
     int verticalScaling;
     SpriteBatch batch;
     ShapeRenderer shapeRender;
-    Tank tank;
+    Tank myTank;
+    Tank opponentTank;
     Box2dWorld model;
     World world;
     Terrain terrain;
@@ -50,6 +51,7 @@ public class GameScreen implements Screen {
 
         batch = new SpriteBatch();
         shapeRender = new ShapeRenderer();
+
         model = new Box2dWorld();
         world = Box2dWorld.getWorld();
         cam = new OrthographicCamera(VIEWPORT_WIDTH, VIEWPORT_HEIGHT);
@@ -59,12 +61,24 @@ public class GameScreen implements Screen {
 
         terrain = new Terrain();
 
-        int initPos = 50;
-        tank = new Tank(initPos, new Texture("tank-khaki.png"), new Texture("cannon.png"),terrain, tankWarsGame);
+        int myPos = 50;
+        int opponentPos = terrain.getVertices().length - 150;
+
+        myTank = new Tank(myPos,
+                new Texture("tank-khaki.png"),
+                new Texture("cannon.png"),
+                terrain,
+                tankWarsGame, true);
+        opponentTank = new Tank(opponentPos,
+                new Texture("tank-khaki.png"),
+                new Texture("cannon.png"),
+                terrain,
+                tankWarsGame, false);
+
         horizontalScaling = Gdx.graphics.getWidth() / VIEWPORT_WIDTH;
         verticalScaling = Gdx.graphics.getHeight() / VIEWPORT_HEIGHT;
 
-        controller = new GameController(tank, tankWarsGame);
+        controller = new GameController(myTank, tankWarsGame);
     }
     @Override
     public void render(float delta) {
@@ -74,7 +88,7 @@ public class GameScreen implements Screen {
         debugRenderer.render(world, cam.combined);
         shapeRender.setProjectionMatrix(cam.combined);
 
-        controller.checkKeyInput();
+        controller.checkKeyInput(myTank);
 
         Array<Body> bodies = new Array<Body>();
         world.getBodies(bodies);
@@ -85,12 +99,19 @@ public class GameScreen implements Screen {
 
             if (s != null) {
                 s.setPosition(b.getPosition().x * (float) horizontalScaling - s.getWidth() / 2, (b.getPosition().y + 0.25f) * (float) verticalScaling);
-                if (s.equals(tank.getChassisSprite())) {
-                    s.setRotation(tank.getAngle());
+                if (s.equals(myTank.getChassisSprite())) {
+                    s.setRotation(myTank.getAngle());
                 }
-                if (s.equals(tank.getCannonSprite())) {
+                if (s.equals(opponentTank.getChassisSprite())) {
+                    s.setRotation(opponentTank.getAngle());
+                }
+                if (s.equals(myTank.getCannonSprite())) {
                     s.setOrigin(s.getWidth() / 2, 0);
-                    s.setRotation(tank.getCannonAngle());
+                    s.setRotation(myTank.getCannonAngle());
+                }
+                if (s.equals(opponentTank.getCannonSprite())) {
+                    s.setOrigin(s.getWidth() / s.getWidth(), 0);
+                    s.setRotation(opponentTank.getCannonAngle());
                 }
             }
         }
@@ -100,8 +121,10 @@ public class GameScreen implements Screen {
         shapeRender.end();
 
         batch.begin();
-        tank.getChassisSprite().draw(batch);
-        tank.getCannonSprite().draw(batch);
+        myTank.getChassisSprite().draw(batch);
+        myTank.getCannonSprite().draw(batch);
+        opponentTank.getChassisSprite().draw(batch);
+        opponentTank.getCannonSprite().draw(batch);
         batch.end();
     }
 
@@ -131,8 +154,8 @@ public class GameScreen implements Screen {
 
     @Override
     public void dispose() {
-        tank.getChassisTexture().dispose();
-        tank.getCannonTexture().dispose();
+        myTank.getChassisTexture().dispose();
+        myTank.getCannonTexture().dispose();
         batch.dispose();
         shapeRender.dispose();
     }