[PYTHON] Jeu éducatif de programmation avec SenseHAT

Donc, encore j'ai fait un jeu, donc je vais le poster. Ça devient amusant.

J'ai récemment créé un jeu éducatif de programmation populaire pour les enfants. C'est-à-dire pour indiquer (programmer) l'itinéraire pour se déplacer vers l'emplacement spécifié. Passez de l'orange au bleu. Cependant, si vous le déplacez simplement, il sera en ligne droite verticalement et horizontalement, j'ai donc également ajouté un obstacle (vert).

Je n'utilise pas de gestionnaire d'événements car il s'agit d'un processus complètement séquentiel. Cependant, il peut être une fourmi de se déplacer par inertie.

Pour le moment, ma fille du primaire l'aimait. Yokatta. Il n'a pas été vérifié si l'apprentissage de la programmation peut être fait avec cela. ..

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

#Bloc de départ défini au hasard (orange)
row_init=randint(0, 7)
col_init=randint(0, 7)
color_init=orange
sense.set_pixel(col_init, row_init, color_init)

#Bloc d'objectifs défini au hasard (bleu)
row_target = randint(0, 7)
col_target = randint(0, 7)

#Assurez-vous que l'objectif n'est pas le même que la position de départ
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)

#Blocs de brouillage définis au hasard
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)

#Programmer la direction du mouvement
#Complet avec bouton central
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

#Déplacez-vous du bloc de départ comme programmé (rouge)
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

#Juger le succès ou l'échec
if row == row_target and col == col_target:
    sense.show_letter("O")
else:
    sense.show_letter("X")

sleep(3)
sense.clear()

Recommended Posts

Jeu éducatif de programmation avec SenseHAT
Programmation asynchrone avec libev # 2
3. 3. Programmation IA avec Python
Programmation Python avec Atom
Programmation compétitive avec python
Programmation Shader avec pyOpenGL
Programmation asynchrone avec libev
Programmation linéaire avec PuLP
Programmation avec Python Flask
Programmation asynchrone avec libev # 3
Programmation avec Python et Tkinter
Essayez de programmer avec un shell!
Essayez la programmation GUI avec Hy
Jeu de fractionnement de ballons avec pygame
Jeu de frappe simple avec DragonRuby
Programmation réseau avec Python Scapy
[Python] Programmation orientée objet apprise avec Pokemon
Programmation facile Python + OpenCV avec Canopy
Développement de jeux Othello avec Python
Jeu de vie avec Python! (Le jeu de la vie de Conway)
Résolution de la théorie des jeux avec l'optimisation des combinaisons
Jeu Sugoroku et jeu d'addition avec Python