Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Tic Tac Toe/Screenshot1_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Tic Tac Toe/Screenshot1_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 0 additions & 4 deletions Tic Tac Toe/app.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
#########❤❤❤❤❤❤❤❤❤❤❤❤❤#####################
#########Made with ❤ by Sumit Suman#####################
######### Github: @sumit6258 ######################

from tkinter import *
import tkinter.messagebox
tk = Tk()
Expand Down
123 changes: 123 additions & 0 deletions Tic Tac Toe/app1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
import random

class TicTacToe:

def __init__(self):
self.board = []

def create_board(self):
for i in range(3):
row = []
for j in range(3):
row.append('-')
self.board.append(row)

def get_random_first_player(self):
return random.randint(0, 1)

def fix_spot(self, row, col, player):
self.board[row][col] = player

def is_player_win(self, player):
win = None

n = len(self.board)

# checking the rows
for i in range(n):
win = True
for j in range(n):
if self.board[i][j] != player:
win = False
break
if win:
return win

# checking the columns
for i in range(n):
win = True
for j in range(n):
if self.board[j][i] != player:
win = False
break
if win:
return win

# checking the diagonals
win = True
for i in range(n):
if self.board[i][i] != player:
win = False
break
if win:
return win

win = True
for i in range(n):
if self.board[i][n - 1 - i] != player:
win = False
break
if win:
return win
return False

for row in self.board:
for item in row:
if item == '-':
return False
return True

def is_board_filled(self):
for row in self.board:
for item in row:
if item == '-':
return False
return True

def swap_player_turn(self, player):
return 'X' if player == 'O' else 'O'

def show_board(self):
for row in self.board:
for item in row:
print(item, end=" ")
print()

def start(self):
self.create_board()

player = 'X' if self.get_random_first_player() == 1 else 'O'
while True:
print(f"Player {player} turn")

self.show_board()

# taking user input
row, col = list(
map(int, input("Enter row and column numbers to fix spot: ").split()))
print()

# fixing the spot
self.fix_spot(row - 1, col - 1, player)

# checking whether current player is won or not
if self.is_player_win(player):
print(f"Player {player} wins the game!")
break

# checking whether the game is draw or not
if self.is_board_filled():
print("Match Draw!")
break

# swapping the turn
player = self.swap_player_turn(player)

# showing the final view of board
print()
self.show_board()


# starting the game successfully
tic_tac_toe = TicTacToe()
tic_tac_toe.start()