I'm create this code in processing python mode (Processing 4.3), but when key tab is pressed the window don't close. I tried in Debian 12 and Windows 11.
def draw():
global media, soma, list_amostra
background(0)
fill(255)
if list_amostra:
media = float(soma) / len(list_amostra)
else:
media = 0
text("Media", 860, 630)
text("Palpites", 220,630)
fill(255,0,0)
if numeroStr:
displayNumber(numeroStr,x,y,c,l,m)
drawMedia(int(media),xm,ym,cm,lm,mm)
drawPalpites(list_amostra, xp, yp, cm, lm, mm)
def displayNumber(num_str, x, y, c,l,m):
num_str=num_str.zfill(4)
for i, digit in enumerate(num_str):
drawDigito(segmentos[int(digit)],x+164*i,y,c,l,m)
def displayPalpites(num_str, x, y, c,l,m):
num_str=num_str.zfill(4)
for i, digit in enumerate(num_str):
drawDigito(segmentos[int(digit)],x+96*i,y,c,l,m)
def drawDigito(digito,x,y,c,l,m):
Segmento "a"
if digito[0] == 1:
beginShape()
vertex(x+l/2,y) #vertice a
vertex(x+3*l/2,y-l/2) #vertice b
vertex(x+3*l/2+m,y-l/2) #vertice c
vertex(x+l/2+c,y) #vertice d
vertex(x+3*l/2+m,y+l/2) #vertice e
vertex(x+3*l/2,y+l/2) #vertice f
endShape()
#Segmento b
if digito[1] == 1:
beginShape()
vertex(x+c+l,y) #vértice a
vertex(x+3*l/2+c,y+l) #vertice b
vertex(x+3*l/2+c,y+l+m) #vertice c
vertex(x+c+l,y+c) #vertice d
vertex(x+l/2+c,y+l+m) #vertice e
vertex(x+l/2+c,y+l) #vertice f
endShape()
#Segmento c
if digito[2] == 1:
beginShape()
vertex(x+c+l,y+c) #vértice a
vertex(x+3*l/2+c,y+l+c) #vertice b
vertex(x+3*l/2+c,y+l+m+c) #vertice c
vertex(x+c+l,y+2*c) #vertice d
vertex(x+l/2+c,y+l+m+c) #vertice e
vertex(x+l/2+c,y+l+c) #vertice f
endShape()
#Segmento d
if digito[3] == 1:
beginShape()
vertex(x+l/2,y+2*c) #vertice a
vertex(x+3*l/2,y-l/2+2*c) #vertice b
vertex(x+3*l/2+m,y-l/2+2*c) #vertice c
vertex(x+l/2+c,y+2*c) #vertice d
vertex(x+3*l/2+m,y+l/2+2*c) #vertice e
vertex(x+3*l/2,y+l/2+2*c) #vertice f
endShape()
#Segmento e
if digito[4] == 1:
beginShape()
vertex(x,y+c) #vértice a
vertex(x+l/2,y+l+c) #vertice b
vertex(x+l/2,y+l+m+c) #vertice c
vertex(x,y+2*c) #vertice d
vertex(x-l/2,y+l+m+c) #vertice e
vertex(x-l/2,y+l+c) #vertice f
endShape()
#Segmento f
if digito[5] == 1:
beginShape()
vertex(x,y) #vértice a
vertex(x+l/2,y+l) #vertice b
vertex(x+l/2,y+l+m) #vertice c
vertex(x,y+c) #vertice d
vertex(x-l/2,y+l+m) #vertice e
vertex(x-l/2,y+l) #vertice f
endShape()
#Segmento g
if digito[6] == 1:
beginShape()
vertex(x+l/2,y+c) #vertice a
vertex(x+3*l/2,y-l/2+c) #vertice b
vertex(x+3*l/2+m,y-l/2+c) #vertice c
vertex(x+l/2+c,y+c) #vertice d
vertex(x+3*l/2+m,y+l/2+c) #vertice e
vertex(x+3*l/2,y+l/2+c) #vertice f
endShape()
def drawMedia(media, xm, ym, cm, lm, mm):
Atualização para colocar os dígitos da média na lista med
# Se a média for menor que 10, evitamos preencher med[0], med[1] e med[2] com zeros
if media < 10:
med = [0, 0, 0, media]
elif media < 100:
med = [0, 0, media // 10, media % 10]
elif media < 1000:
med = [0, media // 100, (media // 10) % 10, media % 10]
else:
med = [media // 1000, (media % 1000) // 100, ((media % 1000) % 100) // 10, ((media % 1000) % 100) % 10]
first_non_zero_found = False # Variável de controle para saber se o primeiro dígito não-zero foi encontrado
for i, val in enumerate(med):
# Não desenha zeros mais significativos (à esquerda)
if val != 0:
first_non_zero_found = True
# Desenha os dígitos zero após encontrar o primeiro dígito não-zero
if val != 0 or (val == 0 and first_non_zero_found):
x_pos = xm + i * 96
drawDigito(segmentos[val], x_pos, ym, cm, lm, mm)
def drawPalpites(list_amostra, xp, yp, cm, lm, mm):
sample_count = len(list_amostra) # A contagem de amostras é o comprimento da lista
sample_str = str(sample_count).zfill(3) # Convertendo a contagem para uma string
displayPalpites(sample_str, xp, yp, cm, lm, mm)
def keyPressed():
global numeroStr, soma, list_amostra
if key >= '0' and key <= '9' and len(numeroStr) < 4:
numeroStr += key
elif key == ENTER or key == RETURN:
if numeroStr:
valor = int(numeroStr)
list_amostra.append(valor)
soma += valor
with open('amostra.txt', 'a') as output:
output.write(numeroStr + '\n')
Hi,
I'm create this code in processing python mode (Processing 4.3), but when key tab is pressed the window don't close. I tried in Debian 12 and Windows 11.
Follow the code:
`segmentos=[
a,b,c,d,e,f,g
c = 96 # Comprimento l = 24 # Largura m = 48 # Meio x = 340 y = 160 numeroStr = ''
Variáveis para o cálculo da média
amostra="" list_amostra=[] soma=0 media=0 xm=780 ym=460 lm=2l/4 cm=2c/4 mm=2*m/4 med=[0,0,0,0]
Variáveis para mostra a quantidade palpites
xp=170 yp=460
def setup(): fullScreen()
surface.setUndecorated(True)
def draw(): global media, soma, list_amostra background(0) fill(255)
def displayNumber(num_str, x, y, c,l,m):
def displayPalpites(num_str, x, y, c,l,m): num_str=num_str.zfill(4) for i, digit in enumerate(num_str): drawDigito(segmentos[int(digit)],x+96*i,y,c,l,m)
def drawDigito(digito,x,y,c,l,m):
Segmento "a"
def drawMedia(media, xm, ym, cm, lm, mm):
Atualização para colocar os dígitos da média na lista med
def drawPalpites(list_amostra, xp, yp, cm, lm, mm): sample_count = len(list_amostra) # A contagem de amostras é o comprimento da lista sample_str = str(sample_count).zfill(3) # Convertendo a contagem para uma string displayPalpites(sample_str, xp, yp, cm, lm, mm)
def keyPressed(): global numeroStr, soma, list_amostra if key >= '0' and key <= '9' and len(numeroStr) < 4: numeroStr += key elif key == ENTER or key == RETURN: if numeroStr:
valor = int(numeroStr)
list_amostra.append(valor)
soma += valor
with open('amostra.txt', 'a') as output: output.write(numeroStr + '\n')
Limpar numeroStr para nova entrada após salvar
Tanks