J'ai créé un jeu avec Raspberry Pi pour les enfants. Sert également de pratique Sense HAT. Moitié supérieure de Cracks C'est un jeu comme.
C'est un article que je voulais juste montrer que je l'ai fait. .. ..
from sense_hat import SenseHat, ACTION_PRESSED, ACTION_HELD, ACTION_RELEASED
from time import sleep
from random import randint
from copy import copy
#Initialisation de Sense HAT
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)
#Orientation fixe
sense.set_rotation(0)
#réglages des paramètres
fall_interval = 3
fall_speed = 0.5
fall_color = orange
fall_num = 8
#Générez des objets qui tombent et stockez-les dans un tableau
blocks = list()
for i in range(0,fall_num):
blocks.append((randint(0,7), 0-i*fall_interval))
bar_init = (3, 6)
bar_color = blue
sense.set_pixel(bar_init[0], bar_init[1], bar_color)
bar = copy(bar_init)
#Traitement lorsque le joystick est incliné vers la gauche (avance le bloc de réception vers la gauche)
def moveleft(event):
global bar
if event.action != ACTION_PRESSED:
return
sense.set_pixel(bar[0], bar[1], black)
bar_moved_x = bar[0] - 1
if bar_moved_x < 0:
bar_moved_x = 0
elif bar_moved_x > 7:
bar_moved_x = 7
bar = (bar_moved_x, bar[1])
sense.set_pixel(bar[0], bar[1], bar_color)
#Traitement lorsque le joystick est incliné vers la droite (avance le bloc de réception vers la droite)
def moveright(event):
global bar
if event.action != ACTION_PRESSED:
return
sense.set_pixel(bar[0], bar[1], black)
bar_moved_x = bar[0] + 1
if bar_moved_x < 0:
bar_moved_x = 0
elif bar_moved_x > 7:
bar_moved_x = 7
bar = (bar_moved_x, bar[1])
sense.set_pixel(bar[0], bar[1], bar_color)
#Définir une fonction dans le gestionnaire d'événements du joystick
sense.stick.direction_left = moveleft
sense.stick.direction_right = moveright
#début du jeu
#À chaque fois, déplacez chaque bloc du tableau d'objets tombants un par un vers le bas.
#Jugez si l'objet qui tombe a atteint le fond (échec) ou si le bloc récepteur l'a reçu (sûr).
#Succès si tous les blocs sont acceptés.
blocks_tmp = copy(blocks)
failed = False
while blocks_tmp:
tmp = list()
for blk in blocks_tmp:
blk_moved = (blk[0], blk[1] + 1)
if blk_moved[1] > 7:
failed = True
break
#sense.set_pixel(blk[0], blk[1], black)
#continue
if blk_moved == bar:
sense.set_pixel(blk[0], blk[1], black)
continue
if blk[1] >= 0 and blk[1] < 8:
sense.set_pixel(blk[0], blk[1], black)
if blk_moved[1] >= 0 and blk_moved[1] < 8:
sense.set_pixel(blk_moved[0], blk_moved[1], fall_color)
blk = blk_moved
tmp.append(blk_moved)
print(tmp)
blocks_tmp = copy(tmp)
sleep(fall_speed)
#Affichage des résultats
if not failed:
sense.show_letter("O")
else:
sense.show_letter("X")
sleep(3)
sense.clear()
del bar
del sense
Puis!
Recommended Posts