Professional Documents
Culture Documents
Rishabh
Rishabh
WINDOW_SIZE = 400
GRID LINE WIDTH = 2
SYMBOL_WIDTH = WINDOW_SIZE/80
SYMBOL_SIZE = 0.375
X COLOR = 'deep sky blue'
O COLOR = 'tomato'
DRAW_SCREEN_COLOR = 'light sea green'
GRID_COLOR = 'black'
FIRST PLAYER = 2
CELL_SIZE = WINDOW_SIZE / 3
STATE TITLE SCREEN = 0
STATE_X_TURN = 1
STATE_O_TURN = 2
STATE_GAME_OVER = 3
EMPTY = 0
X = 1
0 = 2
def__init__(self):
Tk.__init__(self)
self.canvas = Canvas(height=WINDOM_SIZE,
width=WINDOW_SIZE, bg='white')
self.canvas. pack()
self.bind('<x>', self.exit)
self.canvas,bind('<Button-1>', self.click)
self.gamestate = STATE_TITLE_SCREEN
self. title_screen()
self. board = [
[EMPTY, EMPTY, EMPTY],
[EMPTY, EMPTY, EMPTY],
[EMPTY, EMPTY, EMPTY]]
def title_screen(self):
self.canvas.delete('all')
self.canvas.create_rectangle(0, 0, WINDOW_SIZE,
WINDOW_SIZE,fill='white',outline='')
self.canvas.create_rectangle( int (WINDOW_SIZE/15),
int (WINDOW SIZE/15),
int (WINDOW_SIZE*14/15),
int (WINDOW SIZE*14/15),
outlines='')
self.canvas.create_rectangle( int (WINDOW_SIZE/10),
int (WINDOW_SIZE/10),
int (WINDOW_SIZE*9/10),
int (WINDOW_SIZE*9/10),
fill='light blue', outline='')
else:
self.gamestate = STATE_O_TURN
elif(self.game state==STATE_O_TURN and self.board [y] [x]==EMPTY) :
self.new move (O, x, y)
if self. has won (O):
self.gamestate = STATE_GAME_OVER
self.gameover_screen('O WINS)
elif self.is_a_draw():
self.gamestate = STATE_GAME_OVER
self.game over_screen('DRAW)
self.gamestate = STATE_X_TURN
elif self.gamestate == STATE_GAME_OVER:
self.new_board()
self.gamestate = FIRST PLAYER