5
respostas

acumular valores

A respeito da aula "02 Definindo uma pontuação para o usuário", a perda de pontos não acumula , se tentar 5 vezes até acertar o numero secreto, só será descontado a perda de pontos da 4° tentativa . estou tentando fazer um código que some e perda de pontos e depois tire a diferença com os 1000 pontos(ponto total do jogo), mas não estou conseguindo. alguém pode me ajudar?

5 respostas

Compartilhe o seu código aqui para adicionarmos essa funcionalidade.

import random



print("*********************************")
print("bem vindo ao jogo de adivinhação!")
print("*********************************")


numero_secreto = random.randrange(1,101)
total_de_tentativas = 0
pontos = 1000


print("difina qual o nível de dificuldade ")
print("(1) fácil, (2) médio , (3) difícil")
print(numero_secreto)

total_de_tentativas = 0

while (total_de_tentativas == 0):

    nivel = int(input(("qual o nível que desejas arriscar?")))
    print()

    if (nivel == 1):
        total_de_tentativas = 20
        print("bem vindo ao nível fácil jogo de adivinhação!")
        print(f"você tem {total_de_tentativas} tentativas!")

    elif (nivel == 2):
        total_de_tentativas = 10
        print("bem vindo ao nível médio do jogo de adivinhação!")
        print(f"você tem {total_de_tentativas} tentativas!")

    elif(nivel == 3):
        total_de_tentativas = 5
        print("bem vindo ao nível difícil do jogo de adivinhação!")
        print(f"você tem {total_de_tentativas} tentativas!")

    else :
        print("a escolha deve ser de 1 a 3 ")
        total_de_tentativas = 0
        continue




print()

for rodada  in range(1,total_de_tentativas + 1) :
    #print(f"tentativa {rodada} de {total_de_tentativas - 1}" )
    #print("tentativa {} de {} ".format(rodada, (total_de_tentativas - 1)))
    print("tentativa {a} de {b}".format( a = rodada , b = (total_de_tentativas  )))

    chute = int(input("digite o seu numero, entre 1 e 100:"))
    print()
    print("você digitou ", chute)
    print()

    if (chute < 1) or (chute > 100):
        print("vc precisa digitar um numero entre 1 e 100")
        continue # se essa condição for acionada, ele pulará para próxima rodada

    acertou = chute == numero_secreto
    maior   = chute  > numero_secreto
    menor   = chute  < numero_secreto




    if (acertou):
        print(f"você acertou e fez {pontos} pontos! ")
        break # tambem funciona no while
    else:
        if(maior):
            print("você errou, seu numero foi maior que o numero secreto")

        elif (menor):
            print("Você errou, seu numero foi menor que o numero secreto")
        pontos_perdidos = pontos - (abs(chute - numero_secreto))
        pontos = pontos - pontos_perdidos

print("fim do jogo!")

não está muito diferente do código da aula. eu acredito que , para acumular valores, tenha que criar uma lista, adicionar os valores dos "pontos-negativos" a essa lista, somar os valores contidos e logo após, subtrair pelo total de pontos .

Victor, a funcionalidade de descontar a perda de pontos de todas as tentativas foi adicionada alterando apenas a linha 81, deixei o comentário nessa linha para você analisar.

import random

print("*********************************")
print("bem vindo ao jogo de adivinhação!")
print("*********************************")

numero_secreto = random.randrange(1, 101)
total_de_tentativas = 0
pontos = 1000

print("difina qual o nível de dificuldade ")
print("(1) fácil, (2) médio , (3) difícil")
print(numero_secreto)


while total_de_tentativas == 0:

    nivel = int(input("qual o nível que desejas arriscar?"))
    print()

    if nivel == 1:
        total_de_tentativas = 20
        print("bem vindo ao nível fácil jogo de adivinhação!")
        print(f"você tem {total_de_tentativas} tentativas!")

    elif nivel == 2:
        total_de_tentativas = 10
        print("bem vindo ao nível médio do jogo de adivinhação!")
        print(f"você tem {total_de_tentativas} tentativas!")

    elif nivel == 3:
        total_de_tentativas = 5
        print("bem vindo ao nível difícil do jogo de adivinhação!")
        print(f"você tem {total_de_tentativas} tentativas!")

    else:
        print("a escolha deve ser de 1 a 3 ")
        total_de_tentativas = 0
        continue

print()

for rodada in range(1, total_de_tentativas + 1):
    # print(f"tentativa {rodada} de {total_de_tentativas - 1}" )
    # print("tentativa {} de {} ".format(rodada, (total_de_tentativas - 1)))
    print("tentativa {a} de {b}".format(a=rodada, b=total_de_tentativas))

    chute = int(input("digite o seu numero, entre 1 e 100:"))
    print()
    print("você digitou ", chute)
    print()

    if (chute < 1) or (chute > 100):
        print("vc precisa digitar um numero entre 1 e 100")
        continue  # se essa condição for acionada, ele pulará para próxima rodada

    acertou = chute == numero_secreto
    maior = chute > numero_secreto
    menor = chute < numero_secreto

    if acertou:
        print(f"você acertou e fez {pontos} pontos! ")
        break  # tambem funciona no while
    else:
        if maior:
            print("você errou, seu numero foi maior que o numero secreto")

        elif menor:
            print("Você errou, seu numero foi menor que o numero secreto")

        # Calcular a perda de pontos de cada tentativa
        # pontos_perdidos = pontos - (abs(chute - numero_secreto))
        pontos_perdidos = (abs(chute - numero_secreto))

        pontos = pontos - pontos_perdidos

print("fim do jogo!")
import random

print("x" * 50)
print("          Bem vindo ao jogo de advinhação")
print("x" * 50)

numero_secreto = round(random.randrange(1,101))
total_de_tentativas = 0
pontos = 1000

print("Qual o nível de dificuldade?", numero_secreto)
print("(1) Fácil (2) Médio (3) Difícil")

nivel = int(input("Defina o nível: "))
if (nivel == 1):
      total_de_tentativas = 20
elif( nivel == 2):
      total_de_tentativas = 1035858
      63
      2
else:
      total_de_tentativas = 5

for rodada in range(1, total_de_tentativas + 1):
      print("Tentativa {} de {}".format(rodada, total_de_tentativas))
      chute = int(input("Digite um número entre 0 e 100: "))
      print("Você digitou ", chute)

      if chute < 1 or chute > 100:
          print("Você deve digitar um número entre 1 e 100!")

      acertou = chute == numero_secreto
      maior   = chute > numero_secreto
      menor   = chute < numero_secreto

      if acertou:
              print("Você acertou e fez {} pontos!".format(pontos))
              break
      else:
              if(maior):
                  print("Você erro! O seu chute foi maior que o número secreto.")
              elif(menor):
                  print("Você errou! O seu chute foi menor do que o número secreto")
              pontos_perdidos = abs(numero_secreto - chute)
              pontos = pontos -pontos_perdidos




print("Fim do jogo")