嗨,我对下一步该做什么感到有点困惑。代码是一个移动数字的小游戏。你会知道游戏。 X是一个可以移动的空白点。 到目前为止,这是我的代码。
def print_menu():
print('\nPossible moves:')
print('1. up')
print('2. down')
print('3. right')
print('4. left')
print('5. Quit')
puzzle = [[' 1', ' 2', ' 3', ' 4'],
[' 5', ' 6', ' 7', ' 8'],
[' 9', '10', '11', '12'],
['13', '14', '15', ' X']]
quit = False
input_line = None
while not quit:
print_menu()
command = int(input("\nChoose a move or press 5 to quit: "))
if command == 1:
elif command == 2:
elif command == 3:
elif command == 4:
elif command == 5:
quit = True
所以我有选项1,2,3,4,5来移动块并退出程序。 那么我需要声明X的开头位置吗? 然后我移动X的思维过程就是将它移动到一个位置 对于向上X移动[数组中的1行,同一列]和12移动[1行向下,同一列] 这是正确的轨道吗? 我尝试了一些搜索和方法.slice出现了很多。 这会有帮助吗? 谢谢 乙
答案 0 :(得分:0)
实施#1:
使用dict
的{{1}}代替嵌套的dict
。然后,您所要做的就是计算list
的新位置的索引,并交换它们的值。例如,如果在'X'
中找到'X'
并且您想要将其降级,则需要将其替换为puzzle[3][4]
的内容。所以转换非常简单。
更好的实施:
写一个班级'董事会' ,功能puzzle[3+4][4]
。您可以使用嵌套的swap(direction)
解决方案在幕后实现它。