Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- import sys
- WIDTH, HEIGHT = 600, 700
- WHITE = (255, 255, 255)
- PINK = (255,0,120)
- END = False
- openWindow = True
- click = (0,0,0)
- clickPos = [0,0]
- player = 'X'
- WIN=''
- board = [[0,0,0],[0,0,0],[0,0,0]]
- canvas = pygame.display.set_mode((WIDTH,HEIGHT))
- pygame.display.set_caption('TicTacToe')
- pygame.init()
- font = pygame.font.SysFont('arial', 50)
- def printBoard():
- canvas.fill((0,0,0), (0,0,600,100))
- pygame.draw.line(canvas, WHITE, [200, 100], [200,700], 2)
- pygame.draw.line(canvas, WHITE, [400, 100], [400,700], 2)
- pygame.draw.line(canvas, WHITE, [0, 100], [600,100], 2)
- pygame.draw.line(canvas, WHITE, [0, 300], [600,300], 2)
- pygame.draw.line(canvas, WHITE, [0, 500], [600,500], 2)
- if WIN == 'X' or WIN == 'O':
- text = ('WINNER: ', WIN)
- elif WIN == 'TIE':
- text = 'TIE: NOBODY WINS'
- else:
- text = ('Player: ', str(player))
- textSet = font.render(''.join(text), True, (255, 0, 100))
- canvas.blit(textSet,(20,20))
- def whereClicked():
- x, y = pygame.mouse.get_pos()
- global clickPos
- if 0 < x < 200 and 100 < y < 300:
- clickPos = [100, 200]
- board[0][0] = player
- elif 0 < x < 200 and 300 < y < 500:
- clickPos = [100, 400]
- board[1][0] = player
- elif 0 < x < 200 and 500 < y < 700:
- clickPos = [100, 600]
- board[2][0] = player
- elif 200 < x < 400 and 100 < y < 300:
- clickPos = [300, 200]
- board[0][1] = player
- elif 200 < x < 400 and 300 < y < 500:
- clickPos = [300, 400]
- board[1][1] = player
- elif 200 < x < 400 and 500 < y < 700:
- clickPos = [300, 600]
- board[2][1] = player
- elif 400 < x < 600 and 100 < y < 300:
- clickPos = [500, 200]
- board[0][2] = player
- elif 400 < x < 600 and 300 < y < 500:
- clickPos = [500, 400]
- board[1][2] = player
- elif 400 < x < 600 and 500 < y < 700:
- clickPos = [500, 600]
- board[2][2] = player
- def printPlayer(player, clickPos):
- if clickPos != [0, 0]:
- if player == 'O':
- pygame.draw.circle(canvas, WHITE, clickPos, 50, 5)
- player = 'X'
- elif player == 'X':
- pygame.draw.line(canvas, WHITE, [clickPos[0] - 50,clickPos[1] + 50], [clickPos[0] + 50,clickPos[1] - 50], 5)
- pygame.draw.line(canvas, WHITE, [clickPos[0] + 50,clickPos[1] + 50], [clickPos[0] - 50,clickPos[1] - 50], 5)
- player = 'O'
- return player
- def checkWin():
- global WIN
- if board[0][0] == board[0][1] == board[0][2] == player:
- WIN = player
- elif board[1][0] == board[1][1] == board[1][2] == player:
- WIN = player
- elif board[2][0] == board[2][1] == board[2][2] == player:
- WIN = player
- elif board[0][0] == board[1][1] == board[2][2] == player:
- WIN = player
- elif board[0][2] == board[1][1] == board[2][0] == player:
- WIN = player
- elif board[0][0] == board[1][0] == board[2][0] == player:
- WIN = player
- elif board[0][1] == board[1][1] == board[2][1] == player:
- WIN = player
- elif board[0][2] == board[1][2] == board[2][2] == player:
- WIN = player
- turnCounter = 0
- for i in range(len(board)):
- for j in range(len(board[i])):
- if board[i][j] == 'X' or board[i][j] == 'O':
- turnCounter += 1
- print(turnCounter)
- if turnCounter > 8:
- WIN = 'TIE'
- while openWindow == True:
- printBoard()
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- openWindow = False
- elif event.type == pygame.MOUSEBUTTONUP:
- whereClicked()
- checkWin()
- player = printPlayer(player, clickPos)
- pygame.display.flip()
Advertisement
Add Comment
Please, Sign In to add comment