[PYTHON] Programmier-Lernspiel mit SenseHAT

Also wieder habe ich ein Spiel gemacht, also werde ich es veröffentlichen. Es wird lustig.

Ich habe kürzlich ein beliebtes Programmier-Lernspiel für Kinder gemacht. Das heißt, die Route anzuweisen (zu programmieren), um zum angegebenen Ort zu gelangen. Wechseln Sie von Orange nach Blau. Wenn Sie es jedoch nur bewegen, verläuft es vertikal und horizontal in einer geraden Linie, sodass ich auch ein Hindernis (grün) hinzugefügt habe.

Ich verwende keinen Ereignishandler, da dies ein vollständig sequentieller Prozess ist. Es kann jedoch eine Ameise sein, sich durch Trägheit zu bewegen.

Meinem Grundschulmädchen hat es vorerst gefallen. Yokatta. Es wurde nicht überprüft, ob damit Programmierlernen möglich ist. ..

IMG_5736.JPG

from sense_hat import SenseHat
from time import sleep
from random import randint

sense = SenseHat()
sense.clear()

red = (255, 0, 0)
blue = (0, 0, 255)
yellow=(255,255,0)
purple=(128,0,128)
green=(0,255,0)
indigg=(75,0,130)
orange=(255,128,0)
black=(0,0,0)

sense.set_rotation(0)

num_disturbs = 20

#Startblock zufällig einstellen (orange)
row_init=randint(0, 7)
col_init=randint(0, 7)
color_init=orange
sense.set_pixel(col_init, row_init, color_init)

#Zufällig festgelegter Zielblock (blau)
row_target = randint(0, 7)
col_target = randint(0, 7)

#Stellen Sie sicher, dass das Ziel nicht mit der Startposition übereinstimmt
while row_target == row_init and col_target == col_init:
    row_target = randint(0, 7)
    col_target = randint(0, 7)

color_target = blue
sense.set_pixel(col_target, row_target, color_target)

#Störungsblöcke nach dem Zufallsprinzip setzen
disturbs = list()
for i in range(0,num_disturbs):
    while True:
        row = randint(0, 7)
        col = randint(0, 7)
        if row == row_init and col == col_init:
            continue
        if row == row_target and col == col_target:
            continue
        duplicated = False
        for j in disturbs:
            if col == j[0] and row == j[1]:
                duplicated = True
                break
        if duplicated:
            continue
        disturbs.append((col, row))
        break

color_disturb = green
for i in disturbs:
    sense.set_pixel(i[0], i[1], color_disturb)

#Programmieren Sie die Bewegungsrichtung
#Komplett mit mittlerer Taste
commands = list()
set_com=True
while set_com:
    for event in sense.stick.get_events():
        if event.action == "pressed":
            if event.direction == "middle":
                set_com = False
            else:
                commands.append(str(event.direction))

row=row_init
col=col_init
color=red

#Bewegen Sie sich wie programmiert vom Startblock (rot)
for com in commands:
    sense.set_pixel(col, row, black)
    sense.set_pixel(col_init, row_init, color_init)
    if com == "up":
        row = row - 1
    elif com == "down":
        row = row + 1
    elif com == "left": 
        col = col - 1
    elif com == "right":
        col = col + 1
    elif com == "middle":
        row = row_init
        col = col_init
    if row > 7: row = 7
    if row < 0: row = 0
    if col > 7: col = 7
    if col < 0: col = 0
    sense.set_pixel(col, row, color)
    sleep(0.5)
    disturbed = False
    for i in disturbs:
        if col == i[0] and row == i[1]:
            disturbed = True
            break
    if disturbed:
        break

#Erfolg oder Misserfolg beurteilen
if row == row_target and col == col_target:
    sense.show_letter("O")
else:
    sense.show_letter("X")

sleep(3)
sense.clear()

Recommended Posts

Programmier-Lernspiel mit SenseHAT
Asynchrone Programmierung mit libev # 2
3. 3. KI-Programmierung mit Python
Python-Programmierung mit Atom
Wettbewerbsfähige Programmierung mit Python
Shader-Programmierung mit pyOpenGL
Asynchrone Programmierung mit libev
Lineare Programmierung mit PuLP
Programmieren mit Python Flask
Asynchrone Programmierung mit libev # 3
Programmieren mit Python und Tkinter
Versuchen Sie, mit einer Shell zu programmieren!
Versuchen Sie die GUI-Programmierung mit Hy
Ballonaufteilungsspiel mit Pygame
Einfaches Tippspiel mit DragonRuby
Netzwerkprogrammierung mit Python Scapy
[Python] Mit Pokemon erlernte objektorientierte Programmierung
Einfache Python + OpenCV-Programmierung mit Canopy
Othello-Spieleentwicklung mit Python
Lebensspiel mit Python! (Conways Spiel des Lebens)
Spieltheorie mit Kombinationsoptimierung lösen
Sugoroku-Spiel und Zusatzspiel mit Python