Spiel update
This commit is contained in:
parent
108cdfd88e
commit
898a3354bd
106
08_snake.py
106
08_snake.py
@ -1,7 +1,7 @@
|
||||
import neopixel
|
||||
from machine import Pin
|
||||
import time
|
||||
from random import randint, random, seed, choice
|
||||
from random import random, seed, choice
|
||||
|
||||
seed()
|
||||
|
||||
@ -50,15 +50,73 @@ def setze_pixel(x, y, farbe):
|
||||
i = y * 8 + x
|
||||
matrix[i] = farbe
|
||||
|
||||
def neue_richtung():
|
||||
if not taster_runter.value():
|
||||
return "runter"
|
||||
if not taster_rechts.value():
|
||||
return "rechts"
|
||||
if not taster_links.value():
|
||||
return "links"
|
||||
if not taster_hoch.value():
|
||||
return "hoch"
|
||||
def neue_richtung(t):
|
||||
richtung = None
|
||||
for i in range(1, 10):
|
||||
if not taster_runter.value():
|
||||
richtung = "runter"
|
||||
if not taster_rechts.value():
|
||||
richtung = "rechts"
|
||||
if not taster_links.value():
|
||||
richtung = "links"
|
||||
if not taster_hoch.value():
|
||||
richtung = "hoch"
|
||||
time.sleep(t/10)
|
||||
return richtung
|
||||
|
||||
def warte_auf_taste():
|
||||
richtung = "vor"
|
||||
i = 0
|
||||
taste = None
|
||||
schwierigkeit = 1
|
||||
while taste != "rechts":
|
||||
taste = neue_richtung(0.2)
|
||||
|
||||
matrix.fill((0, 0, 0))
|
||||
|
||||
if i == 0:
|
||||
richtung = "vor"
|
||||
if i == 7:
|
||||
richtung = "zurueck"
|
||||
|
||||
if richtung == "vor":
|
||||
i = i+1
|
||||
elif richtung == "zurueck":
|
||||
i = i-1
|
||||
|
||||
setze_pixel(i, 0, (255, 0, 0))
|
||||
setze_pixel(7, i, (0, 255, 0))
|
||||
setze_pixel(7-i, 7, (0, 0, 255))
|
||||
setze_pixel(0, 7-i, (255, 255, 0))
|
||||
|
||||
if taste == "runter":
|
||||
schwierigkeit = schwierigkeit + 1
|
||||
if schwierigkeit == 4: schwierigkeit = 3
|
||||
if taste == "hoch":
|
||||
schwierigkeit = schwierigkeit - 1
|
||||
if schwierigkeit == 0: schwierigkeit = 1
|
||||
|
||||
gruen = (0, 255, 0)
|
||||
gelb = (255, 255, 0)
|
||||
rot = (255, 0, 0)
|
||||
if schwierigkeit == 1:
|
||||
setze_pixel(3, 1, gruen)
|
||||
setze_pixel(4, 1, gruen)
|
||||
setze_pixel(3, 2, gruen)
|
||||
setze_pixel(4, 2, gruen)
|
||||
if schwierigkeit == 2:
|
||||
setze_pixel(3, 3, gelb)
|
||||
setze_pixel(4, 3, gelb)
|
||||
setze_pixel(3, 4, gelb)
|
||||
setze_pixel(4, 4, gelb)
|
||||
if schwierigkeit == 3:
|
||||
setze_pixel(3, 5, rot)
|
||||
setze_pixel(4, 5, rot)
|
||||
setze_pixel(3, 6, rot)
|
||||
setze_pixel(4, 6, rot)
|
||||
|
||||
matrix.write()
|
||||
return schwierigkeit
|
||||
|
||||
RICHTUNGEN = {
|
||||
"hoch": (0, -1),
|
||||
@ -67,6 +125,19 @@ RICHTUNGEN = {
|
||||
"rechts": (1, 0)
|
||||
}
|
||||
|
||||
SCHWIERIGKEITEN = [0.6, 0.4, 0.3]
|
||||
|
||||
def ist_entgegengesetzt(r1, r2):
|
||||
if r1 == "hoch" and r2 == "runter":
|
||||
return True
|
||||
if r1 == "links" and r2 == "rechts":
|
||||
return True
|
||||
if r1 == "rechts" and r2 == "links":
|
||||
return True
|
||||
if r1 == "runter" and r2 == "hoch":
|
||||
return True
|
||||
return False
|
||||
|
||||
def anzeigen(snake, essen):
|
||||
matrix.fill((0, 0, 0))
|
||||
|
||||
@ -79,7 +150,7 @@ def anzeigen(snake, essen):
|
||||
|
||||
# Essen anzeigen
|
||||
fx, fy = essen
|
||||
setze_pixel(fx, fy, zufall_farbe())
|
||||
setze_pixel(fx, fy, (255, 255, 255))
|
||||
|
||||
matrix.write()
|
||||
|
||||
@ -192,13 +263,16 @@ def game_over(score):
|
||||
|
||||
def spiel():
|
||||
snake = [(4, 4)]
|
||||
richtung = "rechts"
|
||||
essen = neues_essen(snake)
|
||||
|
||||
while True:
|
||||
naechste_richtung = neue_richtung()
|
||||
schwierigkeit = warte_auf_taste()
|
||||
|
||||
if naechste_richtung in RICHTUNGEN:
|
||||
zeit = SCHWIERIGKEITEN[schwierigkeit - 1]
|
||||
richtung = "rechts"
|
||||
|
||||
while True:
|
||||
naechste_richtung = neue_richtung(zeit)
|
||||
if naechste_richtung in RICHTUNGEN and not ist_entgegengesetzt(naechste_richtung, richtung):
|
||||
richtung = naechste_richtung
|
||||
|
||||
dx, dy = RICHTUNGEN[richtung]
|
||||
@ -218,8 +292,6 @@ def spiel():
|
||||
snake.pop()
|
||||
|
||||
anzeigen(snake, essen)
|
||||
time.sleep(0.4)
|
||||
|
||||
while True:
|
||||
spiel()
|
||||
time.sleep(1)
|
||||
|
106
main.py
106
main.py
@ -1,7 +1,7 @@
|
||||
import neopixel
|
||||
from machine import Pin
|
||||
import time
|
||||
from random import randint, random, seed, choice
|
||||
from random import random, seed, choice
|
||||
|
||||
seed()
|
||||
|
||||
@ -50,15 +50,73 @@ def setze_pixel(x, y, farbe):
|
||||
i = y * 8 + x
|
||||
matrix[i] = farbe
|
||||
|
||||
def neue_richtung():
|
||||
if not taster_runter.value():
|
||||
return "runter"
|
||||
if not taster_rechts.value():
|
||||
return "rechts"
|
||||
if not taster_links.value():
|
||||
return "links"
|
||||
if not taster_hoch.value():
|
||||
return "hoch"
|
||||
def neue_richtung(t):
|
||||
richtung = None
|
||||
for i in range(1, 10):
|
||||
if not taster_runter.value():
|
||||
richtung = "runter"
|
||||
if not taster_rechts.value():
|
||||
richtung = "rechts"
|
||||
if not taster_links.value():
|
||||
richtung = "links"
|
||||
if not taster_hoch.value():
|
||||
richtung = "hoch"
|
||||
time.sleep(t/10)
|
||||
return richtung
|
||||
|
||||
def warte_auf_taste():
|
||||
richtung = "vor"
|
||||
i = 0
|
||||
taste = None
|
||||
schwierigkeit = 1
|
||||
while taste != "rechts":
|
||||
taste = neue_richtung(0.2)
|
||||
|
||||
matrix.fill((0, 0, 0))
|
||||
|
||||
if i == 0:
|
||||
richtung = "vor"
|
||||
if i == 7:
|
||||
richtung = "zurueck"
|
||||
|
||||
if richtung == "vor":
|
||||
i = i+1
|
||||
elif richtung == "zurueck":
|
||||
i = i-1
|
||||
|
||||
setze_pixel(i, 0, (255, 0, 0))
|
||||
setze_pixel(7, i, (0, 255, 0))
|
||||
setze_pixel(7-i, 7, (0, 0, 255))
|
||||
setze_pixel(0, 7-i, (255, 255, 0))
|
||||
|
||||
if taste == "runter":
|
||||
schwierigkeit = schwierigkeit + 1
|
||||
if schwierigkeit == 4: schwierigkeit = 3
|
||||
if taste == "hoch":
|
||||
schwierigkeit = schwierigkeit - 1
|
||||
if schwierigkeit == 0: schwierigkeit = 1
|
||||
|
||||
gruen = (0, 255, 0)
|
||||
gelb = (255, 255, 0)
|
||||
rot = (255, 0, 0)
|
||||
if schwierigkeit == 1:
|
||||
setze_pixel(3, 1, gruen)
|
||||
setze_pixel(4, 1, gruen)
|
||||
setze_pixel(3, 2, gruen)
|
||||
setze_pixel(4, 2, gruen)
|
||||
if schwierigkeit == 2:
|
||||
setze_pixel(3, 3, gelb)
|
||||
setze_pixel(4, 3, gelb)
|
||||
setze_pixel(3, 4, gelb)
|
||||
setze_pixel(4, 4, gelb)
|
||||
if schwierigkeit == 3:
|
||||
setze_pixel(3, 5, rot)
|
||||
setze_pixel(4, 5, rot)
|
||||
setze_pixel(3, 6, rot)
|
||||
setze_pixel(4, 6, rot)
|
||||
|
||||
matrix.write()
|
||||
return schwierigkeit
|
||||
|
||||
RICHTUNGEN = {
|
||||
"hoch": (0, -1),
|
||||
@ -67,6 +125,19 @@ RICHTUNGEN = {
|
||||
"rechts": (1, 0)
|
||||
}
|
||||
|
||||
SCHWIERIGKEITEN = [0.6, 0.4, 0.3]
|
||||
|
||||
def ist_entgegengesetzt(r1, r2):
|
||||
if r1 == "hoch" and r2 == "runter":
|
||||
return True
|
||||
if r1 == "links" and r2 == "rechts":
|
||||
return True
|
||||
if r1 == "rechts" and r2 == "links":
|
||||
return True
|
||||
if r1 == "runter" and r2 == "hoch":
|
||||
return True
|
||||
return False
|
||||
|
||||
def anzeigen(snake, essen):
|
||||
matrix.fill((0, 0, 0))
|
||||
|
||||
@ -79,7 +150,7 @@ def anzeigen(snake, essen):
|
||||
|
||||
# Essen anzeigen
|
||||
fx, fy = essen
|
||||
setze_pixel(fx, fy, zufall_farbe())
|
||||
setze_pixel(fx, fy, (255, 255, 255))
|
||||
|
||||
matrix.write()
|
||||
|
||||
@ -192,13 +263,16 @@ def game_over(score):
|
||||
|
||||
def spiel():
|
||||
snake = [(4, 4)]
|
||||
richtung = "rechts"
|
||||
essen = neues_essen(snake)
|
||||
|
||||
while True:
|
||||
naechste_richtung = neue_richtung()
|
||||
schwierigkeit = warte_auf_taste()
|
||||
|
||||
if naechste_richtung in RICHTUNGEN:
|
||||
zeit = SCHWIERIGKEITEN[schwierigkeit - 1]
|
||||
richtung = "rechts"
|
||||
|
||||
while True:
|
||||
naechste_richtung = neue_richtung(zeit)
|
||||
if naechste_richtung in RICHTUNGEN and not ist_entgegengesetzt(naechste_richtung, richtung):
|
||||
richtung = naechste_richtung
|
||||
|
||||
dx, dy = RICHTUNGEN[richtung]
|
||||
@ -218,8 +292,6 @@ def spiel():
|
||||
snake.pop()
|
||||
|
||||
anzeigen(snake, essen)
|
||||
time.sleep(0.4)
|
||||
|
||||
while True:
|
||||
spiel()
|
||||
time.sleep(1)
|
||||
|
Loading…
x
Reference in New Issue
Block a user