0

Hi all!

Is my first post here and well, im very new with python (just aroun 10 days). I did the famous "Guess my number" game. (Python pick up a number and user must guess it).
All right, i have not problems with this. But now im trying in the other way.

I mean, user pick up a number between 1-20 (for example), if the number isnt between 1-20, python warns about this.

Python have 5 tries to guess the number, and user should tell: first, if the number given by python is the pick up number or not. If user says "No" but is Yes, python "Kick the user for cheater", otherwise, if user say Yes -Always- (ever if isnt the user´s number) python wins.

So, if user says "No" and really is No, python ask "lower or higher?".

Im trying to do this loop with little i know about python. Here is my code. (Im stuck):

# Guess My Number Inverted
# This time, user pick up the number
# and python must guess it.


number = int(input("pick a number between 1 and 100: "))
while number < 1 or number > 100:
    print("I told you a number between 1 - 100 bitch!!")
    print("Try again and this time dont fuck with me.")
    number = int(input("Escribe un número entre el 1 y el 100: "))

import random

tries = 0
guess = 0

input("Ok... Let´s finish with this shit.")

while tries < 6:
    guess = random.randint(1, 20)
    print("your number is", guess, "?")
    tries +=1
    response = input("\nYes/No: ")
    if response == "Yes":
        print("Perfect! i won!!")
        print("Get the fuck off of here, loser")
        input("Please, press -Enter- To get the fuck off of here, loser.")
        break
    elif response == "No":
        if guess == number:
            print("You fool!!! This is your number!!!!")
            print("Get the fuck off of here and comeback when you can play fair.")
            input("Press -Enter- to exit, cheater.")
            break
        elif guess != number:
            clue = input("Damn you!! lower or higher??: ")
            if clue == "lower":
                guess2 = random.randint(1, guess )
                tries +=1
                print("Your number is ", guess2, "?")
            elif clue == "higher":
                guess2 = random.randint(guess, 20)
                tries +=1
                print("Your number is ", guess2, "?")

if tries == 6 and guess2 != number:
    print("oooooh what´s wrong? i though i was the best...")
    print("Ok, you won, but you´ll not so lucky the next time.")
    input("press -Enter- to exit, winner.")

I think that my problem is with "guess2" and the refresh between lower and higher values of guess.

i dont know how do a loop and refresh the "guess2" between lower and higher :/.

If you could give me some clue, i thank you so much.

Thanks guys! ;)

2
Contributors
4
Replies
5
Views
4 Years
Discussion Span
Last Post by Testa
0

Keep lower and higher bounds both in variables, which you update by user response for random, and call it only in one place in loop.

0

First of all, thanks so much for your fast answer pyTony.

I´ve tried follow your tip but i have some doubt:

Ok. "higher" and "lower" both in variables; i suposse that the code looks like this:

number = int(input("pick a number between 1 and 100: "))
while number < 1 or number > 100:
    print("I told you a number between 1 - 100 bitch!!")
    print("Try again and this time dont #### with me.")
    number = int(input("Escribe un número entre el 1 y el 100: "))
import random
tries = 0
guess = 0
higher = 0
lower = 0

Nice. but i dont understand how can i update the random. I mean, i understand how can i do this one time, but for example.

  • I pick up "12"

  • Python pick up a random 1-20 first time, for example, 18.

  • I say "No"

  • Python ask me if lower or higher.

  • i say then "lower".

  • python give me a number between 1, and Guess (because i told him "lower"). Ok, all good right now.

(but here is where im stuck)

  • If python tell me "10"

  • i say "No" and "higher"

  • But python give me a number between (10 , and 20, not 10, and the last number higher, in this case "18", i mean, i could give me 18 one more time, or 19 and 20.)

in my very first days with PY i could only learn "if, elif, else and while". Maybe my proposal exercise is beyond me right now? Can i achieve it only with these conditionals?

I´ll keep trying until i succeed but i wonder to know if it´s possible or not.

Thanks a lot again mate :)

0

How higher 0 in beginning, the number can be more than 0, can't it? And it can not be 0 so lower is too low also.

By the way need the computer use random numbers by your assignement? Using average of higher and lower bounds is more efficient.

0

Ok. i´ll keep trying and explore other ways to achieve it trying average of higher/lower.
I´ll keep moving in the theory

Thanks a lot again pyTony ;)!

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.