74 lines
2.0 KiB
C++
74 lines
2.0 KiB
C++
#pragma once
|
|
|
|
#include "PiecesList.h"
|
|
#include "Player.h"
|
|
#include "Game.h"
|
|
|
|
static const int FRAMES_PER_SECOND = 60; // the number of frames per second, all the values in the app were choosen with this number in mind
|
|
|
|
|
|
/**
|
|
* The interface between an UI and the core of the app
|
|
*/
|
|
class Menu {
|
|
private:
|
|
std::shared_ptr<PiecesList> piecesList; // the list of pieces used by the app
|
|
Player playerControls; // the controls of the player
|
|
int boardWidth; // the width of the board for the next game
|
|
int boardHeight; // the height of the board for the next game
|
|
|
|
public:
|
|
/**
|
|
* Initializes the board size and player controls to their default values
|
|
*/
|
|
Menu();
|
|
|
|
/**
|
|
* Starts a new game with the current settings
|
|
* @return The game that has been created
|
|
*/
|
|
Game startGame(Gamemode gamemode) const;
|
|
|
|
/**
|
|
* Sets the width of the board, which must be greater than 0
|
|
* @return If the width has been changed
|
|
*/
|
|
bool setBoardWidth(int width);
|
|
|
|
/**
|
|
* Sets the height of the board, which must be greater than 0
|
|
* @return If the height has been changed
|
|
*/
|
|
bool setBoardHeight(int height);
|
|
|
|
/**
|
|
* @return The width of the board
|
|
*/
|
|
int getBoardWidth() const;
|
|
|
|
/**
|
|
* @return The height of the board
|
|
*/
|
|
int getBoardHeight() const;
|
|
|
|
/**
|
|
* @return A reference to the player's controls
|
|
*/
|
|
Player& getPlayerControls();
|
|
|
|
/**
|
|
* @return A reference to the player's controls
|
|
*/
|
|
const Player& readPlayerControls() const;
|
|
|
|
/**
|
|
* @return A reference to the pieces list
|
|
*/
|
|
PiecesList& getPiecesList();
|
|
|
|
/**
|
|
* @return A reference to the pieces list
|
|
*/
|
|
const PiecesList& readPiecesList() const;
|
|
};
|