mirror of
https://github.com/caperren/school_archives.git
synced 2025-11-09 13:41:13 +00:00
73 lines
1.7 KiB
C++
73 lines
1.7 KiB
C++
#ifndef GAMEDRIVER_H
|
|
#define GAMEDRIVER_H
|
|
|
|
#include "OthelloBoard.h"
|
|
#include "Player.h"
|
|
#include "HumanPlayer.h"
|
|
#include "MinimaxPlayer.h"
|
|
|
|
/**
|
|
* This class represents the main driver for the game. The driver controls the turn-based behavior
|
|
* of the game.
|
|
*/
|
|
class GameDriver {
|
|
public:
|
|
|
|
/**
|
|
* @param p1type A string (human or minimax) describing the type of Player1
|
|
* @param p2type A string (human or minimax) describing the type of Player2
|
|
* @param num_rows The number of rows in Othello
|
|
* @param num_cols The number of columns in Othello
|
|
* This is the constructor for the GameDriver
|
|
*/
|
|
GameDriver(char* p1type, char* p2type, int num_rows, int num_cols);
|
|
|
|
/**
|
|
* @param other The GameDriver object you are copying from
|
|
* Copy constructor for the GameDriver class
|
|
*/
|
|
GameDriver(const GameDriver& other);
|
|
|
|
/**
|
|
* @param rhs The right-hand side of the assignment
|
|
* @return The left-hand side of the assignment
|
|
* Overloaded assignment operator for the GameDriver class.
|
|
*/
|
|
GameDriver& operator=(const GameDriver& rhs);
|
|
|
|
/**
|
|
* Destructor for the GameDriver class
|
|
*/
|
|
virtual ~GameDriver();
|
|
|
|
/**
|
|
* Runs the game and keeps track of the turns.
|
|
*/
|
|
void run();
|
|
|
|
/**
|
|
* Displays the game.
|
|
*/
|
|
void display();
|
|
|
|
private:
|
|
|
|
/** Internal Othello board object */
|
|
OthelloBoard* board;
|
|
|
|
/** Player 1 object */
|
|
Player* p1;
|
|
|
|
/** Player 2 object */
|
|
Player* p2;
|
|
|
|
/**
|
|
* @param curr_player A pointer to the player that has the current move
|
|
* @param opponent A pointer to the opponent for the player that has the current move
|
|
* Handles actually making a move in the game.
|
|
*/
|
|
void process_move(Player* curr_player, Player* opponent);
|
|
};
|
|
|
|
#endif
|