在Python中移动数组中的项目

时间:2015-03-11 05:46:37

标签: python arrays

嗨,我对下一步该做什么感到有点困惑。代码是一个移动数字的小游戏。你会知道游戏。 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出现了很多。 这会有帮助吗? 谢谢 乙

1 个答案:

答案 0 :(得分:0)

实施#1: 使用dict的{​​{1}}代替嵌套的dict。然后,您所要做的就是计算list的新位置的索引,并交换它们的值。例如,如果在'X'中找到'X'并且您想要将其降级,则需要将其替换为puzzle[3][4]的内容。所以转换非常简单。

更好的实施: 写一个班级'董事会' ,功能puzzle[3+4][4]。您可以使用嵌套的swap(direction)解决方案在幕后实现它。