1
resposta

[Projeto] Uhuuuu 1000 pontos. Running my py file on GitBash

01 | Importando arquivos dentro de outros

Aula 08. Organizando melhor o código

Meu código em Py roda no GitBash... Ufa, sinal que está instalado corretamente. Ah!!! Ainda acertei no jogo da advinhação ;)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Código (comentários estão a mostrar a evolução e/ou diferentes possibilidades de sintaxe aprendidas em aula):

import random
#random.random()
#para arredondar o número:
#round(random.random() * 100) 
# função int, que irá converter o número aleatório, que é um float, em um número inteiro
int(random.random() * 100)
# função que arredonda esse número
numero_random = random.random() * 100
round(numero_random)
print(33 * "*")
#print("*********************************")
print("Bem vindo ao jogo de Adivinhação!")
print(33 * "*")
#print("*********************************")
numero_secreto = random.randrange(1, 101)
#numero_secreto = round(random.random() * 100)
#numero_secreto = 42
total_de_tentativas = 3
print("Escolha o nível de dificuldade")
print(" 1 - Fácil | 2 - Médio | 3 - Difícil")
nivel = int(input("Digite o nível escolhido: "))

if(nivel == 1):
    total_de_tentativas = 20
elif(nivel == 2):
    total_de_tentativas = 10
else:
    total_de_tentativas = 5          
tentativa = 1
for tentativa in range (1, total_de_tentativas + 1):
#while (total_de_tentativas > 0):
#while (total_de_tentativas >= tentativa):
    #print("Tentativa", tentativa, "de", total_de_tentativas)
    print("Tentativa {} de {}".format(tentativa, total_de_tentativas))
    chute_str = input("Digite um número entre 1 e 100: ")
    #chute_str = input("Digite teu número: ")
    print("Você digitiou: ", chute_str)
    chute = int(chute_str)
    if(chute < 1 or chute > 100):
        print ("Vocês deve digitar um número entre 1 e 100!")
        continue
    acertou = chute == numero_secreto
    maior = chute > numero_secreto
    menor = chute < numero_secreto
    pontos = 1000
    if (acertou):
        print("Parabéns, você acertou e fez {} pontos" .format(pontos))
        break
    else:
        if(maior):
            print("Chute errado! Foi maior que o número secreto.")
        elif(menor):
            print("Chute errado! Foi menor que o número secreto.")
        pontos_perdididos = abs(numero_secreto - chute)
        pontos = pontos - pontos_perdididos
    total_de_tentativas = total_de_tentativas - 1
    tentativa = tentativa + 1
    if total_de_tentativas == 0:
        print("O número era {}".format(numero_secreto))
print(12 * "*")
print("Fim de Jogo!")
print(12 * "*")
#print("O tipo de variável de chute é: ", type(chute))
# @Author: André Luiz Barbosa (Andrehlb)
# Desenvolve 2023 | GB | Alura Cursos Online
# Path: #https://github.com/Andrehlb/dvelopment.github.io/blob/main/GameProjects/advinhacaoAndrehlb.py#L34


stringBJA = "Bem vindo ao jogo de Adivinhação!"
stringFJ = "Fim de Jogo!"
print("O tamanho das strings são:", len(stringBJA), "|", len(stringFJ))
#print("O tamanho das strings são: ", end="")
#print(len(stringBJA), len(stringFJ), sep=" | ") 
#print("O tamanho das strings são: ", len(stringBJA), len(stringFJ), sep=" | ")
#print("**************")
#stringBJA = "Bem vindo ao jogo de Adivinhação!"
#    stringFJ = "Fim de Jogo!"
#  print(len(stringBJA))
#   print(len(stringFJ))

:) Obrigado!

1 resposta

Oii André, tudo bem com você?

Fico feliz em poder acompanhar sua evolução junto à Alura. Meus parabéns pela implementação do código, continue com essa dedicação sempre.

Realizando testes e simulações com o código, notei que a quantidade de pontos do usuário está sendo decrementada a cada erro, mas, o usuário recebe novamente 1000 pontos. Isso está ocorrendo devido à atribuição da variável pontos = 1000 está ocorrendo dentro do laço de repetição for fazendo com que a cada iteração do laço os pontos do usuário retorne para o valor 1000.

Recomendo que deixe a variável pontos fora do laço for assim, o jogo iniciará com 1000 e a cada erro do usuário ao jogar, será decrementado desse valor inicial, sem que o usuário fique novamente com 1000 pontos a cada tentativa. Modifique a variável deixando ela como apresentada abaixo.

pontos = 1000
for tentativa in range (1, total_de_tentativas + 1):

Salve o arquivo após a mudança e execute-o.

Código completo com a mudança aplicada

import random

int(random.random() * 100)

numero_random = random.random() * 100
round(numero_random)
print(33 * "*")
print("Bem vindo ao jogo de Adivinhação!")
print(33 * "*")

numero_secreto = random.randrange(1, 101)

total_de_tentativas = 3
print("Escolha o nível de dificuldade")
print(" 1 - Fácil | 2 - Médio | 3 - Difícil")
nivel = int(input("Digite o nível escolhido: "))

if (nivel == 1):
    total_de_tentativas = 20
elif (nivel == 2):
    total_de_tentativas = 10
else:
    total_de_tentativas = 5
tentativa = 1

pontos = 1000
for tentativa in range(1, total_de_tentativas + 1):
    print("Tentativa {} de {}".format(tentativa, total_de_tentativas))
    chute_str = input("Digite um número entre 1 e 100: ")

    print("Você digitiou: ", chute_str)
    chute = int(chute_str)
    if (chute < 1 or chute > 100):
        print("Vocês deve digitar um número entre 1 e 100!")
        continue
    acertou = chute == numero_secreto
    maior = chute > numero_secreto
    menor = chute < numero_secreto

    if (acertou):
        print("Parabéns, você acertou e fez {} pontos".format(pontos))
        break
    else:
        if (maior):
            print("Chute errado! Foi maior que o número secreto.")
        elif (menor):
            print("Chute errado! Foi menor que o número secreto.")
        pontos_perdididos = abs(numero_secreto - chute)
        pontos = pontos - pontos_perdididos
    total_de_tentativas = total_de_tentativas - 1
    tentativa = tentativa + 1
    if total_de_tentativas == 0:
        print("O número era {}".format(numero_secreto))
print(12 * "*")
print("Fim de Jogo!")
print(12 * "*")

# @Author: André Luiz Barbosa (Andrehlb)
# Desenvolve 2023 | GB | Alura Cursos Online
# Path: #https://github.com/Andrehlb/dvelopment.github.io/blob/main/GameProjects/advinhacaoAndrehlb.py#L34

stringBJA = "Bem vindo ao jogo de Adivinhação!"
stringFJ = "Fim de Jogo!"
print("O tamanho das strings são:", len(stringBJA), "|", len(stringFJ))

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Qualquer dúvida fico à disposição.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software