Quantcast
Channel: Форум программистов и сисадминов Киберфорум
Viewing all articles
Browse latest Browse all 519128

EOFError: EOF when reading a line - Python для начинающих

$
0
0
Условие:

Вам предстоит написать простую игру с компьютером, модификацию всем известной "Три в ряд".
Условия простые.
Пользователь вводит число – сколько мест в линии, первый ход делает компьютер, вводит строку: место и цвет (’R’, ’G’ или ’B’) через пробел, нумерация с 0.
Выводится сообщение, кто сделал и какой ход:
AI step <шаг>
или
Your step <шаг>

Выводится строка с размещенной буквой.
Затем ходит пользователь, вводит в одной строке место и цвет (’R’, ’G’ или ’B’) через пробел. Если три буквы одного цвета рядом, они пропадают, тому, кто поставил последнюю, начисляется очко и линия выводится ещё раз, уже без одинаковых букв, стоящих рядом.
Игра продолжается, пока есть места.
Если пользователь хочет походить на занятое место, выводится сообщение:
This place is taken.

По окончании выводятся сообщения, кто выиграл и счёт.
Если выиграл компьютер, вывести:
AI win! <счёт> : <счёт>

Если выиграл пользователь, выводим:
You win! <счёт> : <счёт>

Если ничья:
We have a tie.

Пример работы программы:

5
AI step 2 R
_ _ R _ _
Your step 1 B
_ B R _ _
AI step 0 B
B B R _ _
Your step 3 R
B B R R _
AI step 4 R
B B R R R
B B _ _ _
Your step 3 G
B B _ G _
AI step 2 G
B B G G _
Your step 4 R
B B G G R
AI win! 1 : 0

вот мой код для решения этой задачи:

n = int(input())
pol = "_" * n
pol = " ".join(pol).split(" ")
pols = pol.copy()
k = 1
s = 0
score1 = 0
score2 = 0
while n:
h1 = input()
h1 = h1.split(" ")
if k % 2 == 1:
if int(h1[0]) < 0 or int(h1[0]) >= n or pol[int(h1[0])] != "_":
print("This place is taken.")
else:
pol[int(h1[0])] = h1[1]
print("AI step", " ".join(h1))
k += 1
else:
if int(h1[0]) < 0 or int(h1[0]) >= n or pol[int(h1[0])] != "_":
print("This place is taken.")
else:
pol[int(h1[0])] = h1[1]
print("Your step", " ".join(h1))
k += 1
for i in range(len(pol) - 2):
if pol[i] == pol[i + 1] == pol[i + 2] and pol[i] != "_":
print(*pol)
pol[i] = '_'
pol[i + 1] = '_'
pol[i + 2] = '_'
if k % 2 == 0:
score2 += 1
elif k % 2 == 1:
score1 += 1
print(*pol)
for i in pol:
if i != "_":
s += 1
if s == n:
if k % 2 == 0 and score2 != score1:
print("You win!", score1, ":", score2)
break
elif k % 2 == 1 and score2 != score1:
print("Ai win!", score2, ":", score1)
break
else:
print("We have a tie.")
break

Выдается такая ошибка:
Traceback (most recent call last):
File "/temp/executing/solution.py", line 10, in <module>
h1 = input()
^^^^^^^
EOFError: EOF when reading a line
make: *** [Makefile:5: run] Error 1

Помогите с ее решением, не понимаю проблему программы

Viewing all articles
Browse latest Browse all 519128

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>