ConnectX 3.0
ConnectX Game Suite
Loading...
Searching...
No Matches
board.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4#include <cstdint>
5#include <optional>
6
11class Board
12{
13public:
20 Board(uint8_t rows = 6, uint8_t cols = 7, uint8_t num_players = 2);
21
26 uint8_t get(uint8_t row, uint8_t col) const;
27
34 void set(uint8_t row, uint8_t col, uint8_t player_id);
35
39 bool isColumnAvailable(uint8_t col) const;
40
45 std::optional<uint8_t> getNextRow(uint8_t col) const;
46
50 bool isFull() const;
51
55 void clear();
56
57 // Getters
58 uint8_t getRows() const { return rows_; }
59 uint8_t getCols() const { return cols_; }
60 uint8_t getNumPlayers() const { return num_players_; }
61
65 const std::vector<std::vector<uint8_t>> &getData() const { return grid_; }
66
67private:
68 uint8_t rows_;
69 uint8_t cols_;
70 uint8_t num_players_;
71 std::vector<std::vector<uint8_t>> grid_; // 0 = empty, 1..N = player
72};
Definition board.hpp:12
uint8_t getRows() const
Definition board.hpp:58
const std::vector< std::vector< uint8_t > > & getData() const
Definition board.hpp:65
void set(uint8_t row, uint8_t col, uint8_t player_id)
Definition board.cpp:31
uint8_t getNumPlayers() const
Definition board.hpp:60
uint8_t getCols() const
Definition board.hpp:59
std::optional< uint8_t > getNextRow(uint8_t col) const
Definition board.cpp:53
bool isColumnAvailable(uint8_t col) const
Definition board.cpp:44
uint8_t get(uint8_t row, uint8_t col) const
Definition board.cpp:22
bool isFull() const
Definition board.cpp:72
void clear()
Definition board.cpp:84