|
|
|
@ -1,35 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import Foundation
|
|
|
|
|
import SwiftUI
|
|
|
|
|
import DouShouQiModel
|
|
|
|
|
|
|
|
|
|
struct VMGame {
|
|
|
|
|
class VMGame : ObservableObject {
|
|
|
|
|
|
|
|
|
|
@State var msg: String = ""
|
|
|
|
|
@Published var msg: String = ""
|
|
|
|
|
|
|
|
|
|
var gameScene: GameScene = GameScene(size: CGSize(width: 940, height: 740),player1Name:"TOTO",player1Image: Image("profil"),player2Name:"toto2",player2Image: Image("profil"))
|
|
|
|
|
|
|
|
|
|
func start(){
|
|
|
|
|
func start() async {
|
|
|
|
|
defineListener()
|
|
|
|
|
try! await gameScene.game.start()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func defineListener(){
|
|
|
|
|
gameScene.game.addGameStartedListener { board in startGame() }
|
|
|
|
|
gameScene.game.addGameOverListener { board, result, player in gameOver(result : result) }
|
|
|
|
|
gameScene.game.addGameChangedListener { game in gameChange() }
|
|
|
|
|
gameScene.game.addBoardChangedListener { board in boardChange() }
|
|
|
|
|
gameScene.game.addGameStartedListener { board in self.startGame() }
|
|
|
|
|
gameScene.game.addGameOverListener { board, result, player in self.gameOver(result : result) }
|
|
|
|
|
gameScene.game.addGameChangedListener { game in self.gameChange() }
|
|
|
|
|
gameScene.game.addBoardChangedListener { board in self.boardChange() }
|
|
|
|
|
|
|
|
|
|
gameScene.game.addMoveChosenCallbacksListener { board, move, player in moveChose(board: board, move: move, player: player) }
|
|
|
|
|
gameScene.game.addInvalidMoveCallbacksListener { board, move, player, bool in invalidMove(board: board, move: move, player: player, bool: bool) }
|
|
|
|
|
gameScene.game.addMoveChosenCallbacksListener { board, move, player in self.moveChose(board: board, move: move, player: player) }
|
|
|
|
|
gameScene.game.addInvalidMoveCallbacksListener { board, move, player, bool in self.invalidMove(board: board, move: move, player: player, bool: bool) }
|
|
|
|
|
|
|
|
|
|
gameScene.game.addPieceRemovedListener { _, _, piece in removePiece(piece: piece) }
|
|
|
|
|
gameScene.game.addPieceRemovedListener { _, _, piece in self.removePiece(piece: piece) }
|
|
|
|
|
|
|
|
|
|
gameScene.game.addPlayerNotifiedListener { board, player in
|
|
|
|
|
print("Player notif : \(player.id) à toi de jouer ")
|
|
|
|
|
msg = "Player notif : \(player.id) à toi de jouer !"
|
|
|
|
|
self.msg = "Player notif : \(player.id) à toi de jouer !"
|
|
|
|
|
|
|
|
|
|
if player is IAPlayer {
|
|
|
|
|
try! await player.chooseMove(in: board, with: gameScene.game.rules)
|
|
|
|
|
try! await player.chooseMove(in: board, with: self.gameScene.game.rules)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|