scala day 1
This commit is contained in:
parent
541b11a50b
commit
97920a52fe
56
scala/day1.scala
Normal file
56
scala/day1.scala
Normal 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")
|
Loading…
Reference in New Issue
Block a user