2013-03-28 6 views
0
guessesRemaining=12 
Summary=[] 


code=['1','2','3','4'] 



while guessesRemaining > 0: 
report=[] 
guess=validateInput() 
guessesRemaining -= 1 
if guess[0] == code[0]: 
    report.append("X") 
if guess[1] == code[1]: 
    report.append("X") 
if guess[2] == code[2]: 
    report.append("X") 
if guess[3] == code[3]: 
    report.append("X") 

tempCode=list(code) 
tempGuess=list(guess) 

if tempGuess[0] in tempCode: 
    report.append("O") 
if tempGuess[1] in tempCode: 
    report.append("O") 
if tempGuess[2] in tempCode: 
    report.append("O") 
if tempGuess[3] in tempCode: 
    report.append("O") 

ListCount=report.count("X") 
if ListCount > 0: 
    del report[-ListCount:] 

report2=report[0:4] 
dash=["-","-","-","-"] 
report2=report+dash 
report3=report2[0:4] 
report4="".join(report3) 
guess2="".join(guess) 
Summary+=[guess2,report4] 

print(Summary) 

Функция validateInput() вызывает функцию, которую я здесь не добавлял. Я пытаюсь понять, как печатать мои результаты по одной строке за раз в течение 12 догадок. Через три догадок я получаю ...Как напечатать парные элементы по строкам?

['4715', 'OO--', '8457', 'O---', '4658', 'O---'] 

, когда я хочу, чтобы получать ...

['4715', 'OO--'] 
['8457', 'O---'] 
['4658', 'O---'] 

Я пытался добавить в \ п несколькими способами, но я не могу понять, как для его реализации. Любая помощь очень ценится.

+0

исправить ваш отступ – jamylak

+0

Это для игры «Mastermind», не так ли? Я мог бы предложить множество упрощений для логики, но это не сайт для просмотра кода ... –

ответ

0

я думаю, что вам требуется что-то вроде

In [1]: l = ['4715', 'OO--', '8457', 'O---', '4658', 'O---'] 

In [2]: l1 = l[::2] # makes a list ['4715', '8457', '4658'] 

In [3]: l2 = l[1::2] # makes ['OO--', 'O---', 'O---'] 

In [4]: for i in zip(l1, l2): 
    ...:  print i 
    ...: 
('4715', 'OO--') 
('8457', 'O---') 
('4658', 'O---') 
0

если Summary предназначен только для печати и не используется в последующих стадиях,

Summary+=[guess2,report4,'\n'] 

for i in Summary: 
    print i, 

другой способ будет использовать одно из решений от How do you split a list into evenly sized chunks?

1

Я попытался добавить \ n несколькими способами, но я не могу понять как его реализовать.

Это поможет вам, если вы правильно структурируете данные.

Summary+=[guess2,report4] 

Это означает "присоединять каждый элемент найден в [guess2,report4], отдельно, в Summary".

Похоже, что вы имели в виду «лечить [guess2,report4] как отдельный элемент для добавления к Summary». Чтобы сделать это, вам нужно использовать append метод списка:

Summary.append([guess2, report4]) 

Теперь, когда у нас есть список пар, каждый из которых мы хотим отобразить на отдельной строке, это будет намного проще:

for pair in Summary: 
    print(pair) 
Смежные вопросы