game run

mail@pastecode.io avatar
unknown
plain_text
15 days ago
1.5 kB
0
Indexable
Never
import random
import time

class Game:
    def __init__(self):
        self.reset()

    def reset(self):
        self.board = [' '] * 9
        self.current_player = 'X'
        self.winner = None

    def print_board(self):
        print("\n".join(map(str, self.board[i*3:(i+1)*3] for i in range(3))))

    def play(self, move):
        if self.winner or self.board[move] != ' ':
            return False
        self.board[move] = self.current_player
        self.check_winner()
        self.current_player = 'O' if self.current_player == 'X' else 'X'
        return True

    def check_winner(self):
        for i in range(3):
            if self.board[i*3] == self.board[i*3+1] == self.board[i*3+2] != ' ':
                self.winner = self.board[i*3]
        for i in range(3):
            if self.board[i] == self.board[i+3] == self.board[i+6] != ' ':
                self.winner = self.board[i]
        if self.board[0] == self.board[4] == self.board[8] != ' ':
            self.winner = self.board[0]
        if self.board[2] == self.board[4] == self.board[6] != ' ':
            self.winner = self.board[2]

def main():
    game = Game()
    while not game.winner:
        game.print_board()
        move = input(f"{game.current_player}'s turn. Choose a spot (1-9): ")
        if game.play(int(move) - 1):
            print(f"{game.current_player} placed at {move}.")
            if game.winner:
                game.print_board()
                print(f"
Leave a Comment