Home > Mobile >  python guess number game, guess to much
python guess number game, guess to much

Time:06-19

I'm studying programming 1 and am doing the guess number 1-100 game and I need a command that if I guess over 100 the program sees it and tells me and I don´t know how I'm supposed to get that answer. I have guessed what I think the command would look like and its furthest down but I would not be surprised if I'm entirely wrong. please help me!

import random
running = True
attempts = 0
guess = 0
while running:
      count = 0
      number = random.randint(1, 100)
      print ("gissa talet");
      print ("Du ska nu gissa ett tal mellan 1 och 100, så varsågod...")
      print ("skriv in ett tal")

      guess = int(input())
      if guess == number:
        print ("""Grattis du har vunnit!
        
      Programmet är slut""")

      if guess < number:
        if (number-guess) < 4:
            print("""Ditt tal är för litet. gissa på ett större tal 
      Du är dock nära och det bränns

      Programmet är slut""")
        else: print ("""Ditt tal är för litet. gissa på ett större tal!
        
      Programmet är slut""")

      elif guess > number:
        if (guess-number) < 4:
            print ("""Ditt tal är för stort. Gissa på ett mindre tal
      Du är dock nära och det bränns

      Programmet är slut""")
        else: print ("""Ditt tal är för stort. Gissa på ett mindre tal!
        
      Programmet är slut""")

       elif guess > 100: print ("Du måste skriva in ett tal mellan 1 och 100!")

      count  = 1
      if count == 1:
       break

CodePudding user response:

you must set the number out of the loop, then in the loop just get the guesses and compare them with the number

it is hard to read an unclean code, also it's better to write English here to the community can read it better. I was use the translator to understand it.

import random
running = True
attempts = 0
number = random.randint(1, 100)

print ("gissa talet");
print ("Du ska nu gissa ett tal mellan 1 och 100, så varsågod...")

while running:
    
    # get the input
    print ("skriv in ett tal")
    
    guess = int(input())
    attempts  = 1
    
    # win
    if guess == number:
        print (f"Grattis du vann (efter {attempts} försök)!")
        # close program
        print("\n\tProgrammet är slut")
        running = False
    
    # more than 100
    elif guess > 100:
        print ("Du måste skriva in ett tal mellan 1 och 100!")
        # close program
        print("\n\tProgrammet är slut")
        running = False
        
    # lower than number
    elif guess < number:
        # it is near
        if (number-guess) < 4:
            print("Ditt tal är för litet. gissa på ett större tal, Du är dock nära och det bränns")
        else:
            # it's not near
            print ("Ditt tal är för litet. gissa på ett större tal!")
    
    # bigger than number
    elif guess > number:
        # it is near
        if (guess-number) < 4:
            print ("Ditt tal är för stort. Gissa på ett mindre tal, Du är dock nära och det bränns")
        else:
            #it's not near
            print ("Ditt tal är för stort. Gissa på ett mindre tal!")

CodePudding user response:

Because you set the random number inside the loop, everytime it loops, the number changes. So everytime you guess a number the number you want to guess is already different. You need to set the random number before the loop so it stays the same troughout the guesses.

Other problem your code has is that after on guess the program finishes. That's because the use of count is kinda wrong. You just need this in order to stop the code when the guess is corret:

if guess == number:
    print ("""Grattis du har vunnit!
      Programmet är slut""")
    running = False

Then you can delete all the count references, that would just be necessary if you at the end would want to show the amount of tries were made.

The code with no errors would look like this: ps: I added the functionality of saying how many guesses were made xD

I could have made it a lot cleaner, but i just tried to change the necessary things so it's easier to compare with your code:)

import random
running = True
attempts = 0
guess = 0
count = 0
number = random.randint(1, 100)
print ("gissa talet")
print ("Du ska nu gissa ett tal mellan 1 och 100, så varsågod...")


while running:
      count  = 1
      print ("skriv in ett tal")
      guess = int(input())
      if guess == number:
        print ("""Grattis du har vunnit!
        
      Programmet är slut""")
      print(f"You guessed correct in the {count}º try:)")
      running = False


      if guess < number:
        if (number-guess) < 4:
            print("""Ditt tal är för litet. gissa på ett större tal 
      Du är dock nära och det bränns

      Programmet är slut""")
        else: print ("""Ditt tal är för litet. gissa på ett större tal!
        
      Programmet är slut""")

      elif guess > number:
        if (guess-number) < 4:
            print ("""Ditt tal är för stort. Gissa på ett mindre tal
      Du är dock nära och det bränns

      Programmet är slut""")
        else: print ("""Ditt tal är för stort. Gissa på ett mindre tal!
        
      Programmet är slut""")

      elif guess > 100: print ("Du måste skriva in ett tal mellan 1 och 100!")
  • Related