2015-09-06 2 views
0

поэтому эта программа предсказывает первый выигрышный ход знаменитой игры Нима. Мне просто нужно немного помочь выяснить эту проблему в коде. Входной файл читает что-то вроде этого.Как сделать лимит строк чтения первым номером в файле?

3 
13 4 5 
29 5 1 
34 4 50 

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

2 
**13 4 5 
29 5 1** 
34 4 50 

было бы читать только следующие две строки, следующие за ним.

До сих пор это был прогресс моего кода

def main(): 

nim_file = open('nim.txt', 'r') 
first_line = nim_file.readline() 
counter = 1 
n = int (first_line) 
for line in nim_file: 
    for j in range(1, n): 
     a, b, c = [int(i) for i in line.split()] 
     nim_sum = a^b^c 
     if nim_sum == 0: 
      print ("Heaps:", a, b, c, ": " "You Lose!") 
     else: 
      p = a^nim_sum 
      q = b^nim_sum 
      r = c^nim_sum 
      if p < a: 
       stack1 = a - p 
       print ("Heaps:", a, b, c, ": " "remove", stack1, "from Heap 1") 
      elif q < b: 
       stack2 = b - q 
       print ("Heaps:", a, b, c, ": " "remove", stack2, "from Heap 2") 
      elif r < c: 
       stack3 = c - r 
       print ("Heaps:", a, b, c, ": " "remove", stack3, "from Heap 3") 
      else: 
       print ("Error") 
nim_file.close() 

main() 

я преобразовал первый номер строки к междунар и попытался установить время цикла сначала с счетчиком, чтобы увидеть, что счетчик не будет перейдите выше значения n, но это не сработало. Итак, какие-то мысли?

ответ

1

Если файл небольшой, просто загрузить всю вещь:

lines = open('nim.txt').readlines() 
interesting_lines = lines[1:int(lines[0])+1] 

и продолжить оттуда.

0

У меня есть два вложенных заявления for, второй из которых не имеет большого значения. Вам нужно оставить только один, как это:

for _ in range(n): 
    a, b, c = [int(i) for i in nim_file.readline()] 

и удалить for line in nim_file. Также проверьте this question и рассмотрите использование инструкции with для обработки открытия/закрытия файла.

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