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: 1373 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() |
![]() |
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 adjascenteQuantidade 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. |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes) |
Como criar arrays (vetores e matrizes) usando o objeto ndarray da biblioteca Numpy do PythonQuantidade de visualizações: 3034 vezes |
O objeto ndarray é a parte mais importante da biblioteca Numpy do Python. É por meio dele que criamos vetores e matrizes. Quando falamos vetores, estamos nos referindo às matrizes de apenas uma dimensão, ou seja, uma linha e várias colunas. A forma mais comum de se criar arrays na Numpy é usando funções presentes na biblioteca. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos a bibliteca NumPy import numpy as np def main(): # vamos usar o método arange() para construir um # vetor de 10 elementos, começando de 0 até 9 vetor = np.arange(10) # vamos mostrar o vetor gerado print(vetor) if __name__== "__main__": main() Ao executar este código nós teremos o seguinte resultado: [0 1 2 3 4 5 6 7 8 9] Depois que criamos o vetor, seus elementos individuais podem ser acessados usando-se o nome da variável usada para representar todo o valor e o índice do elemento que queremos acessar (começando em 0). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos a bibliteca NumPy import numpy as np def main(): # vamos usar o método arange() para construir um vetor de # 10 elementos, começando de 0 até 9 vetor = np.arange(10) # vamos mostrar o vetor inteiro print("Vetor gerado: ", vetor) # vamos mostrar o valor do terceiro elemento print("Terceiro elemento: ", vetor[2]) if __name__== "__main__": main() Este código produzirá o seguinte resultado: Vetor gerado: [0 1 2 3 4 5 6 7 8 9] Terceiro elemento: 2 Uma outra forma de criarmos vetores usando a Numpy, é fornecendo os elementos do vetor como uma list. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos a bibliteca NumPy import numpy as np def main(): # vamos criar um vetor passando uma list valores = np.array([4, 12, 50, 8, 32]) # vamos mostrar o resultado print("Elementos no vetor:", valores) if __name__== "__main__": main() Este código vai gerar o seguinte resultado: Elementos no vetor: [ 4 12 50 8 32] Agora vamos usar essa mesma abordagem para criar uma matriz de duas dimensões (bidimensional): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos a bibliteca NumPy import numpy as np def main(): # vamos criar uma matriz bidimensional passando # duas lists dentro de uma list valores = np.array([(4, 12, 50), (5, 3, 1)]) # vamos mostrar o resultado print("Elementos no vetor:", valores) if __name__== "__main__": main() Veja o resultado da execução desse código: Elementos no vetor: [[12 12 50] [ 5 3 1]] Em mais dicas dessa seção você aprenderá mais sobre as funções de criação e manipulação de vetores e matrizes usando a biblioteca NumPy do Python. |
Python ::: Dicas & Truques ::: Formatação de datas, strings e números |
Como formatar inteiros com uma determinada quantidade de zeros à esquerda usando PythonQuantidade de visualizações: 11103 vezes |
Nesta dica eu mostro como formatar um valor inteiro com uma determinada quantidade de zeros à sua esquerda. Note que aqui eu estou combinando a função print() com o operador de módulo (%) para indicar os valores que serão formatados. Esta técnica foi muito usada na época do Python 2.5 e ainda está disponível no Python 3.0 (e creio que deverá continuar por muito tempo ainda). Veja o trecho de código completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # função principal do programa def main(): valor1 = 343 valor2 = 3 # exibirá 000342 print("O valor é %06d" % (valor1)) # exibirá 0342 e 00000003 print("Os valor sao %04d e %08d" % (valor1, valor2)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: O valor é 000343 Os valor são 0343 e 00000003 |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
Códigos Fonte |
![]() 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 |
![]() 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 |