在Python中围绕数组移动项

2024-09-28 05:23:35 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有点不知道下一步该怎么办。代码是一个移动数字的小游戏。你会知道比赛的。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行,同列] 这条路走对了吗? 我尝试了一些搜索和方法。切片出现了很多。 这有帮助吗? 谢谢你 B类


Tags: 代码密码inputdef数字commandquitmenu
1条回答
网友
1楼 · 发布于 2024-09-28 05:23:35

实施#1: 使用dictdict而不是嵌套的lists。然后您所要做的就是计算'X'的新位置的索引,并交换它们的值。例如,如果在puzzle[3][4]中找到'X',并且您希望将其删除,则需要将其替换为puzzle[3+4][4]的内容。所以转换非常简单。你知道吗

更好的实施: 用函数swap(direction)编写一个类“Board”。您可以在幕后使用嵌套的dict解决方案来实现它。你知道吗

相关问题 更多 >

    热门问题