Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Hasan-Zaigam(Tic-Tac-Toe) #215

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
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
136 changes: 136 additions & 0 deletions Hasan-Zaigam(Tic-Tac-Toe)
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
from IPython.display import clear_output

def display_board(board):
clear_output()
print(' | |')
print(' '+board[7]+' | '+board[8]+' | '+board[9])
print(' | |')
print('-----------')
print(' | |')
print(' '+board[4]+' | '+board[5]+' | '+board[6])
print(' | |')
print('-----------')
print(' | |')
print(' '+board[1]+' | '+board[2]+' | '+board[3])
print(' | |')

test_board = ['#','X','O','X','O','X','O','X','O','X']
display_board(test_board)

def player_input():
marker = ''

while not (marker == 'X' or marker == 'O'):
marker = input('Player 1: Do you want to be X or O? ').upper()

if marker == 'X':
return ('X', 'O')
else:
return ('O', 'X')

player_input()
player_input()

def place_marker(board, marker, position):
board[position] = marker

place_marker(test_board,'$',8)
display_board(test_board)

def win_check(board,mark):

return ((board[7] == mark and board[8] == mark and board[9] == mark) or # across the top
(board[4] == mark and board[5] == mark and board[6] == mark) or # across the middle
(board[1] == mark and board[2] == mark and board[3] == mark) or # across the bottom
(board[7] == mark and board[4] == mark and board[1] == mark) or # down the middle
(board[8] == mark and board[5] == mark and board[2] == mark) or # down the middle
(board[9] == mark and board[6] == mark and board[3] == mark) or # down the right side
(board[7] == mark and board[5] == mark and board[3] == mark) or # diagonal
(board[9] == mark and board[5] == mark and board[1] == mark)) # diagonal

win_check(test_board,'X')

import random

def choose_first():
if random.randint(0, 1) == 0:
return 'Player 2'
else:
return 'Player 1'

def space_check(board, position):

return board[position] == ' '

def full_board_check(board):
for i in range(1,10):
if space_check(board, i):
return False
return True
def player_choice(board):
position = 0

while position not in [1,2,3,4,5,6,7,8,9] or not space_check(board, position):
position = int(input('Choose your next position: (1-9) '))

return position
def replay():

return input('Do you want to play again? Enter Yes or No: ').lower().startswith('y')
print('Welcome to Tic Tac Toe!')

while True:
# Reset the board
theBoard = [' '] * 10
player1_marker, player2_marker = player_input()
turn = choose_first()
print(turn + ' will go first.')

play_game = input('Are you ready to play? Enter Yes or No.')

if play_game.lower()[0] == 'y':
game_on = True
else:
game_on = False

while game_on:
if turn == 'Player 1':
# Player1's turn.

display_board(theBoard)
position = player_choice(theBoard)
place_marker(theBoard, player1_marker, position)

if win_check(theBoard, player1_marker):
display_board(theBoard)
print('Congratulations! You have won the game!')
game_on = False
else:
if full_board_check(theBoard):
display_board(theBoard)
print('The game is a draw!')
break
else:
turn = 'Player 2'

else:
# Player2's turn.

display_board(theBoard)
position = player_choice(theBoard)
place_marker(theBoard, player2_marker, position)

if win_check(theBoard, player2_marker):
display_board(theBoard)
print('Player 2 has won!')
game_on = False
else:
if full_board_check(theBoard):
display_board(theBoard)
print('The game is a draw!')
break
else:
turn = 'Player 1'

if not replay():
break