func placeCurrentPlayerMark()

in Sample/SwiftUI-MVVM/TicTacToe/Sources/Game/GameViewModel.swift [61:80]


    func placeCurrentPlayerMark(at row: Int, col: Int) {
        guard boardColors[row][col] == .white else { return }
        let currentPlayer = getAndFlipCurrentPlayer()
        boardColors[row][col] = currentPlayer.color
        
        let endGame = checkEndGame()
        if endGame.didEnd {
            if let winner = endGame.winner {
                performOnPlayerNames { [weak self] (player1Name: String, player2Name: String) in
                    let winnerName = winner == .player1 ? player1Name : player2Name
                    let loserName = winner != .player1 ? player1Name : player2Name
                    self?.announce(winner)
                    self?.mutableScoreStream.updateScore(withWinner: winnerName, loser: loserName)
                }
            } else {
                announceDraw()
                mutableScoreStream.updateDraw()
            }
        }
    }