Jogador 1: Representado por um retângulo vermelho.
Jogador 2: Representado por um retângulo verde.
Objeto Azul: O retângulo azul é o item coletável que os jogadores precisam alcançar.
import pygame # Importa a biblioteca Pygame para criar o jogo
from [Link] import * # Importa os eventos e constantes do Pygame
from sys import exit # Importa a função exit para encerrar o programa
from random import randint # Importa a função randint para gerar números
aleatórios
# Inicializa o Pygame
[Link]()
# Define as dimensões da tela do jogo
largura = 640
altura = 480
# Define as posições iniciais dos jogadores (retângulos)
x1 = largura / 4 # Posição inicial do jogador 1 no eixo X
y1 = altura / 2 # Posição inicial do jogador 1 no eixo Y
x2 = 3 * largura / 4 # Posição inicial do jogador 2 no eixo X
y2 = altura / 2 # Posição inicial do jogador 2 no eixo Y
# Gera posições aleatórias para o objeto coletável (retângulo azul)
x_azul = randint(40, 600)
y_azul = randint(50, 430)
# Placar do jogo
pontos_jogador1 = 0 # Pontuação inicial do jogador 1
pontos_jogador2 = 0 # Pontuação inicial do jogador 2
# Define a tela do jogo e o título da janela
tela = [Link].set_mode((largura, altura))
[Link].set_caption('Jogo Competitivo')
# Cria um objeto de relógio para controlar a taxa de quadros
relogio = [Link]()
# Define a fonte para desenhar o placar na tela
fonte = [Link]('Arial', 30)
# Loop principal do jogo
while True:
# Controla o FPS (frames por segundo) do jogo
[Link](30)
# Preenche o fundo da tela com a cor preta
[Link]((0, 0, 0))
# Trata os eventos do Pygame, como o fechamento da janela
for event in [Link]():
if [Link] == QUIT:
[Link]() # Fecha o Pygame
exit() # Encerra o programa
# Movimentação do jogador 1 (retângulo vermelho)
if [Link].get_pressed()[K_a]: # Se a tecla "A" for pressionada
x1 -= 20 # Move o jogador 1 para a esquerda
if [Link].get_pressed()[K_d]: # Se a tecla "D" for pressionada
x1 += 20 # Move o jogador 1 para a direita
if [Link].get_pressed()[K_w]: # Se a tecla "W" for pressionada
y1 -= 20 # Move o jogador 1 para cima
if [Link].get_pressed()[K_s]: # Se a tecla "S" for pressionada
y1 += 20 # Move o jogador 1 para baixo
# Movimentação do jogador 2 (retângulo verde)
if [Link].get_pressed()[K_LEFT]: # Se a seta esquerda for pressionada
x2 -= 20 # Move o jogador 2 para a esquerda
if [Link].get_pressed()[K_RIGHT]: # Se a seta direita for pressionada
x2 += 20 # Move o jogador 2 para a direita
if [Link].get_pressed()[K_UP]: # Se a seta para cima for pressionada
y2 -= 20 # Move o jogador 2 para cima
if [Link].get_pressed()[K_DOWN]: # Se a seta para baixo for pressionada
y2 += 20 # Move o jogador 2 para baixo
# Limita o movimento dos jogadores para que não saiam da tela
# Limita o movimento do jogador 1
if x1 < 0:
x1 = 0 # Não deixa o jogador 1 sair pela esquerda
elif x1 > largura - 40:
x1 = largura - 40 # Não deixa o jogador 1 sair pela direita
if y1 < 0:
y1 = 0 # Não deixa o jogador 1 sair para cima
elif y1 > altura - 50:
y1 = altura - 50 # Não deixa o jogador 1 sair para baixo
# Limita o movimento do jogador 2
if x2 < 0:
x2 = 0 # Não deixa o jogador 2 sair pela esquerda
elif x2 > largura - 40:
x2 = largura - 40 # Não deixa o jogador 2 sair pela direita
if y2 < 0:
y2 = 0 # Não deixa o jogador 2 sair para cima
elif y2 > altura - 50:
y2 = altura - 50 # Não deixa o jogador 2 sair para baixo
# Desenha os jogadores (retângulos vermelhos e verdes)
[Link](tela, (255, 0, 0), (x1, y1, 40, 50)) # Jogador 1 - Vermelho
[Link](tela, (0, 255, 0), (x2, y2, 40, 50)) # Jogador 2 - Verde
# Desenha o retângulo azul (objeto coletável)
ret_azul = [Link](tela, (0, 0, 255), (x_azul, y_azul, 40, 50))
# Verifica colisão entre os jogadores e o objeto azul
if [Link](x1, y1, 40, 50).colliderect(ret_azul):
pontos_jogador1 += 1 # Jogador 1 coleta o objeto e ganha 1 ponto
x_azul = randint(40, 600) # Gera uma nova posição aleatória para o objeto azul
y_azul = randint(50, 430)
if [Link](x2, y2, 40, 50).colliderect(ret_azul):
pontos_jogador2 += 1 # Jogador 2 coleta o objeto e ganha 1 ponto
x_azul = randint(40, 600) # Gera uma nova posição aleatória para o objeto
azul
y_azul = randint(50, 430)
# Exibe o placar na tela
texto_placar = [Link](f'Jogador 1: {pontos_jogador1} - Jogador 2:
{pontos_jogador2}', True, (255, 255, 255))
[Link](texto_placar, (10, 10))
# Verifica se algum jogador venceu (atingiu 10 pontos)
if pontos_jogador1 >= 10:
texto_ganhador = [Link]("Jogador 1 Venceu!", True, (255, 255, 255))
[Link](texto_ganhador, (largura / 2 - 100, altura / 2))
[Link]() # Atualiza a tela
[Link](2000) # Espera 2 segundos antes de fechar o jogo
[Link]() # Fecha o Pygame
exit() # Encerra o programa
elif pontos_jogador2 >= 10:
texto_ganhador = [Link]("Jogador 2 Venceu!", True, (255, 255, 255))
[Link](texto_ganhador, (largura / 2 - 100, altura / 2))
[Link]() # Atualiza a tela
[Link](2000) # Espera 2 segundos antes de fechar o jogo
[Link]() # Fecha o Pygame
exit() # Encerra o programa
[Link]() # Atualiza a tela a cada loop