-->
当前位置:首页 > 题库 > 正文内容

编程题:用类实现象棋里面的 象

Luz3年前 (2022-05-19)题库1383
根据需要创建一个 象 类,使其能够在 (4,2) 位置初始化以后,计算出所有一步之内可以移动到的位置。

“根据需要”的意思是,你来决定创建哪些属性

棋盘上棋子的分布储存在字典board中,board对应如下棋局:


![b98f3643-9ec5-4f74-ad36-df055b62dbeb.png](~/7df1dd00-d364-4d1e-a0cc-4263d9eea292.png)



class Elephant:
def __init__(self, color, position):
self.color = color
self.x = position[0]
self.y = position[1]

def moves(self):
return [(self.x - 2, self.y - 2), (self.x - 2, self.y + 2), (self.x + 2, self.y - 2), (self.x + 2, self.y + 2)]

def valid_moves(self):
moves = []
for move in self.moves():
# 请填写省略掉的部分
......
return moves

def main():
global board
board = {
(0,0):(0,"空"), (0,1):(0,"空"), (0,2):(0,"空"), (0,3):(0,"空"), (0,4):("红","卒"), (0,5):(0,"空"), (0,6):(0,"空"), (0,7):(0,"空"), (0,8):(0,"空"), (0,9):("红","炮"),
(1,0):(0,"空"), (1,1):(0,"空"), (1,2):(0,"空"), (1,3):(0,"空"), (1,4):(0,"空"), (1,5):(0,"空"), (1,6):(0,"空"), (1,7):(0,"空"), (1,8):("红","马"), (1,9):("红","马"),
(2,0):(0,"空"), (2,1):(0,"空"), (2,2):(0,"空"), (2,3):(0,"空"), (2,4):(0,"空"), (2,5):(0,"空"), (2,6):(0,"空"), (2,7):(0,"空"), (2,8):(0,"空"), (2,9):(0,"空"),
(3,0):(0,"空"), (3,1):(0,"空"), (3,2):(0,"空"), (3,3):(0,"空"), (3,4):(0,"空"), (3,5):(0,"空"), (3,6):(0,"空"), (3,7):("黑","士"), (3,8):(0,"空"), (3,9):("黑","炮"),
(4,0):("红","将"), (4,1):("红","士"), (4,2):("红","象"), (4,3):(0,"空"), (4,4):(0,"空"), (4,5):("黑","车"), (4,6):(0,"空"), (4,7):("黑","象"), (4,8):("黑","士"), (4,9):("黑","将"),
(5,0):("红","士"), (5,1):(0,"空"), (5,2):(0,"空"), (5,3):(0,"空"), (5,4):(0,"空"), (5,5):(0,"空"), (5,6):(0,"空"), (5,7):(0,"空"), (5,8):(0,"空"), (5,9):(0,"空"),
(6,0):("红","象"), (6,1):(0,"空"), (6,2):(0,"空"), (6,3):(0,"空"), (6,4):("红","卒"), (6,5):(0,"空"), (6,6):(0,"空"), (6,7):(0,"空"), (6,8):(0,"空"), (6,9):("黑","象"),
(7,0):(0,"空"), (7,1):(0,"空"), (7,2):(0,"空"), (7,3):(0,"空"), (7,4):(0,"空"), (7,5):(0,"空"), (7,6):(0,"空"), (7,7):(0,"空"), (7,8):(0,"空"), (7,9):(0,"空"),
(8,0):(0,"空"), (8,1):(0,"空"), (8,2):(0,"空"), (8,3):(0,"空"), (8,4):("红","卒"), (8,5):(0,"空"), (8,6):(0,"空"), (8,7):(0,"空"), (8,8):(0,"空"), (8,9):(0,"空")
}

elephantR1 = Elephant('红', (4,2))
for move in elephantR1.valid_moves():
print(move, end=' ')

if __name__ == '__main__':
main()


### 输入样例:

无输入

in



### 输出样例:

out
(2, 0) (2, 4)







答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。