【发布时间】:2022-01-09 17:51:58
【问题描述】:
我有以下任务在屏幕上打印棋盘的碎片,它们必须采用这种格式 ♔ 但这是最小的问题。
如果我循环通过我在 0x7fc8fa510790> 处得到这个 main.Rook 对象,我该如何编码 --> if main.Rook == ♖,
代码完成后的输出应该是这样的:
♖ ♔
♜ ♜
♚ ♜
♖ ♗
♗
目前我是这样构建电路板的
class Piece:
pos_x : int
pos_y : int
side_ : bool #True for White and False for Black
def __init__(self, pos_X : int, pos_Y : int, side_ : bool):
'''sets initial values'''
self.pos_x=pos_X
self.pos_y=pos_Y
self.side_=side_ #maybe set it to True?
def __str__(self):#
return f"{self.pos_x} {self.pos_y} {self.side_}"
def get_side(self):
return side_
class Rook(Piece):
def __init__(self, pos_X : int, pos_Y : int, side_ : bool):
'''sets initial values by calling the constructor of Piece'''
super().__init__(pos_X, pos_Y, side_)
def __repr__(self):
if self.side_==False:
return "♜"
else:
return "♖"
wr1 = Rook(1,2,True)
br1 = Rook(4,3,False)
br2 = Rook(2,4,False)
br3 = Rook(5,4, False)
wr2 = Rook(1,5, True)
B1 = (10, [wr1,br1, br2, br3, wr2])
所以现在我正在研究以下功能,我没有走多远,我可以得到棋子的位置,侧面等等,但是如果我有一个变量,我怎么知道它们是 ROOK 还是其他东西例如可以使用他们的名字,但是这里我有一个对象,有人可以说明一种方法来解决这个问题吗?
def conf2unicode(B: Board) -> str:
'''converts board cofiguration B to unicode format string (see section Unicode board configurations)'''
for piece in B[1]:
print (piece)
【问题讨论】:
-
如果您的任务是仅打印板子,那么这看起来有点矫枉过正。你能具体说明一下任务是什么吗?您需要处理的输入是什么?你能举一个输入和相应预期输出的例子吗?
-
输入是代码底部的那个,wr1 = Rook(1,2,True)是位置坐标和边(True是白色),输出将是棋盘 5x5,用 unicode 字符表示棋子,它们之间有空格表示空格
-
好的。国际象棋不是在 8x8 棋盘上下的吗?
-
别担心这是一个练习,板子可以是你喜欢的任何尺寸......
-
您能对答案提供一些反馈吗?或者考虑将答案标记为已接受。