sexta-feira, 19 de setembro de 2025

🎮 Apostila de Pygame para Leigos – Capítulo 5

 O Jogador Oficial: Quadrado Herói com Cenário

Até aqui você já fez muita coisa:

  • Uma janela linda 🖥️

  • Movimento com setas do teclado 🎮

  • Limites da tela 🚧

  • Formas geométricas para cenário 🎨

Agora, vamos combinar tudo para criar um mini-jogo:
➡️ Um quadrado vermelho (nosso jogador).
➡️ Um cenário com linha e obstáculos.
➡️ Movimento fluido dentro do espaço.


🖥️ Código do Jogador com Cenário

Crie o arquivo capitulo5.py com o código abaixo:

# Importando pygame import pygame # Iniciando pygame pygame.init() # Configurações da tela largura_tela = 800 altura_tela = 600 tela = pygame.display.set_mode((largura_tela, altura_tela)) pygame.display.set_caption("Capítulo 5 - Jogador Oficial 🦸") # Cores cor_fundo = (220, 220, 220) # Cinza clarinho cor_jogador = (255, 0, 0) # Vermelho cor_chao = (0, 150, 0) # Verde escuro (grama) cor_parede = (0, 0, 255) # Azul (obstáculo) # Jogador jogador_x = 100 jogador_y = 450 largura = 50 altura = 50 velocidade = 7 # Loop do jogo rodando = True while rodando: # Eventos for evento in pygame.event.get(): if evento.type == pygame.QUIT: rodando = False # Movimento com teclado teclas = pygame.key.get_pressed() if teclas[pygame.K_LEFT]: jogador_x -= velocidade if teclas[pygame.K_RIGHT]: jogador_x += velocidade if teclas[pygame.K_UP]: jogador_y -= velocidade if teclas[pygame.K_DOWN]: jogador_y += velocidade # Limites da tela if jogador_x < 0: jogador_x = 0 if jogador_x > largura_tela - largura: jogador_x = largura_tela - largura if jogador_y < 0: jogador_y = 0 if jogador_y > altura_tela - altura: jogador_y = altura_tela - altura # --- DESENHO DO CENÁRIO --- tela.fill(cor_fundo) # Fundo pygame.draw.rect(tela, cor_chao, (0, 500, largura_tela, 100)) # "chão" pygame.draw.rect(tela, cor_parede, (300, 400, 200, 50)) # obstáculo # --- DESENHO DO JOGADOR --- pygame.draw.rect(tela, cor_jogador, (jogador_x, jogador_y, largura, altura)) # Atualiza tela pygame.display.update() # Sai do jogo pygame.quit()

🔎 Explicando linha por linha

  • pygame.draw.rect(tela, cor_chao, (0, 500, largura_tela, 100)) → cria um chão verde.

  • pygame.draw.rect(tela, cor_parede, (300, 400, 200, 50)) → cria um obstáculo azul no meio da tela.

  • O quadrado vermelho é o jogador oficial, agora vivendo dentro do cenário.

  • O loop continua garantindo movimento e limites.


🎉 O que vai acontecer?

  • Você terá um jogo simples, mas já com cara de fase.

  • O quadrado vermelho (jogador) poderá andar pelo chão cinza e desviar do obstáculo azul.

  • É o início de uma fase jogável. 🏁


💡 Exercício Divertido

  1. Adicione mais obstáculos (retângulos azuis) em outras posições.

  2. Transforme o “chão” em água azul e faça o jogador andar em cima.

  3. Troque o quadrado do jogador por um círculo e veja como muda a sensação do jogo.


🎯 Conclusão do Capítulo

Hoje você conseguiu:
✅ Criar um cenário com chão e obstáculos.
✅ Inserir um jogador dentro desse cenário.
✅ Controlar o movimento com limites.

Parabéns 👏! Você está oficialmente criando fases básicas de jogo.

A cada capítulo, seu jogo fica menos “projeto escolar” e mais game de verdade.


👉 No Capítulo 6 vamos aprender a detectar colisões entre o jogador e os obstáculos. Afinal, de nada adianta um muro azul se o quadrado pode atravessar como fantasma. 👻


📣 Assim como no jogo o jogador precisa respeitar os limites do cenário, no mundo real você também precisa respeitar os limites da lei e da tributação.
Se você é psicólogo, fonoaudiólogo, advogado com sociedade unipessoal ou outro prestador de serviços, eu posso te ajudar a abrir sua empresa no Simples Nacional, fazer acompanhamento mensal da sua contabilidade e planejar seus impostos para economizar de forma inteligente. 😉

📬 Automação Inédita em VBA: Envio Automático de Relatórios da Rede por E-mail Personalizado

 🧐 O Problema

No dia a dia empresarial:

  • Planilhas ficam em pastas de rede e precisam ser enviadas por e-mail.

  • Muitos perdem tempo abrindo a planilha, salvando em PDF e depois anexando manualmente no Outlook.

  • Além disso, pode haver risco de enviar a versão errada ou esquecida.


💡 A Solução

Criar uma automação no Excel que:

  1. Localiza a planilha mais recente em uma pasta de rede.

  2. Exporta automaticamente para PDF.

  3. Abre um e-mail no Outlook já com o PDF anexado.

  4. Personaliza o corpo do e-mail com mensagem padrão.

Com um clique, o relatório já está pronto para envio ✅.


🚀 Como Funciona

  1. O usuário define em "Config" a pasta da rede onde ficam os relatórios.

  2. A macro identifica o arquivo mais recente.

  3. Converte para PDF.

  4. Cria e preenche automaticamente o e-mail no Outlook.


🧑‍💻 Código VBA

Option Explicit Sub EnviarRelatorioMaisRecente() Dim pasta As String, arquivoMaisRecente As String Dim fso As Object, pastaObj As Object, arquivo As Object Dim dataRecente As Date Dim ws As Worksheet Dim outlookApp As Object, outlookMail As Object Dim pdfPath As String ' Lê a pasta da aba Config Set ws = ThisWorkbook.Sheets("Config") pasta = ws.Range("A2").Value If pasta = "" Then MsgBox "⚠️ Informe o caminho da pasta em Config (A2).", vbExclamation Exit Sub End If ' Acha o arquivo mais recente Set fso = CreateObject("Scripting.FileSystemObject") Set pastaObj = fso.GetFolder(pasta) dataRecente = 0 For Each arquivo In pastaObj.Files If arquivo.DateLastModified > dataRecente And InStr(arquivo.Name, ".xlsx") > 0 Then dataRecente = arquivo.DateLastModified arquivoMaisRecente = arquivo.Path End If Next arquivo If arquivoMaisRecente = "" Then MsgBox "❌ Nenhum arquivo Excel encontrado na pasta.", vbCritical Exit Sub End If ' Abre o arquivo e exporta como PDF Dim wb As Workbook Set wb = Workbooks.Open(arquivoMaisRecente) pdfPath = Replace(arquivoMaisRecente, ".xlsx", ".pdf") wb.ExportAsFixedFormat Type:=0, Filename:=pdfPath wb.Close SaveChanges:=False ' Cria o e-mail no Outlook Set outlookApp = CreateObject("Outlook.Application") Set outlookMail = outlookApp.CreateItem(0) With outlookMail .To = "destinatario@empresa.com" .Subject = "📊 Relatório mais recente" .Body = "Segue em anexo o relatório atualizado em " & Format(dataRecente, "dd/mm/yyyy hh:nn") & "." & vbCrLf & vbCrLf & "Att," & vbCrLf & "Equipe Financeira" .Attachments.Add pdfPath .Display ' usar .Send se quiser enviar direto End With MsgBox "📬 Relatório pronto para envio no Outlook!", vbInformation End Sub

📊 Exemplo prático

  • Pasta \\Servidor\Financeiro\Relatorios\

  • Arquivo mais recente → Relatorio_Vendas_2025-09-12.xlsx

  • Macro exporta em PDF → Relatorio_Vendas_2025-09-12.pdf

  • Abre Outlook com o PDF já anexado ✅


🎯 Onde é útil?

✅ Financeiro → envio diário de vendas.
✅ RH → relatórios de folha.
✅ Diretoria → relatórios de desempenho semanais.
✅ Escritórios → entregar resultados de clientes automaticamente.


🔥 Por que é inédito?

Pouca gente pensa em integrar rede + Excel + Outlook dessa forma.
Aqui o processo é fim a fim: localizar → exportar → anexar → enviar.


📢 Propaganda do Contador

Se você é prestador de serviços do Simples Nacional — psicólogo, fonoaudiólogo, advogado com sociedade unipessoal ou outro profissional liberal — posso ajudar com sua contabilidade!

👉 Faço abertura e registro de empresas no Simples Nacional, acompanhamento mensal, apuração de tributos e planejamento tributário.
Comigo, você terá mais tempo para os seus pacientes e clientes, sem se preocupar com burocracia fiscal. 😉

🎮 Post 7 – Quiz Interativo em Python 🧠✨

 Hoje o nosso projeto é um quiz: você faz perguntas ao usuário, recebe as respostas e no final mostra a pontuação.

Esse tipo de lógica é a base para criar jogos, formulários, sistemas de testes e até chatbots!


🐣 Passo a passo do código

# Criamos uma variável para guardar a pontuação pontuacao = 0 # pontuacao começa em 0 e será incrementada cada vez que o usuário acertar. # Primeira pergunta resposta1 = input("Qual a capital do Brasil? ") # input() pede para o usuário digitar a resposta. # O valor será guardado na variável resposta1. if resposta1.lower() == "brasília": # lower() transforma o texto em letras minúsculas. # Assim, se o usuário digitar "Brasília" ou "brASÍLIA", será aceito. print("✅ Resposta correta!") # Mostra mensagem de acerto. pontuacao += 1 # += 1 adiciona 1 ponto na variável pontuacao. else: print("❌ Resposta errada! A resposta certa é Brasília.") # Segunda pergunta resposta2 = input("Quanto é 5 + 7? ") if resposta2 == "12": # Aqui não precisamos do lower(), pois estamos lidando com número em string. print("✅ Resposta correta!") pontuacao += 1 else: print("❌ Resposta errada! A resposta certa é 12.") # Mostramos a pontuação final print("🏆 Você acertou", pontuacao, "de 2 perguntas!") # O print junta o texto com o valor da variável pontuacao.

💻 Exemplo de execução

Qual a capital do Brasil? brasília ✅ Resposta correta! Quanto é 5 + 7? 11 ❌ Resposta errada! A resposta certa é 12. 🏆 Você acertou 1 de 2 perguntas!

📌 O que você aprendeu hoje?

  • Usar if, else e == para comparar respostas.

  • Utilizar lower() para evitar erros de maiúsculas/minúsculas.

  • Contar pontos com += 1.

  • Criar um joguinho simples com começo, meio e fim. 🎯


🎯 Desafio extra

  1. Acrescente mais perguntas ao quiz.

  2. Coloque uma mensagem especial se o usuário acertar todas as respostas.

  3. Use while para repetir o quiz até o usuário digitar "sair".


⏭️ O que vem por aí?

No próximo post vamos criar um Jogo de Adivinhação 🔮, onde o computador escolhe um número secreto e o usuário tenta descobrir.

👥📞 Automação Python com GUI (Tkinter): Controle de Clientes e Contatos 👥📞

Resumo rápido: Neste post vamos criar uma automação em Python com Tkinter GUI para gerenciar clientes e contatos. Você poderá cadastrar nomes, e-mails e telefones, pesquisar facilmente por nome e exportar a lista para um relatório Excel. Tudo explicado de forma simples, com código comentado linha a linha. 🚀


Por que essa automação é útil para sua empresa? 🤔

  • Organiza os contatos de clientes em um só lugar.

  • Substitui cadernos e planilhas confusas.

  • Permite pesquisa rápida por nome.

  • Gera relatórios organizados em Excel.


O que você terá com este projeto ✅

  1. Interface gráfica para cadastrar clientes.

  2. Lista organizada de contatos.

  3. Campo de pesquisa para localizar clientes.

  4. Exportação para Excel (clientes.xlsx).


Pré-requisitos 🛠️

Antes de rodar, instale as dependências:

pip install pandas openpyxl

A biblioteca tkinter já vem junto com o Python no Windows.


Código completo (salve como controle_clientes.py) 💻

# controle_clientes.py import tkinter as tk # 1: interface gráfica from tkinter import messagebox # 2: alertas import pandas as pd # 3: exportação para Excel # 4: lista que vai armazenar os clientes clientes = [] # 5: função para adicionar cliente def adicionar_cliente(): nome = entry_nome.get() # 6: pega nome email = entry_email.get() # 7: pega email telefone = entry_tel.get() # 8: pega telefone if not nome or not email or not telefone: messagebox.showwarning("Aviso", "Preencha todos os campos!") # 9: validação return cliente = { "Nome": nome, "Email": email, "Telefone": telefone } clientes.append(cliente) # 10: adiciona cliente na lista atualizar_lista() # 11: atualiza a lista limpar_campos() # 12: limpa os campos # 13: função para atualizar a lista de clientes def atualizar_lista(filtro=""): listbox.delete(0, tk.END) for i, c in enumerate(clientes): if filtro.lower() in c["Nome"].lower(): # 14: aplica filtro se houver listbox.insert(tk.END, f"{i+1}. {c['Nome']} | {c['Email']} | {c['Telefone']}") # 15: exportar contatos para Excel def exportar_excel(): if not clientes: messagebox.showwarning("Aviso", "Nenhum cliente para exportar!") return df = pd.DataFrame(clientes) df.to_excel("clientes.xlsx", index=False) messagebox.showinfo("Sucesso", "Contatos exportados para clientes.xlsx") # 16: limpar campos de entrada def limpar_campos(): entry_nome.delete(0, tk.END) entry_email.delete(0, tk.END) entry_tel.delete(0, tk.END) # 17: função de pesquisa def pesquisar(): termo = entry_pesquisa.get() atualizar_lista(termo) # 18: configuração da interface gráfica root = tk.Tk() root.title("Controle de Clientes e Contatos") root.geometry("800x500") # 19: campos de entrada tk.Label(root, text="Nome:").pack(anchor="w", padx=10) entry_nome = tk.Entry(root, width=50) entry_nome.pack(anchor="w", padx=10, pady=5) tk.Label(root, text="Email:").pack(anchor="w", padx=10) entry_email = tk.Entry(root, width=50) entry_email.pack(anchor="w", padx=10, pady=5) tk.Label(root, text="Telefone:").pack(anchor="w", padx=10) entry_tel = tk.Entry(root, width=30) entry_tel.pack(anchor="w", padx=10, pady=5) # 20: botões de ação btn_add = tk.Button(root, text="Adicionar Cliente", command=adicionar_cliente, bg="#4CAF50", fg="white") btn_add.pack(pady=5) btn_export = tk.Button(root, text="Exportar para Excel", command=exportar_excel, bg="#2196F3", fg="white") btn_export.pack(pady=5) # 21: campo de pesquisa tk.Label(root, text="Pesquisar por Nome:").pack(anchor="w", padx=10) entry_pesquisa = tk.Entry(root, width=40) entry_pesquisa.pack(anchor="w", padx=10, pady=5) btn_pesquisar = tk.Button(root, text="Pesquisar", command=pesquisar, bg="#FF9800", fg="white") btn_pesquisar.pack(pady=5) # 22: lista de clientes listbox = tk.Listbox(root, width=100, height=15) listbox.pack(padx=10, pady=10) root.mainloop() # 23: mantém a janela aberta

Explicação linha por linha 🧾

  • 1 a 3: importamos bibliotecas necessárias.

  • 4: criamos a lista de clientes.

  • 5 a 12: função que cadastra clientes, valida e limpa os campos.

  • 13 a 14: exibe clientes e aplica filtro se houver pesquisa.

  • 15: exporta os contatos para Excel.

  • 16: limpa os campos após cadastro.

  • 17: executa a pesquisa por nome.

  • 18 a 22: monta a interface gráfica com campos, botões e lista.

  • 23: mantém a janela aberta até o usuário fechar.


Como usar ✅

  1. Salve o código no arquivo controle_clientes.py.

  2. Instale as dependências:

pip install pandas openpyxl
  1. Execute o programa:

python controle_clientes.py
  1. Na janela que abrir:

    • Digite Nome, Email e Telefone.

    • Clique em Adicionar Cliente.

    • Use o campo Pesquisar para localizar rapidamente.

    • Clique em Exportar para Excel para gerar clientes.xlsx.


Possíveis melhorias futuras 🔧

  • Adicionar campo de endereço.

  • Incluir data de cadastro.

  • Exportar relatórios filtrados.

  • Conectar a um banco de dados para histórico completo.


🚀 Conclusão

Com este Controle de Clientes em Python, sua empresa poderá organizar todos os contatos de forma simples e prática. Nada de perder clientes por falta de organização!


📢 Serviços de Contabilidade

Além de compartilhar automações em Python, também ofereço meus serviços como contador:

  • Abertura de empresas no Simples Nacional;

  • Acompanhamento contábil mensal;

  • Planejamento tributário;

  • Orientação para profissionais de serviços.

👉 Entre em contato e organize também a parte contábil da sua empresa! 🤝

📊 SQL no Excel – Post 9: Cálculos com SUM, AVG, MIN e MAX

Essas funções permitem que você:

  • SUM → some valores de uma coluna

  • AVG → calcule a média

  • MIN → encontre o menor valor

  • MAX → encontre o maior valor

Com isso, podemos fazer estatísticas rápidas direto no Excel sem fórmulas.


🎯 Projeto do Dia: Estatísticas da idade dos clientes

1. Cenário

Tabela Clientes:

IDNomeCidadeIdade
1João SilvaSão Paulo32
2Maria SouzaRio de Janeiro27
3Carlos LimaBelo Horizonte41
4Ana SantosCuritiba36
5Fernanda AlvesSão Paulo29

Queremos saber:
✅ Soma das idades
✅ Média de idades
✅ Idade mínima
✅ Idade máxima


2. Código VBA com SQL

No Editor do VBA (ALT + F11), insira:

Sub EstatisticasClientes() ' Declaração de variáveis Dim conn As Object Dim rs As Object Dim strSQL As String Dim ws As Worksheet ' Criar conexão Set conn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") ' Conectar ao arquivo Excel conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml;HDR=YES"";" ' SQL com funções de agregação strSQL = "SELECT SUM(Idade) AS SomaIdades, AVG(Idade) AS MediaIdades, MIN(Idade) AS MenorIdade, MAX(Idade) AS MaiorIdade FROM [Clientes$]" ' Executar consulta rs.Open strSQL, conn ' Criar aba de resultados Set ws = ThisWorkbook.Sheets.Add ws.Name = "Estatisticas" ' Copiar resultados ws.Range("A1").CopyFromRecordset rs ' Fechar conexões rs.Close conn.Close MsgBox "Consulta concluída com sucesso!", vbInformation End Sub

3. Explicando o Código 📝

  • SUM(Idade) → soma todas as idades.

  • AVG(Idade) → calcula a média das idades.

  • MIN(Idade) → retorna a menor idade.

  • MAX(Idade) → retorna a maior idade.

  • Cada função recebe um apelido (AS) para facilitar a leitura no Excel.


4. Resultado esperado 📋

Na aba Estatisticas, você verá:

SomaIdadesMediaIdadesMenorIdadeMaiorIdade
165332741

📌 O que você aprendeu hoje?

✅ Como usar funções de agregação no SQL: SUM, AVG, MIN, MAX
✅ Como calcular estatísticas no Excel usando SQL sem fórmulas
✅ Como gerar relatórios rápidos em segundos


👉 No próximo post (Post 10), vamos aprender a usar GROUP BY para calcular estatísticas por categoria — por exemplo, calcular a média de idade por cidade.


📢 Dica extra

Assim como você agora consegue somar, calcular médias e analisar seus dados com SQL, eu posso te ajudar a somar resultados na sua vida profissional com a contabilidade 📊.
Sou contador especializado em prestadores de serviços e posso auxiliar você com:
✅ Abertura de empresas no Simples Nacional
✅ Acompanhamento contábil mensal
✅ Planejamento tributário inteligente

💼 Fale comigo e organize sua contabilidade de forma simples e prática!

terça-feira, 16 de setembro de 2025

📘✨ Excel VBA na Prática: Usando o Método Calculate do Objeto Range

No Excel, muitas vezes precisamos forçar o recálculo de fórmulas sem depender do usuário apertar F9.

Com o VBA, podemos usar o método Calculate do objeto Range para recalcular um intervalo específico, sem atualizar toda a planilha ou pasta de trabalho. 🚀


🔎 Definição

  • Range.Calculate → Recalcula apenas o intervalo especificado, aplicando novamente todas as fórmulas dentro dele.

  • Isso pode economizar tempo em planilhas grandes, pois recalcular tudo (Application.Calculate) pode ser bem mais demorado.


🧑‍💻 Exemplos práticos

1️⃣ Recalcular apenas uma célula

Sub CalcularCelula() Range("C5").Calculate End Sub

👉 Resultado: Apenas a célula C5 será recalculada.


2️⃣ Recalcular um intervalo inteiro

Sub CalcularIntervalo() Range("B2:D10").Calculate End Sub

👉 Resultado: O Excel atualiza as fórmulas entre B2 e D10 sem recalcular o resto da planilha.


3️⃣ Recalcular fórmulas em uma coluna dinâmica

Sub CalcularColuna() Dim UltimaLinha As Long UltimaLinha = Cells(Rows.Count, "A").End(xlUp).Row Range("C2:C" & UltimaLinha).Calculate End Sub

👉 Resultado: Recalcula todas as fórmulas da coluna C, até a última linha preenchida da coluna A.


Quando usar Calculate?

  • Em planilhas muito grandes, quando você só precisa atualizar parte dos cálculos.

  • Em macros que inserem valores e precisam garantir que as fórmulas ligadas a eles já estejam corretas.

  • Em rotinas que exigem performance, evitando o recálculo global.

💡 Dica útil: Combine Calculate com loops para atualizar apenas áreas específicas de interesse em vez de tudo, tornando sua automação muito mais rápida.


🟢📢 Consultoria Contábil Inteligente
💼 Abertura e registro de empresas no Simples Nacional
📊 Acompanhamento contábil e fiscal mensal
⚖️ Planejamento tributário estratégico para pagar só o justo

👉 Entre em contato e organize sua empresa com eficiência! 

🎮 Apostila de Pygame para Leigos – Capítulo 4 Criando Cenários: Quadrados, Círculos e Outras Formas Divertidas

Até aqui você já tem:

  • Uma janela linda 🖼️

  • Um quadrado que se move ⬛

  • Regras que impedem ele de fugir 🚧

Mas convenhamos: uma tela preta com um quadrado verde ainda não é lá muito emocionante… 😅

Hoje vamos aprender a desenhar mais objetos e deixar nossa tela com cara de jogo de verdade!


🖥️ Código para Desenhar Formas

Crie o arquivo capitulo4.py e cole o seguinte código:

# Importando o pygame import pygame # Iniciando o pygame pygame.init() # Criando a janela largura_tela = 800 altura_tela = 600 tela = pygame.display.set_mode((largura_tela, altura_tela)) pygame.display.set_caption("Capítulo 4 - Desenhando Formas 🎨") # Definindo cores cor_fundo = (240, 240, 240) # Cinza clarinho para o fundo cor_quadrado = (0, 100, 200) # Azul escuro cor_circulo = (200, 50, 50) # Vermelho cor_linha = (0, 200, 0) # Verde # Loop do jogo rodando = True while rodando: # Captura eventos for evento in pygame.event.get(): if evento.type == pygame.QUIT: rodando = False # Preenche o fundo tela.fill(cor_fundo) # Desenha um quadrado (x=100, y=100, largura=100, altura=100) pygame.draw.rect(tela, cor_quadrado, (100, 100, 100, 100)) # Desenha um círculo (centro em (400, 300), raio=60) pygame.draw.circle(tela, cor_circulo, (400, 300), 60) # Desenha uma linha (ponto inicial=(50, 500), ponto final=(750, 500), espessura=5) pygame.draw.line(tela, cor_linha, (50, 500), (750, 500), 5) # Atualiza a tela pygame.display.update() # Sai do jogo pygame.quit()

🔎 Explicando linha por linha

  • pygame.draw.rect(tela, cor_quadrado, (100, 100, 100, 100)) → desenha um retângulo/quadrado.

    • (100, 100) → posição inicial (canto superior esquerdo).

    • (100, 100) → largura e altura.

  • pygame.draw.circle(tela, cor_circulo, (400, 300), 60) → desenha um círculo.

    • (400, 300) → centro do círculo.

    • 60 → raio.

  • pygame.draw.line(tela, cor_linha, (50, 500), (750, 500), 5) → desenha uma linha.

    • (50, 500) → ponto inicial.

    • (750, 500) → ponto final.

    • 5 → espessura da linha.


🎉 O que vai acontecer?

  • A tela ficará clarinha e simpática.

  • Um quadrado azul vai aparecer no canto superior.

  • Um círculo vermelho estará no meio da tela.

  • Uma linha verde grossa vai atravessar a parte de baixo.

Parabéns! Agora você sabe criar cenários. 🌟


💡 Exercício Divertido

  1. Desenhe três círculos coloridos como se fossem semáforos (vermelho, amarelo, verde).

  2. Faça uma linha diagonal atravessando a tela.

  3. Tente criar uma “casinha” desenhando um quadrado e um triângulo em cima (sim, dá para usar pygame.draw.polygon).


🎯 Conclusão do Capítulo

Hoje você aprendeu a:
✅ Desenhar quadrados, círculos e linhas.
✅ Usar cores para deixar o jogo mais alegre.
✅ Dar os primeiros passos rumo a criar cenários completos.

Agora você já pode começar a imaginar mapas, pistas, plataformas e elementos visuais para os seus futuros jogos.

Você é incrível! 🌟 Continue assim que daqui a pouco vai estar criando mundos inteiros.


👉 No Capítulo 5 vamos juntar movimento + formas geométricas e transformar o quadrado em jogador oficial com cenário.


📣 Assim como você está aprendendo a criar cenários organizados nos jogos, na vida real também precisa ter organização.
Se você é psicólogo, fonoaudiólogo, advogado com sociedade unipessoal ou outro prestador de serviços e precisa abrir empresa no Simples Nacional, organizar sua contabilidade ou fazer planejamento tributário, conte comigo! Sou contador especializado em profissionais de serviços e posso te ajudar a economizar impostos e ganhar tranquilidade. 😉