Невозможно выполнить игру Python - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть игра, которая была запрограммирована на Python 2, по-видимому, и мне нужно изменить ее на стиль кода Python 3, я новичок в этом, так что многое я не знаю, пока единственное, что я мог изменитьбыли отпечатки, которые требовались только в скобках.Моя текущая проблема заключается в следующем:

File "A:\Descargas\GalacticWars\GalacticWars\galacticWars.py", line 984, in <module>
main()
File "A:\Descargas\GalacticWars\GalacticWars\galacticWars.py", line 979, in main
escena.update()
File "A:\Descargas\GalacticWars\GalacticWars\galacticWars.py", line 102, in update
funcion()
File "A:\Descargas\GalacticWars\GalacticWars\galacticWars.py", line 150, in nuevo_juego
escena = Game()
File "A:\Descargas\GalacticWars\GalacticWars\galacticWars.py", line 554, in __init__
  self.record = pickle.load(self.records)
TypeError: a bytes-like object is required, not 'str'

Строки имеют это:

984 и 985

if __name__ == "__main__":
main()

976 до 981

# Bucle principal.
while True:
    # Actualizamos la escena.
    escena.update()
    escena.imprimir(screen)
    clock.tick(60)

89 до 102:

    def update(self):
    # Altera la opción seleccionada con las teclas cursor.
    key = pygame.key.get_pressed()

    if not self.mantiene_pulsado:
        if key[K_UP]:
            self.seleccionado -= 1
        elif key[K_DOWN]:
            self.seleccionado += 1
        elif key[K_RETURN]:
            # Invoca a la función asociada a la opción-
            titulo, funcion = self.opciones[self.seleccionado]
            print 'Selecionando función:', repr(titulo)
            funcion()

146 до 150:

# Función para comenzar el nuevo juego.
def nuevo_juego():
# Pasamos la variable global escena.
global escena
escena = Game()

552 до 556:

# Vamos a otener el Hi-score.
    self.records = open('records', 'r')
    self.record = pickle.load(self.records)
    self.records.close()
    print 'Cargando Record:', self.record

1 Ответ

0 голосов
/ 22 ноября 2018

строка Python 2 имеет тип "байты".str Python 3 имеет тип "Unicode".

короткий, безответственный ответ будет:

изменить self.records = open('records', 'r')

на self.records = open('records', 'rb')

длинный, ответственный ответ будет таким:

прочитайте о теме и обработайте ее так, как это подходит для ВСЕГО вашего кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...