Как я могу проверить каждый элемент в списке один за другим с задержкой между? - PullRequest
0 голосов
/ 15 июня 2019

Я делаю игру, в которой игроку показывают шаблон, и он должен повторить его. Если игрок понимает это правильно, игра добавляет 1 к последовательности каждый раз.

сейчас я пытаюсь заставить игру показать шаблон. Они настроены так, что игровой шаблон хранится в списке. 1 означает, что верхний левый светится 2, верхний правый и т. Д., И каждый раз, когда список игроков == к списку игр, число добавляется в список игр

def addlist():
    if playerpattern == gamepattern:
        gamepattern.append(random.randint(1, 4))

def idk():
    for number in gamepattern:
        if number == 1:
            Gamestate = 1
        if number == 2:
            Gamestate = 2
        if number == 3:
            Gamestate = 3
        if number == 4:
            Gamestate = 4
def show():
    if playerpattern == gamepattern:
            if Gamestate == 1:
                topleft.color = (255, 0, 0)
            else:
                topleft.color = (100, 0, 0)
            if Gamestate == 2:
                topright.color = (0, 0, 255)
            else:
                topright.color = (0, 0, 175)
            if Gamestate == 3:
                bottomleft.color = (0, 255, 0)
            else:
                bottomleft.color = (0, 175, 0)
            if Gamestate == 4:
                bottomright.color = (255, 255, 0)
            else:
                bottomright.color = (175, 175, 0)

playing = True
gamepattern = []
playerpattern = []

while playing:
    clock.tick(10)
    print(gamepattern)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            playing = False
        if event.type == MOUSEBUTTONDOWN:
            mouseclick()

    mousehover()
    addlist()
    show()
    draw()

pygame.quit()

На самом деле это не работает, это все, что я мог придумать. Мне в основном нужна функция, которая проверяет список от начала до конца с небольшим промежутком времени между ними.

Спасибо за помощь

1 Ответ

0 голосов
/ 15 июня 2019

Похоже, вы воссоздаете старую игру Simon.Вы на правильном пути.Разбейте вещи, которые нужно сделать, на функции и перейдите оттуда.Вам понадобятся функции, которые:

  • Проверьте, верна ли догадка (см. Ниже)
  • , добавьте к решению, если они правильно поняли.Назовите это условно ...
  • захватить догадку игрока с помощью щелчков мыши
  • сбросить все, если они ошиблись ...

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

In [1]: solution = [1, 1, 2, 2, 2, 3]                                           

In [2]: guess_1 =  [1, 1, 2, 2, 2, 3]                                           

In [3]: guess_2 =  [1, 1, 2, 2, 2, 4]                                           

In [4]: def check_answer(guess, soln): 
   ...:     if guess == soln: 
   ...:         return True 
   ...:     return False 
   ...:                                                                         

In [5]: check_answer(guess_1, solution)                                         
Out[5]: True

In [6]: check_answer(guess_2, solution)                                         
Out[6]: False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...