69 lines
3.3 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Импортировать стандартные модули, используемые в этой игре
# Модуль экрана не импортируется, потому что он передается как объект в вызываемую функцию
from time import sleep
from random import randrange
from machine import Pin
# Функция, которая возвращает название вашей игры
def get_game_name():
game_name = "Button Cowboys"
return game_name
# Основная функция игры, которая вызывается в главном меню тетриса
def game_loop(oled, led_user_1, led_user_2):
# Определить пины кнопок, которые будут использоваться в этой игре и обрабатываться на первом ядре
down = Pin(27, Pin.IN, Pin.PULL_UP)
action_b = Pin(4, Pin.IN, Pin.PULL_UP)
# Игровой цикл, который выполняется бесконечно, пока не будет вызвано условие сброса из второго ядра
while(True):
# Очистить экран и установить переменную для цикла while
oled.fill(0)
oled.show()
go_on = True
# Нарисовать инструкции для игры и подождать 3 секунды
oled.text("PL1 - B", 0, 0, 1)
oled.text("PL2 - DOWN", 0, 10, 1)
oled.line(0, 19, 127, 19, 1)
oled.text("first one to", 0, 21, 1)
oled.text("press button", 0, 30, 1)
oled.text("after 'GO' wins", 0, 39, 1)
oled.show()
sleep(3)
# Очистить экран и подождать случайное время перед противостоянием
oled.fill(0)
oled.text("get ready...", 16, 29, 1)
oled.show()
sleep(randrange(3, 15, 1))
# "Высокий полдень" и запомнить состояние кнопки, чтобы человек, удерживающий кнопку, не выигрывал автоматически
oled.fill(1)
oled.text("GO", 56, 29, 0)
previous_down_state = down.value()
previous_b_state = action_b.value()
oled.show()
# Проверить изменение состояния кнопки, выйти из цикла while и назначить победителя соответствующим образом
while (go_on):
if (previous_b_state != action_b.value()):
led_user_2.value(1)
oled.fill(0)
oled.text("PLAYER 1 WINS", 12, 29, 1)
go_on = False
if (previous_down_state != down.value()):
led_user_1.value(1)
oled.fill(0)
oled.text("PLAYER 2 WINS", 12, 29, 1)
go_on = False
# Показать имя победившего игрока и выключить светодиоды перед перезапуском игры
oled.show()
sleep(3)
oled.fill(0)
oled.show()
led_user_1.value(0)
led_user_2.value(0)