Con 13 cubi si imita il 7 segmenti degli schermi a cristalli liquidi

La cifra cambia ogni secondo: 0, 1, …, 9, 0, 1, …, 9, 0, 1, …
from vpython import *
#------------------------------------------------------------------------------- Parametri
C = color.yellow # Colore dei cubetti
D = 1 # Dimensione, lato dei cubetti
#------------------------------------------------------------------------------- Tutto acceso!
TREDICI_CUBI = [
box(pos=vector(0, 4*D, 0), color=C), # 0
box(pos=vector(1, 4*D, 0), color=C), # 1
box(pos=vector(2, 4*D, 0), color=C), # 2
box(pos=vector(0, 3*D, 0), color=C), # 3
box(pos=vector(2, 3*D, 0), color=C), # 4
box(pos=vector(0, 2*D, 0), color=C), # 5
box(pos=vector(1, 2*D, 0), color=C), # 6
box(pos=vector(2, 2*D, 0), color=C), # 7
box(pos=vector(0, 1*D, 0), color=C), # 8
box(pos=vector(2, 1*D, 0), color=C), # 9
box(pos=vector(0, 0*D, 0), color=C), # 10
box(pos=vector(1, 0*D, 0), color=C), # 11
box(pos=vector(2, 0*D, 0), color=C) # 12
]
#------------------------------------------------------------------------------- Mappa
VALORI_CUBI = [
[True, True, True, True ,True, True, False,True, True ,True, True, True, True], # 0
[False,False,True, False,True, False,False,True, False,True, False,False,True], # 1
[True, True, True, False,True, True, True, True, True, False, True, True, True], # 2
[True, True, True, False,True, True, True, True, False,True, True, True, True], # 3
[True, False,True, True, True, True, True, True, False,True, False,False,True], # 4
[True, True, True, True, False, True, True, True, False,True, True, True, True], # 5
[False,False,True, False,True, True, True, True, True, True, True, True, True], # 6
[True, True, True, False,True, False,False,True, False,True, False,False,True], # 7
[True, True, True, True, True, True, True, True, True, True, True, True, True], # 8
[True, True, True, True, True, True, True, True, False,True, False,False,True] # 9
]
#------------------------------------------------------------------------------- Funzione
def aggiorna_stato(valore):
for cubo in range(13):
TREDICI_CUBI[cubo].visible = VALORI_CUBI[valore][cubo]
#------------------------------------------------------------------------------- MAIN
x = 0
while(True):
rate(1)
aggiorna_stato(x)
x += 1
if(x >= 10):
x = 0