scala day 1

This commit is contained in:
Max Hohlfeld 2023-04-24 09:10:53 +02:00
parent 541b11a50b
commit 97920a52fe

56
scala/day1.scala Normal file
View File

@ -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")