Skip to content

Instantly share code, notes, and snippets.

@vivek1339
Forked from horstjens/tictactoe.py
Last active July 13, 2020 05:04
Show Gist options
  • Save vivek1339/a35edf19740bc5c58bb729b1bbf690ca to your computer and use it in GitHub Desktop.
Save vivek1339/a35edf19740bc5c58bb729b1bbf690ca to your computer and use it in GitHub Desktop.
tictactoe in python for 2 players
"""tictactoe game for 2 players
from blogpost: http://thebillington.co.uk/blog/posts/writing-a-tic-tac-toe-game-in-python by BILLY REBECCHI,
slightly improved by Horst JENS"""
from __future__ import print_function
import sys
choices = []
for x in range (0, 9) :
choices.append(str(x + 1))
playerOneTurn = True
winner = False
def printBoard() :
print( '\n -----')
print( '|' + choices[0] + '|' + choices[1] + '|' + choices[2] + '|')
print( ' -----')
print( '|' + choices[3] + '|' + choices[4] + '|' + choices[5] + '|')
print( ' -----')
print( '|' + choices[6] + '|' + choices[7] + '|' + choices[8] + '|')
print( ' -----\n')
count=0
while not winner :
printBoard()
if(count>=9):
print("Draw")
sys.exit()
if playerOneTurn :
print( "Player 1:")
else :
print( "Player 2:")
try:
choice = int(input(">> "))
except:
print("please enter a valid field")
continue
if(choice>9):
sys.exit()
if choices[choice - 1] == 'X' or choices [choice-1] == 'O':
print("illegal move, plase try again")
continue
if playerOneTurn :
count+=1
choices[choice - 1] = 'X'
else :
count+=1
choices[choice - 1] = 'O'
playerOneTurn = not playerOneTurn
for x in range (0, 3) :
y = x * 3
if (choices[y] == choices[(y + 1)] and choices[y] == choices[(y + 2)]) :
winner = True
printBoard()
if (choices[x] == choices[(x + 3)] and choices[x] == choices[(x + 6)]) :
winner = True
printBoard()
if((choices[0] == choices[4] and choices[0] == choices[8]) or
(choices[2] == choices[4] and choices[4] == choices[6])) :
winner = True
printBoard()
print ("Player " + str(int(playerOneTurn + 1)) + " wins!\n")
Copy link

ghost commented Apr 19, 2019

nice you solved the draw problem in the other code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment