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 SudokuQuantidade de visualizações: 1764 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()
|
|
|
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 |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






