diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/ShowAllPlayer.swift b/DouShouQi_App/DouShouQi_App/Components/Player/ShowAllPlayer.swift new file mode 100644 index 0000000..07139f8 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Components/Player/ShowAllPlayer.swift @@ -0,0 +1,8 @@ +// +// ShowAllPlayer.swift +// DouShouQi_App +// +// Created by etudiant on 14/06/2024. +// + +import Foundation diff --git a/DouShouQi_App/DouShouQi_App/Components/Scene/GameScene.swift b/DouShouQi_App/DouShouQi_App/Components/Scene/GameScene.swift index eff6f22..6f955a2 100644 --- a/DouShouQi_App/DouShouQi_App/Components/Scene/GameScene.swift +++ b/DouShouQi_App/DouShouQi_App/Components/Scene/GameScene.swift @@ -10,7 +10,11 @@ import SpriteKit import DouShouQiModel class GameScene : SKScene { - var game: Game = try! Game(withRules: ClassicRules(), andPlayer1: RandomPlayer(withName: "Rayhan", andId: .player1)!, andPlayer2: RandomPlayer(withName: "Rémi", andId: .player2)!) + + var player1: HumanPlayer = HumanPlayer(withName: "Rémi", andId: .player1)! + var player2: HumanPlayer = HumanPlayer(withName: "Rayhan", andId: .player2)! + + var game: Game let pieces: [Owner : [Animal:SpriteMeeple]] = [ .player1: [ @@ -38,6 +42,7 @@ class GameScene : SKScene { let imageBoard: SKSpriteNode = SKSpriteNode(imageNamed: AppImages.boardGame) override init(size: CGSize) { + game = try! Game(withRules: ClassicRules(), andPlayer1: player1, andPlayer2: player2) super.init(size: size) imageBoard.size = size //self.scaleMode = .aspectFit @@ -48,9 +53,11 @@ class GameScene : SKScene { for piece in pieces.flatMap({owner, pieces in pieces.values}) { self.addChild(piece) + //piece.setOnMove(onMove: onMeepleMove) } initializeBoard(game.board) + } func initializeBoard(_ board: Board) { @@ -66,6 +73,25 @@ class GameScene : SKScene { } required init?(coder aDecoder: NSCoder) { + game = try! Game(withRules: ClassicRules(), andPlayer1: player1, andPlayer2: player2) super.init(coder: aDecoder); } + + func onMeepleMove(_ start: CGPoint, _ end: CGPoint) async { + + let owner = game.rules.getNextPlayer() + let player = game.players[owner] + + let move = Move(of: owner, fromRow: Int(start.x), andFromColumn: Int(start.y), toRow: Int(end.x), andToColumn: Int(end.y)) + + print("Meeple moved") + + try! await (player as! HumanPlayer).chooseMove(move) + + + } + + public func start() async throws { + try await game.start() + } }