parent
57283d55e5
commit
25088223f5
@ -0,0 +1,36 @@
|
|||||||
|
//
|
||||||
|
// File.swift
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Created by Adam BONAFOS on 06/02/2025.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
public struct Game {
|
||||||
|
var board = Board(rowsNb: 6, columnsNb: 7)
|
||||||
|
var rules = Connect4Rules(piecesToAlign: 4)
|
||||||
|
var players: [Player]
|
||||||
|
var currentPlayer: Player
|
||||||
|
|
||||||
|
public init(board: Board = Board(rowsNb: 6, columnsNb: 7), rules: Connect4Rules = Connect4Rules(piecesToAlign: 4), players: [Player]) {
|
||||||
|
self.board = board
|
||||||
|
self.rules = rules
|
||||||
|
self.players = players
|
||||||
|
self.currentPlayer = players[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
public mutating func start(display: (Board) -> Void){
|
||||||
|
while rules.isGameOver(board: board).0 != true {
|
||||||
|
var currentPlayer = rules.nextPlayer(players: players)
|
||||||
|
display(board)
|
||||||
|
print("Au tour de : " + currentPlayer.name)
|
||||||
|
var move = currentPlayer.play(board: board)
|
||||||
|
while rules.possibleMoves(board: board).contains(move) != true {
|
||||||
|
display(board)
|
||||||
|
print("Move invalide en choisir un autre")
|
||||||
|
move = currentPlayer.play(board: board)
|
||||||
|
}
|
||||||
|
rules.add(board: &board, move: move, token: currentPlayer.color)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue