public int Move(int player, int pieceIndex, int nextPos, int finishPos) { if (nextPos >= finishPos) { data.Tiles[data.GetPiecePos(player, pieceIndex)].RemovePiece(); data.PieceMap[player].RemoveAt(pieceIndex); return(finishPos + 1); } Piece old = data.Tiles[nextPos].MovePiece(GetPiece(player, pieceIndex)); if (old != null) { data.PieceMap[old.GetColor()][data.PieceMap[old.GetColor()].IndexOf(nextPos)] = -1; } data.PieceMap[player][pieceIndex] = nextPos; return(nextPos); }