class Position:
def __init__(self, x,y):
self.x = int(x)
self.y = int(y)
def __eq__(self, other):
return self.x == other.x and self.y == other.y
def __repr__(self):
return '({}, {})'.format(self.x, self.y)
def __hash__(self):
return hash(str(self))
class Piece:
def __init__(self, color, type_piece):
self.color = color
self.type_piece = type_piece
def is_pawn(self):
return self.type_piece == "pawn"
def is_queen(self):
return self.type_piece == "queen"
def is_white(self):
return self.color == "white"
def is_balck(self):
return self.color == "black"
def change(self):
self.type_piece = "queen"
def __repr__(self):
if self.is_white() and self.is_pawn():
return "o"
elif self.is_white() and self.is_queen():
return "O"
elif self.is_black() and self.is_pawn():
return "x"
else:
return "X"
class board:
def __init__(self):
self.n_x = 8
self.n_y = 8
self.cases = { Position(1,1):Piece("white","pawn") } #example of what my dict contains
def check_piece(self, position):
if Position(position) in self.cases.keys():
return cases.get(Position(position))
else:
return False当我尝试check_piece((1,1))
TypeError:init()缺少一个必需的位置参数:“colonne”
当我尝试check_piece(1,1)
TypeError: recuperer_piece_a_position()接受两个位置参数,但给出了3个.
任何帮助都将不胜感激,我不能改变字典的结构,因为它是预先建立的
发布于 2014-11-17 00:09:00
check_piece采用一个参数,而Position采用两个参数。
试着做些像
def check_piece(position):
return cases.get(Position(*position), False)check_piece((1,1))也能工作。
https://stackoverflow.com/questions/26963525
复制相似问题