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
|
import neopixel
|
||||||
from machine import Pin
|
from machine import Pin
|
||||||
import time
|
import time
|
||||||
from random import randint, random, seed, choice
|
from random import random, seed, choice
|
||||||
|
|
||||||
seed()
|
seed()
|
||||||
|
|
||||||
@ -50,15 +50,73 @@ def setze_pixel(x, y, farbe):
|
|||||||
i = y * 8 + x
|
i = y * 8 + x
|
||||||
matrix[i] = farbe
|
matrix[i] = farbe
|
||||||
|
|
||||||
def neue_richtung():
|
def neue_richtung(t):
|
||||||
if not taster_runter.value():
|
richtung = None
|
||||||
return "runter"
|
for i in range(1, 10):
|
||||||
if not taster_rechts.value():
|
if not taster_runter.value():
|
||||||
return "rechts"
|
richtung = "runter"
|
||||||
if not taster_links.value():
|
if not taster_rechts.value():
|
||||||
return "links"
|
richtung = "rechts"
|
||||||
if not taster_hoch.value():
|
if not taster_links.value():
|
||||||
return "hoch"
|
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 = {
|
RICHTUNGEN = {
|
||||||
"hoch": (0, -1),
|
"hoch": (0, -1),
|
||||||
@ -67,6 +125,19 @@ RICHTUNGEN = {
|
|||||||
"rechts": (1, 0)
|
"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):
|
def anzeigen(snake, essen):
|
||||||
matrix.fill((0, 0, 0))
|
matrix.fill((0, 0, 0))
|
||||||
|
|
||||||
@ -79,7 +150,7 @@ def anzeigen(snake, essen):
|
|||||||
|
|
||||||
# Essen anzeigen
|
# Essen anzeigen
|
||||||
fx, fy = essen
|
fx, fy = essen
|
||||||
setze_pixel(fx, fy, zufall_farbe())
|
setze_pixel(fx, fy, (255, 255, 255))
|
||||||
|
|
||||||
matrix.write()
|
matrix.write()
|
||||||
|
|
||||||
@ -192,13 +263,16 @@ def game_over(score):
|
|||||||
|
|
||||||
def spiel():
|
def spiel():
|
||||||
snake = [(4, 4)]
|
snake = [(4, 4)]
|
||||||
richtung = "rechts"
|
|
||||||
essen = neues_essen(snake)
|
essen = neues_essen(snake)
|
||||||
|
|
||||||
while True:
|
schwierigkeit = warte_auf_taste()
|
||||||
naechste_richtung = neue_richtung()
|
|
||||||
|
|
||||||
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
|
richtung = naechste_richtung
|
||||||
|
|
||||||
dx, dy = RICHTUNGEN[richtung]
|
dx, dy = RICHTUNGEN[richtung]
|
||||||
@ -218,8 +292,6 @@ def spiel():
|
|||||||
snake.pop()
|
snake.pop()
|
||||||
|
|
||||||
anzeigen(snake, essen)
|
anzeigen(snake, essen)
|
||||||
time.sleep(0.4)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
spiel()
|
spiel()
|
||||||
time.sleep(1)
|
|
||||||
|
106
main.py
106
main.py
@ -1,7 +1,7 @@
|
|||||||
import neopixel
|
import neopixel
|
||||||
from machine import Pin
|
from machine import Pin
|
||||||
import time
|
import time
|
||||||
from random import randint, random, seed, choice
|
from random import random, seed, choice
|
||||||
|
|
||||||
seed()
|
seed()
|
||||||
|
|
||||||
@ -50,15 +50,73 @@ def setze_pixel(x, y, farbe):
|
|||||||
i = y * 8 + x
|
i = y * 8 + x
|
||||||
matrix[i] = farbe
|
matrix[i] = farbe
|
||||||
|
|
||||||
def neue_richtung():
|
def neue_richtung(t):
|
||||||
if not taster_runter.value():
|
richtung = None
|
||||||
return "runter"
|
for i in range(1, 10):
|
||||||
if not taster_rechts.value():
|
if not taster_runter.value():
|
||||||
return "rechts"
|
richtung = "runter"
|
||||||
if not taster_links.value():
|
if not taster_rechts.value():
|
||||||
return "links"
|
richtung = "rechts"
|
||||||
if not taster_hoch.value():
|
if not taster_links.value():
|
||||||
return "hoch"
|
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 = {
|
RICHTUNGEN = {
|
||||||
"hoch": (0, -1),
|
"hoch": (0, -1),
|
||||||
@ -67,6 +125,19 @@ RICHTUNGEN = {
|
|||||||
"rechts": (1, 0)
|
"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):
|
def anzeigen(snake, essen):
|
||||||
matrix.fill((0, 0, 0))
|
matrix.fill((0, 0, 0))
|
||||||
|
|
||||||
@ -79,7 +150,7 @@ def anzeigen(snake, essen):
|
|||||||
|
|
||||||
# Essen anzeigen
|
# Essen anzeigen
|
||||||
fx, fy = essen
|
fx, fy = essen
|
||||||
setze_pixel(fx, fy, zufall_farbe())
|
setze_pixel(fx, fy, (255, 255, 255))
|
||||||
|
|
||||||
matrix.write()
|
matrix.write()
|
||||||
|
|
||||||
@ -192,13 +263,16 @@ def game_over(score):
|
|||||||
|
|
||||||
def spiel():
|
def spiel():
|
||||||
snake = [(4, 4)]
|
snake = [(4, 4)]
|
||||||
richtung = "rechts"
|
|
||||||
essen = neues_essen(snake)
|
essen = neues_essen(snake)
|
||||||
|
|
||||||
while True:
|
schwierigkeit = warte_auf_taste()
|
||||||
naechste_richtung = neue_richtung()
|
|
||||||
|
|
||||||
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
|
richtung = naechste_richtung
|
||||||
|
|
||||||
dx, dy = RICHTUNGEN[richtung]
|
dx, dy = RICHTUNGEN[richtung]
|
||||||
@ -218,8 +292,6 @@ def spiel():
|
|||||||
snake.pop()
|
snake.pop()
|
||||||
|
|
||||||
anzeigen(snake, essen)
|
anzeigen(snake, essen)
|
||||||
time.sleep(0.4)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
spiel()
|
spiel()
|
||||||
time.sleep(1)
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user