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: 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() |
![]() |
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 30Quantidade 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)] 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 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 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. |
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 |