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: 1303 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 ::: Lista (List) |
Como pesquisar um item em uma list e removê-lo usando a função remove() do PythonQuantidade de visualizações: 8440 vezes |
Nesta dica mostrarei como é possível usar a função remove() do tipo de dados list para pesquisar um item em uma lista e removê-lo. Observe que, se o item a ser removido não for encontrado, um erro do tipo ValueError será exibido. 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) ---------------------------------------------------------------------- # função principal do programa def main(): # cria uma lista de inteiros valores = [2, 5, 12, 2, 3, 32, 18] # exibe a lista print(valores) try: valor = int(input("Informe o valor a ser removido: ")) valores.remove(valor) except ValueError: print("O valor pesquisado nao foi encontrado") else: print("O valor foi removido com sucesso") # exibe a lista print(valores) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: [2, 5, 12, 2, 3, 32, 18] Informe o valor a ser removido: 2 O valor foi removido com sucesso [5, 12, 2, 3, 32, 18] Observe que a função remove() da list remove apenas o primeiro item encontrado, ou seja, se a lista possuir mais de um valor igual, apenas o primeiro será removido. |
Python ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Apostila Python para iniciantes - Como exibir os números pares de 0 a 20 usando o laço for da linguagem PythonQuantidade de visualizações: 13490 vezes |
Nesta dica mostrarei como podemos usar o laço for da linguagem Python para exibir os números pares de 0 a 20. Note que usaremos os parâmetros start (valor inicial da variável de controle), stop (valor final da variável de controle, não incluído) e step (que especifica o valor de incremento da variável de controle. 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) ---------------------------------------------------------------------- # função principal do programa def main(): for i in range(0, 21, 2): print(i, end = " ") if __name__== "__main__": main() Ao executar este código nós teremos o seguinte resultado: 0 2 4 6 8 10 12 14 16 18 20 |
Python ::: PyQt GUI Toolkit ::: QMainWindow |
Como centralizar uma janela QMainWindow do PyQtQuantidade de visualizações: 39 vezes |
Nesta dica mostrarei como podemos centralizar a janela principal de nossa aplicação PyQt. Note que esta janela principal, na maioria das vezes, é representada por uma instância da classe QMainWindow. Veja o código completo para o exemplo, já atualizado para o PyQt6: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # vamos importar os módulos necessários import sys from PyQt6.QtCore import * from PyQt6.QtGui import * from PyQt6.QtWidgets import * # vamos criar uma classe que herda de QMainWindow class JanelaPrincipal(QMainWindow): # construtor da classe def __init__(self): super().__init__() # definimos o título da janela self.setWindowTitle("Cadastro de Produtos") # vamos definir as dimensões da janela self.resize(600, 420) # vamos obter a geometria do frame da nossa janela geometria_frame = self.frameGeometry() # acessamos a geometria da monitor e obtemos seu centro ponto_central = self.screen().availableGeometry().center() # movemos o retângulo obtido anteriormente para o centro da tela geometria_frame.moveCenter(ponto_central) # e finalmente movemos nossa janela para este ponto self.move(geometria_frame.topLeft()) if __name__== "__main__": # cria a aplicação app = QApplication(sys.argv) # cria a janela principal e a coloca visível janela_principal = JanelaPrincipal() janela_principal.show() # executa a aplicação app.exec() |
Vamos testar seus conhecimentos em Topografia |
Rumo e Azimute Concurso Analista Ambiental - Engenheiro Agrimensor. Observe a figura abaixo e assinale a alternativa correta. A) Rumo de A2: N59ºE e Azimute de A1: 59º B) Rumo de A2: S37ºW e Azimute de A2: 217º C) Rumo de A1: N23ºE e Azimute de A2: 337º D) Rumo de A3: S48ºE e Azimute de A1: 37º E) Rumo de A2: N37ºE e Azimute de A1: 132º Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Transporte de fluidos por bombas O objetivo no transporte de fluidos por bombas é transferir energia ao fluido, compensar as perdas por atrito e aumentar a vazão no transporte com diferença de altura ou de pressão. Suponha que escoe petróleo cru por uma tubulação horizontal com auxílio de uma bomba com eficiência de 85%. Qual potência deve ser fornecida na entrada da estação de bombeamento para vazão de 2,94m3/s? Considere que a queda de pressão estimada ao longo do escoamento é de 7,92MPa. A) 23,30MW. B) 27,41MW. C) 19,80MW. D) 85,00MW. E) 7,96MW. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Como arredondar o valor 7.25 para o inteiro mais próximo em JavaScript? A) Math.rnd(7.25) B) Math.round(7.25) C) rnd(7.25) D) round(7.25) Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Analise o seguinte código JavaScriptvar palavra = 'b' + 'a' + + 'a' + 'a'; palavra = palavra.toLowerCase(); document.write(palavra); Qual é o resultado de sua execução? A) baaa. B) banana. C) anana. D) bananas. E) Um erro de execução. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Perda de Carga Localizada, Acessórios de Tubulação Considerando a questão: "Qual a perda de carga singular em um conduto de 100 m, diâmetro de 100 mm, com um fluido escoando a 2 m/s, apresentando as seguintes singularidades rosqueadas na tubulação: válvula globo totalmente aberta e cotovelo de 45º com raio normal?". Qual o erro relativo da perda de carga linear em comparação com a perda de carga total? A) 0,08%. B) 4,30%. C) 8,28%. D) 9,00%. E) 0,09%. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software 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 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 |