Você está aqui: Python ::: Pygame ::: Aplicações com código fonte completo

Como desenhar grids no Pygame para a criação de jogos como Jogo da Velha, Damas, Xadrez, Campo Minado e Sudoku

Quantidade de visualizações: 1372 vezes
Nesta dica mostrarei um código Pygame completo contendo a base inicial para a crição de jogos de tabuleiro, ou seja, jogos baseados em grades, tais como Jogo da Velha, Damas, Xadrez, Campo Minado e Sudoku.

Embora baseado em códigos encontrados em livros de jogos em Python, o código que apresento está todo em português, com as variáveis em português e cheio de comentários. Basta mexer em algumas variáveis de configuração e você conseguirá montar o tabuleiro que você deseja e, o melhor, detectar eventos em cada uma das células da grade.

Veja, por exemplo, uma grade para o Jogo da Velha:



Note que a célula está colorida de azul. Se clicarmos nela novamente, a cor volta ao branco. Se clicar novamente ela fica azul mais uma vez. O mesmo acontece com todas as células da grade.

Veja o código completo para este mini-projeto em Pygame e Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos importar a biblioteca Pygame
import pygame, sys

# vamos definir as variáveis de configuração
preto = (0, 0, 0)
branco = (255, 255, 255)
azul = (0, 0, 255)

# define a quantidade de linhas e colunas
QUANT_LINHAS = 3
QUANT_COLUNAS = 3

# altura, largura e margem entre as celúlas
LARGURA = 100
ALTURA = 100
MARGEM = 1

# tamanho da janela
ALTURA_JANELA = 303
LARGURA_JANELA = 303

# matriz que representa o grid, ou seja, a grade da janela
grade = []

# método principal
def main():
  # monta as linhas e colunas da matriz
  for linha in range(QUANT_LINHAS):
    grade.append([])
    for coluna in range(QUANT_COLUNAS):
      grade[linha].append(0) 
  
  #grid[1][5] = 1

  # inicializa a biblioteca
  pygame.init()
  # obtém a superfície do jogo e define o tamanho da tela
  janela = pygame.display.set_mode((ALTURA_JANELA, LARGURA_JANELA))
  # vamos definir o título da janela do jogo
  pygame.display.set_caption("Como desenhar um grid no Pygame")  
  
  # quantidade de frames por segundo
  FPS = 30
  # construímos o timer
  timer = pygame.time.Clock()

  # e aqui nós entramos no loop do game
  while True:
    # monitoramos os eventos
    for evento in pygame.event.get(): 
      # se o evento foi um pedido para sair
      if evento.type == pygame.QUIT:
        # fechamos a tela do jogo 
        pygame.quit()
        # e saimos do programa
        sys.exit()

      # o evento é o click do mouse? 
      elif evento.type == pygame.MOUSEBUTTONDOWN:
        # obtém a posição do clique do mouse
        pos = pygame.mouse.get_pos()
        # agora convertemos a posição do mouse para linha e coluna na grade
        coluna = pos[0] // (LARGURA + MARGEM)
        linha = pos[1] // (ALTURA + MARGEM)
         
        # esta célula está marcada?
        if grade[linha][coluna] == 1:
          grade[linha][coluna] = 0
        else:  
          # vamos marcar essa célula para receber uma sinalização
          grade[linha][coluna] = 1
        
        print("Evento Clique ", pos, "Coordenadas na Grade: ", linha, coluna)
    
    # pinta a janela de preto
    janela.fill(preto)
    # desenhamos o grid na janela
    for linha in range(QUANT_LINHAS):
      for coluna in range(QUANT_COLUNAS):
        cor = branco
        # houve pedido para pintar essa janela?
        if grade[linha][coluna] == 1:
          cor = azul
        
        # vamos desenhar o retângulo referente a esta célula
        pygame.draw.rect(janela, cor, [(MARGEM + LARGURA) * coluna + MARGEM,
          (MARGEM + ALTURA) * linha + MARGEM, LARGURA, ALTURA])
    
    # dispara o timer
    timer.tick(FPS)
    # atualiza a janela
    pygame.display.flip()

if __name__== "__main__":
  main()


Link para compartilhar na Internet ou com seus amigos:

Python ::: Dicas & Truques ::: Strings e Caracteres

Como testar se uma substring está contida no final de uma string em Python usando a função endswith()

Quantidade de visualizações: 9050 vezes
Em várias situações nós precisamos verificar se uma palavra, frase ou texto termina com um determinado texto, ou seja, uma substring. A linguagem Python nos oferece a função endswith(), que possui a seguinte assinatura:

endswith(substring[, start[, end]])


Se o argumento start for especificado, a busca inicia a partir de tal índice. Se o argumento end for especificado, a busca terminará no índice definido.

Dessa forma, a função endswith retorna 1 se a substring estiver contida no final da string. Do contrário, o valor 0 será retornado.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

def main():
  frase = "Gosto de programar em Java"
 
  if frase.endswith("Java") == 1:
    print("A frase termina com \"Java\"")
  else:
    print("A frase NÃO termina com \"Java\"")   
 
if __name__== "__main__":
  main()

Ao executarmos este código nós teremos o seguinte resultado:

A frase termina com "Java"


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Python - Criando dois vetores de inteiros de forma que a soma dos elementos individuais de cada vetor seja igual a 30

Quantidade de visualizações: 758 vezes
Pergunta/Tarefa:

Considere os seguintes vetores:

# dois vetores de 5 inteiros cada
a = [50, -2, 9, 5, 17]
b = [0 for x in range(5)]
Escreva um programa Python que preencha o segundo vetor de forma que a soma dos respectivos elementos individuais de cada vetor seja igual a 30.

Sua saída deverá ser parecida com:

Valores no vetor a: 50   -2   9   5   17   
Valores no vetor b: -20   32   21   25   13
Resposta/Solução:

Veja a resolução comentada deste exercício usando Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# método principal
def main():
  # dois vetores de 5 inteiros cada
  a = [50, -2, 9, 5, 17]
  b = [0 for x in range(5)]
    
  # vamos preencher o segundo vetor de forma que a soma dos
  # valores de seus elementos seja 30
  for i in range(len(a)):
    b[i] = 30 - a[i]
    
  # vamos mostrar o resultado
  print("Valores no vetor a: ", end="")
  for i in range(len(a)):
    print("{0}  ".format(a[i]), end="") 
    
  print("\nValores no vetor b: ", end="")
  for i in range(len(b)):
    print("{0}  ".format(b[i]), end="") 
  
if __name__== "__main__":
  main()



Python ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o comprimento da hipotenusa em Python dadas as medidas do cateto oposto e do cateto adjascente

Quantidade de visualizações: 1565 vezes
Nesta dica mostrarei como é possível usar a linguagem Python para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos a fazer a converter esta fórmula para código Python. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos importar o módulo Math
import math as math

def main():
  a = 20 # medida do cateto oposto
  b = 30 # medida do cateto adjascente
  
  # agora vamos calcular o comprimento da hipotenusa
  c = math.sqrt(math.pow(a, 2) + math.pow(b, 2))
 
  # e mostramos o resultado
  print("O comprimento da hipotenusa é: %f" % c)
  
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

O comprimento da hipotenusa é: 36.055513

Como podemos ver, o resultado retornado com o código Python confere com os valores da imagem apresentada.


Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 92 usuários muito felizes estudando em nosso site.