Высокая Оценка по системе в Pygame - PullRequest
0 голосов
/ 08 января 2020

Вот код для игры python змея, я пытался использовать модули shelve и pickle безуспешно после попытки включить их, как видно из других вопросов на сайте. Знаете ли вы способ включить эти модули или другие, чтобы высокий балл был напечатан в терминале под партитурой. На данный момент счет печатается каждый раз, когда змея кусает хвост, и вы закрываете окно сообщения, а затем сразу начинается новая игра. Целью было бы то, что рекорд будет печататься в то же время, что и счет. Я пропустил часть кода, как показано "[...]" Если вы хотите увидеть другие его части, я буду рад показать его ...

import pygame
import tkinter as tk
import random
import math
from tkinter import messagebox 


[…]

def main():
    global width, rows, s, snack
    width=500
    rows=20
    win = pygame.display.set_mode((width, width))
    s = snake ((0,255,0),(10,10))
    snack = cube(randomSnack(rows, s), color=(255,0,0))
    flag = True

    clock=pygame.time.Clock()

    while flag:
        pygame.time.delay(50)
        clock.tick(10)
        s.move()
        if s.body[0].pos == snack.pos:
            s.addCube()
            snack = cube(randomSnack(rows, s), color = (255,0,0))

        for x in range(len(s.body)):
            if s.body[x].pos in list(map(lambda z:z.pos,s.body[x+1:])): 
                print('Score: ', len(s.body))
                message_box('You Lost!', 'Try again')
                s.reset((10,10))
            break    

1 Ответ

0 голосов
/ 15 января 2020

Я не совсем уверен, что вы имеете в виду. То, как я обработал рекорд в моей первой игре Snake, было примерно таким:

  1. Импортировать последний рекорд из файла в папке проекта на моем компьютере в переменную self.high_score.
  2. Иметь отдельную переменную self.score, которая обрабатывает счет для текущей игры.
  3. Выведите обе переменные во время игры, где self.score += 1, когда змея ест закуску, а self.high_score остается неизменным на протяжении всей игры.
  4. Когда игра заканчивается (змея умирает), выполняется проверка, чтобы увидеть if self.score > self.high_score. Если это так, self.high_score = self.score и число в локальном файле на моем компьютере обновляется с этим новым рекордом.

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

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