Skip to content

Commit

Permalink
add turn and winner message
Browse files Browse the repository at this point in the history
  • Loading branch information
Tejas2805 committed Jul 14, 2020
1 parent b44da2f commit 982f55a
Show file tree
Hide file tree
Showing 10 changed files with 59 additions and 23 deletions.
Binary file added Resources/OpenSans-Bold.ttf
Binary file not shown.
Binary file added Resources/OpenSans-BoldItalic.ttf
Binary file not shown.
Binary file added Resources/OpenSans-ExtraBold.ttf
Binary file not shown.
Binary file added Resources/OpenSans-ExtraBoldItalic.ttf
Binary file not shown.
Binary file added Resources/OpenSans-Light.ttf
Binary file not shown.
Binary file added Resources/OpenSans-LightItalic.ttf
Binary file not shown.
Binary file added Resources/OpenSans-Regular.ttf
Binary file not shown.
Binary file added Resources/OpenSans-SemiBold.ttf
Binary file not shown.
75 changes: 53 additions & 22 deletions src/view.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ View::View(Model const& model)
, player_grey_token_(7, dark_grey_color)
, position_sprite_(8, red_color)
, background_black_sprite(this->initial_window_dimensions(), black_color)
, background_white_sprite(this->initial_window_dimensions(),
white_color)
, background_grey_sprite(this->initial_window_dimensions(),
light_grey_color)
// You may want to add sprite initialization here
Expand All @@ -36,40 +34,56 @@ void View::draw(Sprite_set& set)
{
Position centre = model_.board().center();

ge211::Text_sprite::Builder black_turn_builder(sans30);
black_turn_builder.color(white_color) << "BLACK TURN";
black_turn_sprite.reconfigure(black_turn_builder);

ge211::Text_sprite::Builder white_turn_builder(sans30);
white_turn_builder.color(white_color) << "WHITE TURN";
white_turn_sprite.reconfigure(white_turn_builder);

ge211::Text_sprite::Builder black_winner_builder(sans30);
black_winner_builder.color(white_color) << "BLACK WINS";
black_wins_sprite.reconfigure(black_winner_builder);

ge211::Text_sprite::Builder white_winner_builder(sans30);
white_winner_builder.color(white_color) << "WHITE WINS";
white_wins_sprite.reconfigure(white_winner_builder);

ge211::Text_sprite::Builder neither_winner_builder(sans30);
neither_winner_builder.color(white_color) << "DRAW";
neither_wins_sprite.reconfigure(neither_winner_builder);

for(int i = 0; i < model_.board().dimensions().width; i++) {
for (int j = 0; j < model_.board().dimensions().height; j++) {

set.add_sprite(background_black_sprite, {0,0}, 0);
Position on_board = {i, j};
ge211::Position screen_pos = board_to_screen_(on_board);
set.add_sprite(board_sprite_, screen_pos, 1);
const Move* move = model_.find_move(on_board);

Player player = model_.operator[](on_board);
if(player == Player::dark) {
set.add_sprite(player_black_token_, screen_pos, 3);
}
else if(player == Player::light) {
set.add_sprite(player_white_token_, screen_pos, 3);
}

if(move != nullptr && player == Player::neither) {
set.add_sprite(position_sprite_, screen_pos, 2);
}

if(model_.is_game_over()) {
ge211::Rectangle board = model_.board();
set.add_sprite(background_grey_sprite, {0,0}, 0);
if(model_.winner() == Player::light) {
set.add_sprite(white_wins_sprite, {
(initial_window_dimensions()
.width / 2 - 50), 0}, 4);
for (Position each_pos: board) {
ge211::Position final_screen_pos =
board_to_screen_(each_pos);
board_to_screen_(each_pos);
if(model_.operator[](each_pos) == Player::dark){
set.add_sprite(player_grey_token_,
final_screen_pos, 3);
final_screen_pos, 3);

}
}
}
else if(model_.winner() == Player::dark){
else if(model_.winner() == Player::dark) {
set.add_sprite(black_wins_sprite, {
(initial_window_dimensions()
.width / 2 - 50), 0}, 4);
for (Position each_pos: board) {
ge211::Position final_screen_pos =
board_to_screen_(each_pos);
Expand All @@ -80,20 +94,37 @@ void View::draw(Sprite_set& set)
}
}
} else if (model_.winner() == Player::neither){
set.add_sprite(neither_wins_sprite, {
(initial_window_dimensions()
.width / 2 - 50), 0}, 4);
for (Position each_pos: board) {
ge211::Position final_screen_pos =
board_to_screen_(each_pos);
set.add_sprite(player_grey_token_,
final_screen_pos, 3);
set.add_sprite(player_grey_token_,
final_screen_pos, 3);

}
}
}
else if(model_.turn() == Player::dark) {
set.add_sprite(background_black_sprite, {0,0}, 0);
set.add_sprite(black_turn_sprite, {(initial_window_dimensions()
.width / 2 - 50), 0}, 4);
}
else if(model_.turn() == Player:: light) {
set.add_sprite(background_white_sprite, {0,0}, 0);
else {
set.add_sprite(white_turn_sprite, {(initial_window_dimensions()
.width / 2 - 50), 0}, 4);
}

Player player = model_.operator[](on_board);
if(player == Player::dark) {
set.add_sprite(player_black_token_, screen_pos, 3);
}
else if(player == Player::light) {
set.add_sprite(player_white_token_, screen_pos, 3);
}

if(move != nullptr && player == Player::neither) {
set.add_sprite(position_sprite_, screen_pos, 2);
}
}
}
Expand Down
7 changes: 6 additions & 1 deletion src/view.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public:
void draw(ge211::Sprite_set& set);

ge211::Position board_to_screen_(ge211::Position board_pos) const;
ge211::Font sans30{"OpenSans-Light.ttf", 15};

ge211::Position screen_to_board_(ge211::Position screen_pos) const;

Expand All @@ -31,8 +32,12 @@ private:
ge211::Circle_sprite const player_black_token_;
ge211::Circle_sprite const player_grey_token_;
ge211::Rectangle_sprite const background_black_sprite;
ge211::Rectangle_sprite const background_white_sprite;
ge211::Rectangle_sprite const background_grey_sprite;
ge211::Text_sprite black_turn_sprite;
ge211::Text_sprite white_turn_sprite;
ge211::Text_sprite black_wins_sprite;
ge211::Text_sprite white_wins_sprite;
ge211::Text_sprite neither_wins_sprite;

ge211::Rectangle_sprite const
board_sprite_ {{16, 16}, green_color};
Expand Down

0 comments on commit 982f55a

Please sign in to comment.