mainGame.py

PHOTO EMBED

Mon Aug 08 2022 20:07:33 GMT+0000 (Coordinated Universal Time)

Saved by @ammu123

# mainGame will store the class/functions
# used to run/monitor the main game
 
import pygame
import sys
from board import Board
from gameFunctions import gamefunctions as gf
import time
 
# create a class called TicTacToe
# has overall code to manage game behaviors
class TicTacToe:
  
  def __init__(self):
    #Initialize game/resources
    pygame.init()
    
    #Create screen attribute, -which controls
    #screen using pygame's built-in screen
    #method
    #add a title(Tic-Tac-Toe)
    
    self.screen = pygame.display.set_mode((800, 800))
    pygame.display.set_caption("Tic-Tac-Toe")
    
    #Create an attribute that stores the board object
    self.board = Board(self)
    
    #Create an attribute that stores the game functions object
    self.gf = gf(self)
    
    #A boolean that sees if it's the first run through the loop
    self.firstRun = True
    
    #the value of the move the player makes
    self.player1Move = 0
    self.player2Move = 0
    
    #Draw board to screen
    self.board.blitme()
    
  #stores the instructions to run the main game
  def run_game(self):
    #Create a while loop that runs until we need the 
    #game to stop
    
    while True:
      #Check all keyboard events that the user inputs
      for event in pygame.event.get():
        if event.type == pygame.QUIT:
          sys.exit()
      
      if self.firstRun == False:
        #Take a move from the user and draw it
        if self.gf.player1Turn:
          self.player1Move = self.gf.makeMove()
          self.gf.player1Moves.append(self.gf.moveData[self.player1Move])
          self.gf.drawMove(self.player1Move)
          self.gf.endTurnP1()
        elif self.gf.player2Turn:
          self.player2Move = self.gf.makeMove()
          self.gf.player2Moves.append(self.gf.moveData[self.player2Move])
          self.gf.drawMove(self.player2Move)
          self.gf.endTurnP2()
          
      #Update the screen
      pygame.display.flip()
      
      #Check if someone won
      if self.firstRun == False:
        isWinner = self.gf.checkWinner()
        if True in isWinner:
          print("\n\nGame Over!!!")
          time.sleep(3)
          if isWinner[0] == True:
            winner = "Player One"
          else:
            winner = "Player Two"
          print(f"The winner is {winner}!")
          sys.exit()
        elif len(self.gf.availableMoves) == 0:
          print('\n\nIt\'s a draw!')
          time.sleep(3)
          sys.exit()
      else:
        self.firstRun = False
content_copyCOPY