13 cubi – Una cifra

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

Lascia un commento