|
|
|
@ -9,14 +9,24 @@ import Foundation
|
|
|
|
|
|
|
|
|
|
protocol Rules {
|
|
|
|
|
var occurences: [Board: Int] { get set }
|
|
|
|
|
|
|
|
|
|
// pas forcément utile si j'utilise pas playedMove
|
|
|
|
|
var historic: [Move] { get set }
|
|
|
|
|
|
|
|
|
|
func createBoard() -> Board
|
|
|
|
|
func checkBoard( b: Board) throws
|
|
|
|
|
func static createBoard() -> Board
|
|
|
|
|
func static checkBoard( b: Board) throws
|
|
|
|
|
func getNextPlayer() -> Owner
|
|
|
|
|
|
|
|
|
|
// Donne tout les coups autoriser
|
|
|
|
|
func getMoves( board: Board, owner: Owner) -> [Move]
|
|
|
|
|
|
|
|
|
|
// Donne tout les coups autoriser à partir d'une cellule
|
|
|
|
|
func getMoves( board: Board, owner: Owner, row: Int, column: Int) -> [Move]
|
|
|
|
|
|
|
|
|
|
func isMoveValid( board: Board, row: Int, column: Int, rowArrived: Int, columnArrived: Int) -> Bool
|
|
|
|
|
func isMoveValid( board: Board, move: Move) -> Bool
|
|
|
|
|
func isGameOver( board: Board, lastMove: Move) -> (Bool, Result)
|
|
|
|
|
|
|
|
|
|
// permet de stocker le coût qui a été fait. (playedMove)
|
|
|
|
|
func playedMove( move: Move, oldBoard: Board, newBoard: Board)
|
|
|
|
|
}
|
|
|
|
|