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