How would you do this?

Discussion in 'Python' started by eli m, Feb 14, 2013.

  1. eli m

    eli m Guest

    I want to make a guess the number game (Which i have), but i want to make the computer play the game against itself. How would i do this?
    eli m, Feb 14, 2013
    #1
    1. Advertising

  2. On 14 February 2013 23:34, eli m <> wrote:
    > I want to make a guess the number game (Which i have), but i want to make the computer play the game against itself. How would i do this?


    Your question would make more sense if you would show your program and
    also explain how you would like the output to look when the computer
    played itself.


    Oscar
    Oscar Benjamin, Feb 15, 2013
    #2
    1. Advertising

  3. eli m

    eli m Guest

    On Thursday, February 14, 2013 4:09:37 PM UTC-8, Oscar Benjamin wrote:
    > On 14 February 2013 23:34, eli m <> wrote:
    >
    > > I want to make a guess the number game (Which i have), but i want to make the computer play the game against itself. How would i do this?

    >
    >
    >
    > Your question would make more sense if you would show your program and
    >
    > also explain how you would like the output to look when the computer
    >
    > played itself.
    >
    >
    >
    >
    >
    > Oscar

    This is my code:

    #Guess the number game
    import random
    run = 0
    while run == 0:
    print ("I am thinking of a number between 1 and 100")
    num = random.randint(1, 100)
    num = int(num)
    guesses = 0
    guessestaken = 0
    while guesses == 0:
    try:
    guess = raw_input("Your guess:")
    guess = int(guess)
    guessestaken = (guessestaken) + 1
    guessestaken = int(guessestaken)
    if guess == (num):
    print 'Correct! It took you', int(guessestaken), 'guesses!'
    playagain = raw_input("Do you want to play again?")
    if playagain == "yes":
    guesses = 1
    if playagain == "no":
    run = 1
    if guess > num:
    print ("My number is lower")
    if guess < num:
    print ("My number is higher")
    except TypeError, err:
    print ("Not a valid number")

    I would like it to show the computer guessing the numbers.
    eli m, Feb 15, 2013
    #3
  4. eli m

    eli m Guest

    On Thursday, February 14, 2013 4:09:37 PM UTC-8, Oscar Benjamin wrote:
    > On 14 February 2013 23:34, eli m <> wrote:
    >
    > > I want to make a guess the number game (Which i have), but i want to make the computer play the game against itself. How would i do this?

    >
    >
    >
    > Your question would make more sense if you would show your program and
    >
    > also explain how you would like the output to look when the computer
    >
    > played itself.
    >
    >
    >
    >
    >
    > Oscar

    This is my code:

    #Guess the number game
    import random
    run = 0
    while run == 0:
    print ("I am thinking of a number between 1 and 100")
    num = random.randint(1, 100)
    num = int(num)
    guesses = 0
    guessestaken = 0
    while guesses == 0:
    try:
    guess = raw_input("Your guess:")
    guess = int(guess)
    guessestaken = (guessestaken) + 1
    guessestaken = int(guessestaken)
    if guess == (num):
    print 'Correct! It took you', int(guessestaken), 'guesses!'
    playagain = raw_input("Do you want to play again?")
    if playagain == "yes":
    guesses = 1
    if playagain == "no":
    run = 1
    if guess > num:
    print ("My number is lower")
    if guess < num:
    print ("My number is higher")
    except TypeError, err:
    print ("Not a valid number")

    I would like it to show the computer guessing the numbers.
    eli m, Feb 15, 2013
    #4
  5. eli m

    Guest

    On Thursday, February 14, 2013 5:19:51 PM UTC-7, eli m wrote:
    > On Thursday, February 14, 2013 4:09:37 PM UTC-8, Oscar Benjamin wrote:
    >
    > > On 14 February 2013 23:34, eli m <> wrote:

    >
    > >

    >
    > > > I want to make a guess the number game (Which i have), but i want to make the computer play the game against itself. How would i do this?

    >
    > >

    >




    > >

    >
    > >

    >
    > > Your question would make more sense if you would show your program and

    >
    > >

    >
    > > also explain how you would like the output to look when the computer

    >
    > >

    >
    > > played itself.

    >
    > >

    >
    > >

    >
    > >

    >
    > >

    >
    > >

    >
    > > Oscar

    >
    > This is my code:
    >
    >
    >
    > #Guess the number game
    >
    > import random
    >
    > run = 0
    >
    > while run == 0:
    >
    > print ("I am thinking of a number between 1 and 100")
    >
    > num = random.randint(1, 100)
    >
    > num = int(num)
    >
    > guesses = 0
    >
    > guessestaken = 0
    >
    > while guesses == 0:
    >
    > try:
    >
    > guess = raw_input("Your guess:")
    >
    > guess = int(guess)
    >
    > guessestaken = (guessestaken) + 1
    >
    > guessestaken = int(guessestaken)
    >
    > if guess == (num):
    >
    > print 'Correct! It took you', int(guessestaken), 'guesses!'
    >
    > playagain = raw_input("Do you want to play again?")
    >
    > if playagain == "yes":
    >
    > guesses = 1
    >
    > if playagain == "no":
    >
    > run = 1
    >
    > if guess > num:
    >
    > print ("My number is lower")
    >
    > if guess < num:
    >
    > print ("My number is higher")
    >
    > except TypeError, err:
    >
    > print ("Not a valid number")
    >
    >
    >
    > I would like it to show the computer guessing the numbers.


    Hello. I think you code is Python 2.7. My solution uses Python 3 but I can help you convert it if the solution is what you are looking for. My approach as to create a class that tries to guess the right number. This code also eliminates raw_input. I didn't know how important having it respond via raw_input is to you. Code follows:

    import random
    import sys

    class Guesser():
    def __init__(self):
    self.low = 1
    self.high = 100

    def getRand(self,x,y):
    num = random.randint(x,y)
    return num

    def guess(self,guess,boundary):
    if boundary == ">":
    self.low = guess
    elif boundary == "<":
    self.high = guess
    else:
    self.low = 1
    self.high = 100
    return self.getRand(self.low,self.high)

    def playagain(self):
    choice = ['Y','N']
    return random.choice(choice)


    run = 0

    while run == 0:
    guess=1
    guesses=0
    guessestaken = 0
    comp = Guesser()
    num = comp.getRand(1,100)
    result = ""
    print ("I am thinking of a number between 1 and 100")
    while guesses == 0:
    guessestaken += 1
    try:
    guess = comp.guess(guess,result) # replaces input
    except:
    print("Unexpected error:", sys.exc_info()[0])
    raise

    print("Your guess:", guess)
    if guess == num:
    print('Correct! It took you', guessestaken, 'guesses!')
    guesses = 1
    elif guess > num:
    print("My number is lower")
    result = "<"
    else:
    print("My number is higher")
    result = ">"
    print("Do you want to play again?")
    playagain = comp.playagain() # replaces input
    print(playagain)
    if playagain == "N":
    run = 1

    Please let me know if you have questions or would like to discuss this solution further.

    Cheers!
    vduncan
    , Feb 15, 2013
    #5
  6. eli m

    Guest

    On Thursday, February 14, 2013 5:19:51 PM UTC-7, eli m wrote:
    > On Thursday, February 14, 2013 4:09:37 PM UTC-8, Oscar Benjamin wrote:
    >
    > > On 14 February 2013 23:34, eli m <> wrote:

    >
    > >

    >
    > > > I want to make a guess the number game (Which i have), but i want to make the computer play the game against itself. How would i do this?

    >
    > >

    >




    > >

    >
    > >

    >
    > > Your question would make more sense if you would show your program and

    >
    > >

    >
    > > also explain how you would like the output to look when the computer

    >
    > >

    >
    > > played itself.

    >
    > >

    >
    > >

    >
    > >

    >
    > >

    >
    > >

    >
    > > Oscar

    >
    > This is my code:
    >
    >
    >
    > #Guess the number game
    >
    > import random
    >
    > run = 0
    >
    > while run == 0:
    >
    > print ("I am thinking of a number between 1 and 100")
    >
    > num = random.randint(1, 100)
    >
    > num = int(num)
    >
    > guesses = 0
    >
    > guessestaken = 0
    >
    > while guesses == 0:
    >
    > try:
    >
    > guess = raw_input("Your guess:")
    >
    > guess = int(guess)
    >
    > guessestaken = (guessestaken) + 1
    >
    > guessestaken = int(guessestaken)
    >
    > if guess == (num):
    >
    > print 'Correct! It took you', int(guessestaken), 'guesses!'
    >
    > playagain = raw_input("Do you want to play again?")
    >
    > if playagain == "yes":
    >
    > guesses = 1
    >
    > if playagain == "no":
    >
    > run = 1
    >
    > if guess > num:
    >
    > print ("My number is lower")
    >
    > if guess < num:
    >
    > print ("My number is higher")
    >
    > except TypeError, err:
    >
    > print ("Not a valid number")
    >
    >
    >
    > I would like it to show the computer guessing the numbers.


    Hello. I think you code is Python 2.7. My solution uses Python 3 but I can help you convert it if the solution is what you are looking for. My approach as to create a class that tries to guess the right number. This code also eliminates raw_input. I didn't know how important having it respond via raw_input is to you. Code follows:

    import random
    import sys

    class Guesser():
    def __init__(self):
    self.low = 1
    self.high = 100

    def getRand(self,x,y):
    num = random.randint(x,y)
    return num

    def guess(self,guess,boundary):
    if boundary == ">":
    self.low = guess
    elif boundary == "<":
    self.high = guess
    else:
    self.low = 1
    self.high = 100
    return self.getRand(self.low,self.high)

    def playagain(self):
    choice = ['Y','N']
    return random.choice(choice)


    run = 0

    while run == 0:
    guess=1
    guesses=0
    guessestaken = 0
    comp = Guesser()
    num = comp.getRand(1,100)
    result = ""
    print ("I am thinking of a number between 1 and 100")
    while guesses == 0:
    guessestaken += 1
    try:
    guess = comp.guess(guess,result) # replaces input
    except:
    print("Unexpected error:", sys.exc_info()[0])
    raise

    print("Your guess:", guess)
    if guess == num:
    print('Correct! It took you', guessestaken, 'guesses!')
    guesses = 1
    elif guess > num:
    print("My number is lower")
    result = "<"
    else:
    print("My number is higher")
    result = ">"
    print("Do you want to play again?")
    playagain = comp.playagain() # replaces input
    print(playagain)
    if playagain == "N":
    run = 1

    Please let me know if you have questions or would like to discuss this solution further.

    Cheers!
    vduncan
    , Feb 15, 2013
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    0
    Views:
    1,104
  2. Alexander
    Replies:
    620
    Views:
    7,862
    Seebs
    Nov 9, 2010
  3. Alexander
    Replies:
    68
    Views:
    1,482
  4. Alexander
    Replies:
    60
    Views:
    1,373
    Thomas G. Marshall
    Nov 4, 2010
  5. Aston J.
    Replies:
    13
    Views:
    482
    Justin Collins
    Mar 16, 2011
Loading...

Share This Page