diff --git a/Array-Jumper/Array-Jumper.vcxproj b/Array-Jumper/Array-Jumper.vcxproj
index 658ea835..2cc9dc75 100644
--- a/Array-Jumper/Array-Jumper.vcxproj
+++ b/Array-Jumper/Array-Jumper.vcxproj
@@ -137,6 +137,8 @@
+
+
@@ -154,6 +156,8 @@
+
+
diff --git a/Array-Jumper/Array-Jumper.vcxproj.filters b/Array-Jumper/Array-Jumper.vcxproj.filters
index dff4a580..fdd0c849 100644
--- a/Array-Jumper/Array-Jumper.vcxproj.filters
+++ b/Array-Jumper/Array-Jumper.vcxproj.filters
@@ -44,6 +44,8 @@
+
+
@@ -74,6 +76,8 @@
+
+
diff --git a/Array-Jumper/header/Player/PlayerModel.h b/Array-Jumper/header/Player/PlayerModel.h
new file mode 100644
index 00000000..257df3e2
--- /dev/null
+++ b/Array-Jumper/header/Player/PlayerModel.h
@@ -0,0 +1,34 @@
+#pragma once
+namespace Player
+{
+ enum class PlayerState
+ {
+ ALIVE,
+ DEAD
+ };
+
+ class PlayerModel
+ {
+ private:
+
+ const int max_lives = 3;
+
+ PlayerState player_state;
+ int current_position;
+ int current_lives;
+
+ public:
+
+ void initialize();
+
+ PlayerState getPlayerState();
+ void setPlayerState(PlayerState new_player_state);
+
+ void resetPlayer();
+ void resetPosition();
+ int getCurrentPosition();
+ void setCurrentPosition(int new_position);
+ void decreamentLife();
+ int getCurrentLives();
+ };
+}
\ No newline at end of file
diff --git a/Array-Jumper/header/Player/PlayerView.h b/Array-Jumper/header/Player/PlayerView.h
new file mode 100644
index 00000000..db6be535
--- /dev/null
+++ b/Array-Jumper/header/Player/PlayerView.h
@@ -0,0 +1,31 @@
+#pragma once
+#include "../../header/UI/UIElement/ImageView.h"
+
+namespace Player
+{
+ class PlayerController;
+ class PlayerView
+ {
+ private:
+ sf::RenderWindow* game_window;
+ UI::UIElement::ImageView* player_image;
+
+ float player_height;
+ float player_width;
+
+ void initializePlayerImage();
+ void drawPlayer();
+ void loadPlayer();
+ void calculatePlayerDimensions();
+ void updatePlayerPosition();
+ sf::Vector2f calulcatePlayerPosition();
+
+ public:
+ PlayerView();
+ ~PlayerView();
+
+ void initialize();
+ void update();
+ void render();
+ };
+}
\ No newline at end of file
diff --git a/Array-Jumper/source/Player/PlayerModel.cpp b/Array-Jumper/source/Player/PlayerModel.cpp
new file mode 100644
index 00000000..59e04f93
--- /dev/null
+++ b/Array-Jumper/source/Player/PlayerModel.cpp
@@ -0,0 +1,37 @@
+#include "../../header/Player/PlayerModel.h"
+
+
+namespace Player
+{
+ void Player::PlayerModel::initialize()
+ {
+ //Yet to implement
+ }
+
+ PlayerState PlayerModel::getPlayerState()
+ {
+ return player_state;
+ }
+
+ void PlayerModel::setPlayerState(PlayerState new_player_state)
+ {
+ player_state = new_player_state;
+ }
+
+ void PlayerModel::resetPlayer()
+ {
+ current_position = 0;
+ player_state = PlayerState::ALIVE;
+ current_lives = max_lives;
+ }
+
+ void PlayerModel::resetPosition()
+ {
+ current_position = 0;
+ }
+
+ int PlayerModel::getCurrentPosition() { return current_position; }
+ void PlayerModel::setCurrentPosition(int new_position) { current_position = new_position; }
+ void PlayerModel::decreamentLife() { current_lives--; }
+ int PlayerModel::getCurrentLives() { return current_lives; }
+}
\ No newline at end of file
diff --git a/Array-Jumper/source/Player/PlayerView.cpp b/Array-Jumper/source/Player/PlayerView.cpp
new file mode 100644
index 00000000..270d7002
--- /dev/null
+++ b/Array-Jumper/source/Player/PlayerView.cpp
@@ -0,0 +1,71 @@
+#include "../../header/Player/PlayerView.h"
+#include
+#include "../../header/Global/Config.h"
+#include "../../source/Global/ServiceLocator.cpp"
+#include "../../header/UI/UIElement/ImageView.h"
+
+
+using namespace Global;
+using namespace UI::UIElement;
+//using namespace Level;
+namespace Player
+{
+ PlayerView::PlayerView()
+ {
+ game_window = nullptr;
+ player_image = new ImageView();
+ }
+
+ PlayerView::~PlayerView() {}
+
+ void PlayerView::initialize()
+ {
+ game_window = ServiceLocator::getInstance()->getGraphicService()->getGameWindow();
+ loadPlayer();
+ }
+
+ sf::Vector2f PlayerView::calulcatePlayerPosition()
+ {
+ return sf::Vector2f(0, 0);
+ }
+
+ void PlayerView::updatePlayerPosition()
+ {
+ player_image->setPosition(calulcatePlayerPosition());
+ }
+
+ void PlayerView::drawPlayer()
+ {
+ player_image->render();
+ }
+
+ void PlayerView::update()
+ {
+ updatePlayerPosition();
+ }
+
+ void PlayerView::render()
+ {
+ //Yet to implement
+ }
+
+ void PlayerView::loadPlayer()
+ {
+ calculatePlayerDimensions();
+ initializePlayerImage();
+ }
+
+ void PlayerView::calculatePlayerDimensions()
+ {
+ player_height = 1000.f;
+ player_width = 1000.f;
+ }
+
+ void PlayerView::initializePlayerImage()
+ {
+ player_image->initialize(Config::character_texture_path,
+ player_width,
+ player_height,
+ sf::Vector2f(0, 0));
+ }
+}
\ No newline at end of file