Как добавить программу ввода в виде (A2 5) - PullRequest
1 голос
/ 23 мая 2019

Я создал доску для бинарной головоломки (пока она случайная, но она будет иметь больше смысла, когда я добавлю правила) сейчас мне нужно, чтобы кто-то мог изменить значение во вложенных списках, этот вход должен быть в формате 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

1 Ответ

0 голосов
/ 23 мая 2019

Переместите свой список 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...