2014-02-09 2 views
0

Я создаю панель подключения 4, используя подсписок, но приведенный ниже код предназначен для платы 6x7. Я хочу изменить его, чтобы он мог настроить любой размер, который хочет пользователь. Мне нужна помощь, потому что я не знаю, как ее изменить.Python: Connect 4 board

ttt_board = [ [ " ", " ", " ", " ", " ", " "," ", " "], 
       [ " ", " ", " ", " ", " "," ", " ", " "], 
       [ " ", " ", " ", " ", " ", " ", " ", " "], 
       [ " ", " ", " ", " ", " ", " ", " ", " "], 
       [ " ", " ", " ", " ", " ", " ", " ", " "], 
       [ " ", " ", " ", " ", " ", " ", " ", " "] ] 
+0

Как пользователь вводит размер? –

+0

Я спрашиваю у пользователя, сколько строк и столбцов они хотели бы. – user3161743

+0

Возможно, вы использовали понимание списка: 'ttt_board = [[" "] * 8 для i в диапазоне (6)]' – alfasin

ответ

1

Вы должны генерировать строки и столбцы динамически:

board = [[" " for _ in range(col_count)] 
     for _ in range(row_count)] 
2

Использование списковых.

[[" " for x in range(width)] for y in range(height)]] (где ширина и высота значения ваши входные данные пользователя, конечно.)

Почему это работает?

Во-первых, функция range генерирует целые числа между двумя конечными точками. Если вы опустите первую конечную точку, по умолчанию она равна 0. Таким образом, range(5) даст [0,1,2,3,4].

Пояснение списка генерирует список, основанный на двух вещах: выражение для элементов списка и выражение, на котором будет основываться длина списка. Это принимает вид [x для y в z], как показано выше.

x - это выражение для каждого элемента - в этом случае - постоянное значение.

y - это значение, которое привязывается к каждому элементу z, хотя в этом случае мы его не используем.

и z является истребителем для привязки y (что является излишним, учитывая последнее, что я сказал).

Для более сложного примера, который включает в себя использование привязок, необходимо учитывать следующее:

a = ["one", "two", "three", "four"]

b = [len(x) for x in a])

Теперь мы имеем b как [3,3,5,4].

Смежные вопросы