game
The snippet can be accessed without any authentication.
Authored by
Jijainth Dhinakaran
Edited
main.py 3.54 KiB
from ast import Return
from multiprocessing.context import SpawnProcess
from platform import python_branch
from tkinter.tix import ROW
import pygame
import numpy
import sys
pygame.init()
#Constants
DISPLAY_HEIGHT = 900
DISPLAY_WIDTH = 900
LINE_WIDTH = 25
SQUARE_SIZE= 300
ROWS = 3
COLUMNS=3
CIRCLE_RADIUS = 60
CIRCLE_WIDTH = 15
SPACE = 60
#Color Constants
RED = (255, 0, 0)
BG_COLOR = (20, 200, 160)
LINE_COLOR = (23, 145, 135)
CIRCLE_COLOR = (239, 231, 200)
CROSS_COLOR = (66, 66, 66)
display = pygame.display.set_mode((DISPLAY_WIDTH,DISPLAY_HEIGHT))
display.fill(BG_COLOR)
#Layout
pygame.draw.line(display , LINE_COLOR ,(0,SQUARE_SIZE) , (DISPLAY_WIDTH , SQUARE_SIZE) ,LINE_WIDTH)
pygame.draw.line(display , LINE_COLOR ,(0,2*SQUARE_SIZE) , (DISPLAY_WIDTH , 2*SQUARE_SIZE) ,LINE_WIDTH)
pygame.draw.line(display , LINE_COLOR ,(SQUARE_SIZE,0) , (SQUARE_SIZE,DISPLAY_HEIGHT) ,LINE_WIDTH)
pygame.draw.line(display , LINE_COLOR ,(2*SQUARE_SIZE,0) , (2*SQUARE_SIZE,DISPLAY_HEIGHT) ,LINE_WIDTH)
#MAIN LIST
game = numpy.zeros((ROWS,COLUMNS))
#Functions
def draw_fiq():
for x in range(ROWS):
for y in range(COLUMNS):
if game[x][y] == 1:
pygame.draw.circle(display,CIRCLE_COLOR,(int(COLUMNS*SQUARE_SIZE + SQUARE_SIZE//2)) , (int(ROWS*SQUARE_SIZE + SQUARE_SIZE//2)) ,60,15 )
elif game[x][y] == 2:
pygame.draw.line(display,CROSS_COLOR,(COLUMNS*SQUARE_SIZE + SPACE , ROWS*SQUARE_SIZE+SPACE) , (COLUMNS*SQUARE_SIZE +SQUARE_SIZE-SPACE , ROWS*SQUARE_SIZE+SQUARE_SIZE-SPACE) , 25)
pygame.draw.line(display,CROSS_COLOR,(COLUMNS*SQUARE_SIZE+SPACE ,ROWS*SQUARE_SIZE+SQUARE_SIZE-SPACE) , (COLUMNS*SQUARE_SIZE+SQUARE_SIZE-SPACE , ROWS*SQUARE_SIZE+SPACE) , 25)
def win(player):
#By Columns
for i in range(COLUMNS):
if game[0][i] == player and game[1][i] == player and game[2][i] == player:
print("PLAYER " + player + " WON ! /n" "Coordinates : 0,"+i+ "| 1,"+i+" | 2,"+i)
return True
#By Rows
for i in range(ROWS):
if game[i][0] == player and game[i][1] == player and game[i][2] == player :
print("PLAYER " + player + " WON ! /n" "Coordinates :" + i+",0 | "+i+",1 | "+i+",2 " )
return True
#Diagnol Lines
if game[0][0] == player and game[1][1] == player and game[2][2] == player:
print("PLAYER " + player + " WON ! /n" "Coordinates : 0,0 | 1,1 | 2,2 " )
return True
if game[2][0] == player and game[1][1] == player and game[0][2] == player:
print("PLAYER " + player + " WON ! /n" "Coordinates : 2,0 | 1,1 | 0,2 " )
return True
return False
def available(r,c):
if game[r][c] == 0 :
return True
return False
def mark(row, col, player):
game[row][col] = player
def check_full():
for i in ROWS:
for j in COLUMNS:
if game[i][j] == 0:
return False
return True
player = 1
game_OVER = False
#MAIN LOOP
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
if check_full():
print(" TIE !")
if event.type == pygame.MOUSEBUTTONDOWN and not game_OVER:
X_= event.pos[0]
Y_ = event.pos[1]
row = int(Y_ // SQUARE_SIZE)
col = int(X_ // SQUARE_SIZE)
if available(row,col):
mark(row,col ,player)
if win(player):
game_OVER = True
player = player %2 + 1
pygame.display.update()
Please register or sign in to comment