Я пытаюсь сделать консольную многопользовательскую игру в змею с использованием сокетов в python.Однако я сталкиваюсь с неортодоксальной проблемой.Всякий раз, когда я использую любую функцию времени, скажем, time.sleep () или win.timeout (), json.loads () вызывает исключение: json.decoder.JSONDecodeError: Дополнительные данные: строка 1, столбец 72 (символ 71) Я посмотрел на ошибку и не декодирую несколько объектов JSON.Я также пытался использовать pickle, но ошибка сохраняется, пока я не закомментирую функции времени.
Клиент:
while 1:
x = s.recv(1024)
snake = json.loads(x)['snake']
snake2 = json.loads(x)['me']
win.border(0)
win.addstr(0, 2, 'Score : ' + str(score) + ' ')
win.addstr(0, 27, ' SNAKE ')
#win.timeout(75) Works fine untill this is commented out
#or this time.sleep(1)
prevKey = key
event = win.getch()
key = key if event == -1 else event
if key not in [KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, 27]:
key = prevKey
win.addch(snake[0][0], snake[0][1], '0')
win.addch(snake2[0][0], snake2[0][1], '0')
last = snake.pop()
win.addch(last[0], last[1], ' ')
last = snake2.pop()
win.addch(last[0], last[1], ' ')
Сервер:
me = [[4,10], [4,9], [4,8]]
snake1 = [[6,10], [6,9], [6,8]]
snakes.append(snake1)
snakes.append(me)
while True:
time.sleep(0.001)
x = {
"snake":snake1 ,
"me" :me
}
c.send(bytes(json.dumps(x) , 'utf8'))