|
| 1 | +import random |
| 2 | +from PIL import ImageFont, ImageDraw, Image |
| 3 | + |
| 4 | + |
| 5 | +cor = (108, 49, 14, 255) |
| 6 | +cartela = Image.open("assets/cartela.png") |
| 7 | +desenho = ImageDraw.Draw(cartela) |
| 8 | + |
| 9 | + |
| 10 | +def selecionar_numeros(): |
| 11 | + return [ |
| 12 | + random.sample(range(1, 16), 5), |
| 13 | + random.sample(range(16, 31), 5), |
| 14 | + random.sample(range(31, 46), 4), |
| 15 | + random.sample(range(46, 61), 5), |
| 16 | + random.sample(range(61, 76), 5), |
| 17 | + ] |
| 18 | + |
| 19 | + |
| 20 | +def desenhar_rodape(): |
| 21 | + fonte = ImageFont.truetype("assets/Dunkin.otf", 40) |
| 22 | + xcor = 750 |
| 23 | + ycor = 1015 |
| 24 | + |
| 25 | + desenho.text((xcor, ycor), str(0), font=fonte, fill=(108, 49, 14, 255)) |
| 26 | + return desenho |
| 27 | + |
| 28 | + |
| 29 | +def desenhar_numeros(numeros_cartela): |
| 30 | + # o resultado fica [[b], [i], [n], [g], [o]] |
| 31 | + # a 'linha' é relativa à letra, por isso é de cima para baixo |
| 32 | + fonte = ImageFont.truetype("assets/Dunkin.otf", 80) |
| 33 | + delta = 160 |
| 34 | + x = 10 |
| 35 | + |
| 36 | + for indice_c, coluna in enumerate(numeros_cartela): |
| 37 | + x += delta |
| 38 | + y = 225 |
| 39 | + for indice_l, linha in enumerate(coluna): |
| 40 | + if indice_c == indice_l == 2: |
| 41 | + # também soma aqui por causa do quadrado do meio |
| 42 | + y += delta |
| 43 | + desenhar_rodape() # LINHA ADICIONADA |
| 44 | + desenho.text((x, y), str(linha), font=fonte, fill=cor) |
| 45 | + y += delta |
| 46 | + |
| 47 | + cartela.save(f"assets/cartelas_geradas/cartela_resultante.png") |
| 48 | + |
| 49 | + |
| 50 | +numeros_cartela = selecionar_numeros() |
| 51 | +desenhar_numeros(numeros_cartela) |
0 commit comments