object TicTacToe { val board = new Array[Char](9) var mark = 'X' def tick(horizontal: String, vertical: String) { val x = horizontal match { case "left" => 0 case "middle" => 1 case "right" => 2 case _ => 0 } val y = vertical match { case "up" => 0 case "middle" => 3 case "down" => 6 case _ => 0 } val index = x + y if (board(index) == 'X' || board(index) == 'O') { println("Spot is already taken!") return } board(index) = mark isWinner('X') isWinner('O') mark = mark match { case 'X' => 'O' case 'O' => 'X' case _ => 'c' } } def isWinner(mark: Char) { if ((board(0) == mark && board(1) == mark && board(2) == mark) || (board(3) == mark && board(4) == mark && board(5) == mark) || (board(6) == mark && board(7) == mark && board(8) == mark) || (board(0) == mark && board(3) == mark && board(6) == mark) || (board(1) == mark && board(4) == mark && board(7) == mark) || (board(2) == mark && board(5) == mark && board(8) == mark) || (board(0) == mark && board(4) == mark && board(8) == mark) || (board(2) == mark && board(4) == mark && board(6) == mark)) { println("Gewinner: " + mark) } } } TicTacToe.tick("left", "up") TicTacToe.tick("right", "up") TicTacToe.tick("left", "middle") TicTacToe.tick("middle", "middle") TicTacToe.tick("left", "down")