Time for action – connecting the game algorithm
It would take us too long to implement a full chess game algorithm here, so we will instead settle for a much simpler game called Fox and Hounds. One of the players has four pawns (hounds) which can only move over black fields and the pawn can only move in a forward fashion (toward higher ranks). The other player has just a single pawn (fox) which starts from the opposite side of the board.
It can also move only over black fields; however it can move both forwards (toward higher ranks) as well as backwards (toward lower ranks). Players move in turns by moving their pawn by to a neighboring black field. The goal of the fox is to reach the opposite end of the board; the goal of the hounds is to trap the fox so that it can't make a move.
Time to get to work! First we will extend the ChessAlgorithm
class with the required interface:
class ChessAlgorithm : public QObject { Q_OBJECT Q_ENUMS(Result Player) Q_PROPERTY(Result result READ result...