ConnectX 3.0
ConnectX Game Suite
Loading...
Searching...
No Matches
state.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4#include <cstdint>
5#include "core/board.hpp"
6#include "core/move.hpp"
7
11enum class GameStatus : uint8_t
12{
17};
18
23{
24public:
25 GameState(uint8_t rows, uint8_t cols, uint8_t num_players);
26
27 const Board &getBoard() const { return board_; }
28 Board &getBoard() { return board_; }
29
30 uint8_t getCurrentPlayer() const { return current_player_; }
31 void setCurrentPlayer(uint8_t player) { current_player_ = player; }
32
33 GameStatus getStatus() const { return status_; }
34 void setStatus(GameStatus status) { status_ = status; }
35
36 std::optional<uint8_t> getWinner() const { return winner_; }
37 void setWinner(uint8_t player) { winner_ = player; }
38
39 const std::vector<Move> &getMoveHistory() const { return move_history_; }
40 void addMove(const Move &move) { move_history_.push_back(move); }
41
42 void reset();
43
44private:
45 Board board_;
46 uint8_t current_player_;
47 uint8_t num_players_;
48 GameStatus status_;
49 std::optional<uint8_t> winner_;
50 std::vector<Move> move_history_;
51};
Definition board.hpp:12
Definition state.hpp:23
uint8_t getCurrentPlayer() const
Definition state.hpp:30
GameStatus getStatus() const
Definition state.hpp:33
void setStatus(GameStatus status)
Definition state.hpp:34
void setWinner(uint8_t player)
Definition state.hpp:37
const Board & getBoard() const
Definition state.hpp:27
void setCurrentPlayer(uint8_t player)
Definition state.hpp:31
void reset()
Definition state.cpp:13
const std::vector< Move > & getMoveHistory() const
Definition state.hpp:39
Board & getBoard()
Definition state.hpp:28
void addMove(const Move &move)
Definition state.hpp:40
std::optional< uint8_t > getWinner() const
Definition state.hpp:36
GameStatus
Definition state.hpp:12
Definition move.hpp:9