Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

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: 1470 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:

# 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:

Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

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á 20 usuários muito felizes estudando em nosso site.