Code Sketch
purva chavan
Category: Art
import scala.io.StdIn
object TicTacToe {
val board = Array.fill(9)(' ')
val wins = Array(
Array(0, 1, 2), Array(3, 4, 5), Array(6, 7, 8),
Array(0, 3, 6), Array(1, 4, 7), Array(2, 5, 8),
Array(0, 4, 8), Array(2, 4, 6)
)
def showBoard(): Unit = {
println()
for (i <- 0 until 9 by 3) {
println(s" ${board(i)} | ${board(i + 1)} | ${board(i + 2)} ")
if (i < 6) println("---+---+---")
}
println()
}
def checkWinner(): Boolean = {
wins.exists(line =>
board(line(0)) != ' ' &&
board(line(0)) == board(line(1)) &&
board(line(1)) == board(line(2))
)
}
def main(args: Array[String]): Unit = {
var player = 'X'
var moves = 0
var gameOver = false
println("=== Tic-Tac-Toe Game ===")
println("Player X vs Player O")
while (!gameOver && moves < 9) {
showBoard()
println(s"Player $player, enter position (1-9): ")
val input = StdIn.readLine()
try {
val pos = input.toInt - 1
if (pos >= 0 && pos < 9 && board(pos) == ' ') {
board(pos) = player
moves += 1
if (checkWinner()) {
showBoard()
println(s"Player $player wins! Congratulations!")
gameOver = true
} else {
player = if (player == 'X') 'O' else 'X'
}
} else {
println("Invalid position! Try again.")
}
} catch {
case _: NumberFormatException =>
println("Please enter a number from 1 to 9.")
}
}
if (!gameOver) {
showBoard()
println("Game Draw!")
}
}
}