Mundo em Python

Jogo de Matemática

import random
import time
import os
def salvar_ranking(nome, pontuacao):
with open("ranking.txt", "a") as arquivo:
arquivo.write(f"{nome}: {pontuacao}\n")
def exibir_ranking():
if os.path.exists("ranking.txt"):
print("\n*** Ranking de Pontuações ***")
with open("ranking.txt", "r") as arquivo:
linhas = arquivo.readlines()
for linha in linhas:
print(linha.strip())
else:
print("\nNenhuma pontuação salva ainda!")
def gerar_pergunta(nivel):
if nivel == "Fácil":
num1, num2 = random.randint(1, 10), random.randint(1, 10)
elif nivel == "Médio":
num1, num2 = random.randint(10, 50), random.randint(10, 50)
else: # Difícil
num1, num2 = random.randint(50, 100), random.randint(50, 100) operacao = random.choice(["+", "-", "*", "/"])
if operacao == "/":
num1 = num1 * num2
if operacao == "+":
resposta_correta = num1 + num2
elif operacao == "-":
resposta_correta = num1 - num2
elif operacao == "*":
resposta_correta = num1 * num2
elif operacao == "/":
resposta_correta = num1 / num2 return f"{num1} {operacao} {num2}", resposta_correta
def jogo_de_matematica():
print("Bem-vindo ao Jogo de Matemática Melhorado!")
print("Escolha o nível de dificuldade: Fácil, Médio, Difícil.")
nivel = input("Digite o nível: ").capitalize() while nivel not in ["Fácil", "Médio", "Difícil"]:
nivel = input("Por favor, escolha entre Fácil, Médio ou Difícil: ").capitalize() print("\nModo Multiplayer? Digite 'sim' para ativar ou qualquer tecla para jogar sozinho.")
multiplayer = input("Multiplayer: ").lower() == "sim"
jogadores = [] if multiplayer:
jogadores.append(input("Digite o nome do Jogador 1: "))
jogadores.append(input("Digite o nome do Jogador 2: "))
else:
jogadores.append(input("Digite seu nome: ")) pontuacoes = {jogador: 0 for jogador in jogadores}
tempo_limite = 10 # Tempo para responder em segundos

jogando = True
while jogando:
for jogador in jogadores:
print(f"\nTurno de {jogador}!")
pergunta, resposta_correta = gerar_pergunta(nivel)
print(f"Você tem {tempo_limite} segundos para responder.")
print(f"Quanto é {pergunta}?") inicio = time.time()
resposta = input("Sua resposta: ")
tempo_decorrido = time.time() - inicio if tempo_decorrido > tempo_limite:
print("Tempo esgotado!")
elif resposta.lower() == "sair":
jogando = False
break
else:
try:
if float(resposta) == resposta_correta:
print("Correto! Você ganhou 1 ponto.")
pontuacoes[jogador] += 1
else:
print(f"Errado! A resposta correta era {resposta_correta}.")
except ValueError:
print("Resposta inválida. Por favor, insira um número.") if not multiplayer:
print("\nDeseja continuar jogando? Digite 'sair' para encerrar ou qualquer tecla para continuar.")
continuar = input("Continuar: ").lower()
if continuar == "sair":
jogando = False

print("\n*** Pontuação Final ***")
for jogador, pontuacao in pontuacoes.items():
print(f"{jogador}: {pontuacao} pontos")
salvar_ranking(jogador, pontuacao) exibir_ranking() jogo_de_matematica()
0