public static OthelloGame GetInverseGame(OthelloGame game) { OthelloGame newGame = game.DeepCopy(); for (int i = 0; i <= game.GetMovesMade(); i++) { for (int j = 0; j < BOARD_SIZE; j++) { for (int k = 0; k < BOARD_SIZE; k++) { if (game.BoardHistory[i] != null) { newGame.BoardHistory[i][j, k] = OpposingPlayer(game.BoardHistory[i][j, k]); } } } } for (int i = 0; i < BOARD_SIZE; i++) { for (int j = 0; j < BOARD_SIZE; j++) { newGame.Board[i, j] = OpposingPlayer(game.Board[i, j]); } } return(newGame); }
public static OthelloGame GetReflectedAcrossA1H8(OthelloGame game) { OthelloGame newGame = game.DeepCopy(); for (int i = 0; i <= game.GetMovesMade(); i++) { for (int j = 0; j < BOARD_SIZE; j++) { for (int k = 0; k < BOARD_SIZE; k++) { if (game.BoardHistory[i] != null) { newGame.BoardHistory[i][j, k] = game.BoardHistory[i][k, j]; } } } } for (int i = 0; i < BOARD_SIZE; i++) { for (int j = 0; j < BOARD_SIZE; j++) { newGame.Board[i, j] = game.Board[j, i]; } } return(newGame); }
public static OthelloGame GetHalfPiRotation(OthelloGame game) { OthelloGame newGame = game.DeepCopy(); for (int i = 0; i <= game.GetMovesMade(); i++) { for (int j = 0; j < BOARD_SIZE; j++) { for (int k = 0; k < BOARD_SIZE; k++) { if (game.BoardHistory[i] != null) { newGame.BoardHistory[i][j, k] = game.BoardHistory[i][BOARD_SIZE - k - 1, j]; } } } } for (int i = 0; i < BOARD_SIZE; i++) { for (int j = 0; j < BOARD_SIZE; j++) { newGame.Board[i, j] = game.Board[BOARD_SIZE - j - 1, i]; } } return(newGame); }