コード例 #1
0
ファイル: xboardGamePlay.py プロジェクト: emmamar/ChessGameAI
class xboardGamePlay:
  def __init__ (self):
    self.board_object = Board()
    self.white_turn = True
    self.depth = 4
    self.increased_depth = False

  '''start the game by creating 2 players'''
  def start_new_game(self):
    self.player1_computer = Player("B",self.depth)
    self.player2_human = Player("W", 0)
    

  '''determine and play the computers move'''
  def play_move_computer(self):
    if not self.white_turn:
      alpha_list = list()
      
      if ((not self.increased_depth) and (self.board_object.black_piece_count + self.board_object.white_piece_count) < 16):
        self.player1_computer.depth += 1
        self.depth +=1
        self.increased_depth = True
      
      for i in range(self.depth + 1):
        alpha_list.append(None)
      '''cProfile.runctx( "self.player1_computer.determineNextMove(self.board_object, alpha_list)", 
        globals(), locals(), filename="/home/emma/Desktop/emmaPython.profile" )'''
      p1next, heur = self.player1_computer.determineNextMove(
        self.board_object, alpha_list
      )
      if(not p1next == None):
        self.board_object.try_move_piece(p1next, False)
        self.board_object.save_board()
        self.white_turn = True
        return p1next
      else:
        '''check mate'''
        return "None"
    else:
      '''isnt blacks turn'''
      return None
    

  '''play the human players move on the board'''
  def play_move_human(self, given_move):
    if self.white_turn:
      heur_inc = self.board_object.matrix[given_move.startX][given_move.startY].table[(given_move.endX)*8 + given_move.endY]
      heur_inc -= self.board_object.matrix[given_move.startX][given_move.startY].table[(given_move.startX)*8 + given_move.startY]
      if(not self.board_object.matrix[given_move.endX][given_move.endY] == None):
        heur_inc += self.board_object.matrix[given_move.endX][given_move.endY].material
      can_move_piece = self.board_object.try_move_piece([given_move,heur_inc], False)
      self.board_object.save_board()
      self.white_turn = False
      return can_move_piece
    else:
      '''illegal move or isnt whites turn'''
      return False