/// <summary> /// Passer au tour suivant /// </summary> public bool nextTurn() { bool ret = false; if (indTurn < gameToReplay.turnInformation.Length) { String turnInfo = gameToReplay.turnInformation[indTurn]; TurnModelDB turnModelDB = TurnModelDB.BuildTurnModelWithString(turnInfo); MementoTurn mementoTurn = new MementoTurn(); mementoTurn.Selection = board.getTile(turnModelDB.lineS, turnModelDB.columnS).createMemento(); mementoTurn.Move = board.getTile(turnModelDB.lineE, turnModelDB.columnE).createMemento(); mementoTurn.TSelection = board.getTile(turnModelDB.lineS, turnModelDB.columnS); mementoTurn.TMove = board.getTile(turnModelDB.lineE, turnModelDB.columnE); if (turnModelDB.turnType == Command.COMMAND_ACTION.BALL) { mementoTurn.TMove.setBall(mementoTurn.TSelection.Piece.Ball); mementoTurn.TSelection.setBall(null); } else { mementoTurn.TMove.Piece = mementoTurn.TSelection.Piece; mementoTurn.TSelection.Piece = null; } listMemento.Add(mementoTurn); indTurn++; ret = true; } return(ret); }
/// <summary> /// Retourner au tour precedent /// </summary> public void backTurn() { if (listMemento.Count > 0) { MementoTurn item = listMemento[listMemento.Count - 1]; listMemento.RemoveAt(listMemento.Count - 1); item.undoTurn(); indTurn--; } }