def __choose_button(self, x, y): """ 根据用户控制执行游戏逻辑,重新开始游戏,退出游戏,或者在棋盘内落子 :param x:鼠标横坐标 :param y:鼠标纵坐标 :return:无 """ pass left = self.__cell_width * self.__n+40 right=left + 150 if left < x < right: if 370 < y < 420: #重新开始 self.start() elif 300 < y < 350: pygame.quit() sys.exit() elif 230 < y < 280: self.__pvp() elif 160 < y < 210: self.__first() elif 0 < x < self.__cell_width*(self.__n-1) + self.__margin*2: self.__next_step(x, y) def valide(self, row, col, direct): if direct== 0: if 0 <= row <= (self.__n-1) and 0 <= col <= (self.__n-2): if 0 <= row <(self.__n-1): return self.logic_board_state[row*(self.__n-1)+col][0] == 0 else: return self.logic_board_state[(row-1)*(self.__n-1)+col][1] == 0 else: return False elif direct == 1: if 0 <= col <= (self.__n-1) and 0 <= row <= (self.__n-1): if 0 <= col < (self.__n-1): return self.logic_board_state[row*(self.__n-1)+col][2] == 0 else: return self.logic_board_state[row*(self.__n-1)+col-1][3] == 0 else: return False
时间: 2024-02-10 11:26:42 浏览: 109
python基础进阶1.6:面向对象之类,对象及__init__(),self相关用法讲解
这是两个方法的实现。
`__choose_button` 方法用于根据用户的输入控制游戏的逻辑。根据输入的鼠标坐标 `(x, y)`,判断用户点击的是重新开始游戏、退出游戏、PvP模式还是选择先手。如果点击在棋盘内,则调用 `__next_step` 方法进行落子。该方法没有返回值。
`valide` 方法用于检查给定的行、列和方向是否是有效的落子位置。根据给定的 `row`、`col` 和 `direct` 参数,判断是否在有效的范围内,并且该位置上没有已经落子。如果满足条件,则返回 True,否则返回 False。
阅读全文