diff --git a/scala/day1.scala b/scala/day1.scala new file mode 100644 index 0000000..ec2166a --- /dev/null +++ b/scala/day1.scala @@ -0,0 +1,56 @@ +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")