asdassda
This commit is contained in:
parent
5ca37d5ffd
commit
5f1b7cf45e
2 changed files with 3 additions and 3 deletions
109
firmware or whatever!.py
Normal file
109
firmware or whatever!.py
Normal file
|
@ -0,0 +1,109 @@
|
|||
import board
|
||||
import busio
|
||||
import digitalio
|
||||
import adafruit_ssd1306
|
||||
import time
|
||||
|
||||
i2c = busio.I2C(board.GP1, board.GP0)
|
||||
oled = adafruit_ssd1306.SSD1306_I2C(128, 32, i2c)
|
||||
|
||||
oled.fill(0)
|
||||
oled.show()
|
||||
|
||||
switch1 = digitalio.DigitalInOut(board.GP14)
|
||||
switch1.direction = digitalio.Direction.INPUT
|
||||
switch1.pull = digitalio.Pull.UP
|
||||
|
||||
switch2 = digitalio.DigitalInOut(board.GP13)
|
||||
switch2.direction = digitalio.Direction.INPUT
|
||||
switch2.pull = digitalio.Pull.UP
|
||||
|
||||
player1_time = 300.0
|
||||
player2_time = 300.0
|
||||
current_turn = 0
|
||||
last_update_time = 0.0
|
||||
game_over = False
|
||||
|
||||
last_sw1_state = True
|
||||
last_sw2_state = True
|
||||
debounce_delay = 0.2
|
||||
last_press_time = 0.0
|
||||
|
||||
oled.text("PRESS ANY BUTTON", 0, 12, 1)
|
||||
oled.show()
|
||||
|
||||
while True:
|
||||
current_monotonic_time = time.monotonic()
|
||||
|
||||
if not game_over:
|
||||
if current_turn == 1:
|
||||
elapsed = current_monotonic_time - last_update_time
|
||||
player1_time -= elapsed
|
||||
last_update_time = current_monotonic_time
|
||||
if player1_time <= 0:
|
||||
player1_time = 0.0
|
||||
game_over = True
|
||||
current_turn = 0
|
||||
elif current_turn == 2:
|
||||
elapsed = current_monotonic_time - last_update_time
|
||||
player2_time -= elapsed
|
||||
last_update_time = current_monotonic_time
|
||||
if player2_time <= 0:
|
||||
player2_time = 0.0
|
||||
game_over = True
|
||||
current_turn = 0
|
||||
|
||||
sw1_current_state = switch1.value
|
||||
sw2_current_state = switch2.value
|
||||
|
||||
if (
|
||||
not sw1_current_state
|
||||
and last_sw1_state
|
||||
and (current_monotonic_time - last_press_time) > debounce_delay
|
||||
):
|
||||
if not game_over:
|
||||
if current_turn == 1:
|
||||
current_turn = 2
|
||||
last_update_time = current_monotonic_time
|
||||
elif current_turn == 0:
|
||||
current_turn = 2
|
||||
last_update_time = current_monotonic_time
|
||||
last_press_time = current_monotonic_time
|
||||
|
||||
if (
|
||||
not sw2_current_state
|
||||
and last_sw2_state
|
||||
and (current_monotonic_time - last_press_time) > debounce_delay
|
||||
):
|
||||
if not game_over:
|
||||
if current_turn == 2:
|
||||
current_turn = 1
|
||||
last_update_time = current_monotonic_time
|
||||
elif current_turn == 0:
|
||||
current_turn = 1
|
||||
last_update_time = current_monotonic_time
|
||||
last_press_time = current_monotonic_time
|
||||
|
||||
last_sw1_state = sw1_current_state
|
||||
last_sw2_state = sw2_current_state
|
||||
|
||||
oled.fill(0)
|
||||
|
||||
p1_minutes = int(player1_time // 60)
|
||||
p1_seconds = int(player1_time % 60)
|
||||
p1_display = "{:02d}:{:02d}".format(p1_minutes, p1_seconds)
|
||||
|
||||
p2_minutes = int(player2_time // 60)
|
||||
p2_seconds = int(player2_time % 60)
|
||||
p2_display = "{:02d}:{:02d}".format(p2_minutes, p2_seconds)
|
||||
|
||||
oled.text("P1: {}".format(p1_display), 0, 0, 1)
|
||||
oled.text("P2: {}".format(p2_display), 0, 16, 1)
|
||||
|
||||
if game_over:
|
||||
if player1_time <= 0:
|
||||
oled.text("P2 WINS!", 70, 0, 1)
|
||||
elif player2_time <= 0:
|
||||
oled.text("P1 WINS!", 70, 16, 1)
|
||||
|
||||
oled.show()
|
Loading…
Add table
Add a link
Reference in a new issue