我有一个编程单元的任务,要求这个:
根据以下规范创建表示黑白棋规则的函数 enclosure(board, player, pos, direct)。
棋盘位置由一对 (r, c) 表示,其中 r 和 c 分别是范围 range(8) 中的整数,分别表示行索引和列索引。例如,位置\b3" 用(2, 1) 表示。\b3" 样式的行和列顺序和位置的规范是相反的。这是因为以这样的方式构造列表列表是很自然的,即外部列表对应于行,内部列表位置对应于列位置,所以我们先行引用它们,然后是列。这一行、列约定在数学和计算机科学中很常见。
方向由一对 (dr, dc) 表示,其中 dr 和 dc 分别是集合 f-1, 0, 1g 中的整数。例如,\horizontal to the left"由(0, -1)描述,\diagonal to the right and down"由(1, 1)描述,依此类推。
函数 enclosure(board, player, pos, dir) 表示将玩家的棋子放在给定位置是否会在给定方向上包围一条直线:
输入:棋盘配置棋盘,来自集合 f1, 2g 的整数玩家,棋盘位置 pos 和方向 dir。
输出:如果棋盘包含从位置 pos 方向为 dir 的玩家的棋子,并且该棋子和 pos 之间的直线上的所有位置都包含其他玩家的棋子,并且直线上至少有一颗属于其他玩家的棋子,则为真线; 否则为假。
这就是我所拥有的:
def enclosing(board, player, pos, direct):
if player == 1:
a = direct[0]
b = direct[1]
i = 1
while i < 8:
newpos = (pos[0] + i*a , pos[1] + i*b)
if board[newpos[0]][newpos[1]] == 1:
return True
elif board[newpos[0]][newpos[1]] == 2:
i = i + 1
else:
return False
还要记住,这是一门初学者课程,我有大约一个月的 Python 经验。
慕标5832272
相关分类