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. ..
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