2015-03-19 4 views
-3

Я делаю игру, в которой необходимо отобразить сетку 3x3 и сетку 4x4. Это код, который я использовал для 3х3, который работал:4x4 Сетка в питоне?

try: 
    with open('Words.txt', "r") as f:#opens the text file 
     words = f.read().split() 
     random.shuffle(words)#shuffles the words in the grid 
     replacement = words[0] 
     removed = words[1] 
     words.remove(replacement) 

grid = [words[i:i + 3] for i in range(0, len(words), 3)] 
for x,y,z in grid: 
    print(x,y,z)#displays grid 

Однако, я не знаю, как сделать это на сетке 4х4. Любая помощь будет оценена

+5

Это может показаться совершенно сумасшедшим. Вы пытались заменить все экземпляры «3» на «4» в исходном коде? – Kevin

+0

yeah ive попробовал это –

+0

Итак, как все прошло? – Kevin

ответ

0

Я думаю, что в вашем файле: LEN (слов)% 4 = 0

попробовать это:

import random 

with open('Words.txt', "r") as f:#opens the text file 
    words = f.read().split() 
    random.shuffle(words)#shuffles the words in the grid 
    replacement = words[0] 
    removed = words[1] 
    words.remove(replacement) 

grid = [words[i:i + 4] for i in range(0, len(words), 4)] 
r = len(words)%4 

if r==0: 
    for x,y,z,k in grid: 
     print(x,y,z,k) #displays grid 
else: 
    grid = grid[: -1] 
    for x,y,z,k in grid: 
     print(x,y,z,k) #displays grid 
+0

Хмм, пока я вижу намерение здесь - разве вы не предполагаете здесь, что 'Words.txt' содержит либо ровно буквы« 16 », либо« 17 »,« 18 »или« 19 ». В противном случае сетка не может быть гарантирована 4 x 4 –

+1

Это делается для вашего вывода - если вам 22, вы получите сетку размером 4 x 5, если это 1922 год, вы получите сетку размером 4 x 480 - т.е. будет выводить только 4 x 4 в конкретных условиях, о которых я упоминаю ... –

+0

Вы правы. Файл должен содержать 16-19 слов. – picibucor

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