Files
CSC111/assignments/A2/chessboard/display.py
T
2022-02-10 18:43:51 -05:00

100 lines
2.2 KiB
Python

"""
Ahira Justice, ADEFOKUN
justiceahira@gmail.com
"""
import os
import sys
import pygame
from pygame.locals import *
from . import board
os.environ['SDL_VIDEO_CENTERED'] = '1' # Centre display window.
FPS = 30
FPSCLOCK = pygame.time.Clock()
DISPLAYSURF = None
BASICFONT = None
gameboard = None
colors = {
'Ash': ( 50, 50, 50),
'White':(255, 255, 255),
'Black':( 0, 0, 0),
}
BGCOLOR = colors['Ash']
WINDOWWIDTH, WINDOWHEIGHT = 600, 600
BASICFONTSIZE = 30
def terminate():
pygame.display.quit()
# sys.exit()
def checkForQuit():
for event in pygame.event.get(QUIT): # get all the QUIT events
terminate() #terminate if any QUIT events are present
return
for event in pygame.event.get(KEYUP): # get all the KEYUP events
if event.key == K_ESCAPE:
terminate() # terminate if the KEYUP event was for the Esc key
return
pygame.event.post(event) # put the other KEYUP event objects back
return False
def start(fen='', size=8):
global gameboard, font, DISPLAYSURF
if not pygame.get_init():
pygame.init()
# Setting up the GUI window.
DISPLAYSURF = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT))
pygame.display.set_caption('Python Chess')
font = pygame.font.Font(pygame.font.get_default_font(), 48)
checkForQuit()
DISPLAYSURF.fill(BGCOLOR)
gameboard = board.Board(colors, BGCOLOR, DISPLAYSURF, size=size)
gameboard.displayBoard()
if (fen):
gameboard.updatePieces(fen)
else:
gameboard.drawPieces()
pygame.display.update()
# FPSCLOCK.tick(FPS)
def update(fen, winner):
global font, DISPLAYSURF
checkForQuit()
gameboard.displayBoard()
gameboard.updatePieces(fen)
if winner is not None:
if winner == 'White':
text_surface = font.render('White wins!', True, (50, 168, 82))
elif winner == 'Draw':
text_surface = font.render('Draw!', True, (255, 255, 255))
elif winner == 'Black':
text_surface = font.render('Black wins!', True, (168, 60, 50))
DISPLAYSURF.blit(text_surface, dest=(25, 25))
pygame.display.update()
# FPSCLOCK.tick(FPS)