【问题标题】:How to add a input program in the form of (A2 5)如何以(A2 5)的形式添加输入程序
【发布时间】:2019-05-23 09:08:59
【问题描述】:

我已经为二元拼图创建了一个板(现在它是随机的,但是当我添加规则时它会更有意义) 现在我需要一种方法让某人更改嵌套列表中的值,此输入需要采用 A2 4 格式,这会将网格 A2 上的值更改为 4。

def make_board(grid_size):
    max_headers = ["{ }", "{A}", "{B}", "{C}", "{D}", "{E}", "{F}", "{G}", "{H}", "{I}", "{J}"]
    headers = []

    for x in range(0, grid_size + 1):
        headers.append(max_headers[x])

    board = [headers]

    choices = [" 0 ", " 1 ", " . "]

    for x in range(0, grid_size):
        row = ['{' + str(x) + '}']

        for i in range(0, grid_size):
            c = random.choice(choices)
            row.append(c)

        board.append(row)

    for score in board:
        print(*score)

我希望 A2 5 的输出将网格上 A2 的值更改为 5

【问题讨论】:

  • 我已经更新了我的答案——数字没有被添加到板上的正确位置

标签: python python-3.x list loops


【解决方案1】:

将您的列表 board 移到方法之外,然后您可以通过索引它使用不同的方法对其进行更改:

import random

board = []

headers = []

choices = [" 0 ", " 1 ", " . "]

max_headers = ["{ }", "{A}", "{B}", "{C}", "{D}", "{E}"]

letter_value_map = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5}

def make_board(grid_size):    
    for x in range(0, grid_size + 1):
        headers.append(max_headers[x])

    board.append(headers)

    for x in range(0, grid_size):
        row = ['{' + str(x) + '}']

        for i in range(0, grid_size):
            c = random.choice(choices)
            row.append(c)

        board.append(row)

def show_board():
    for score in board:
        print(*score)
    print()

def change_board(coord, value):
    board[int(coord[1]) + 1][letter_value_map[coord[0]]] = " " + str(value) + " "

make_board(3)
show_board()
change_board('B0', 5)
show_board()

# { } {A} {B} {C}
# {0}  1   1   0
# {1}  1   .   0
# {2}  .   0   0

# { } {A} {B} {C}
# {0}  1   5   0
# {1}  1   .   0
# {2}  .   0   0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    相关资源
    最近更新 更多