Velocity Reviews > How would you do this?

# How would you do this?

eli m
Guest
Posts: n/a

 02-14-2013
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?

Oscar Benjamin
Guest
Posts: n/a

 02-15-2013
On 14 February 2013 23:34, eli m <(E-Mail Removed)> 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

eli m
Guest
Posts: n/a

 02-15-2013
On Thursday, February 14, 2013 4:09:37 PM UTC-8, Oscar Benjamin wrote:
> On 14 February 2013 23:34, eli m <(E-Mail Removed)> 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
Guest
Posts: n/a

 02-15-2013
On Thursday, February 14, 2013 4:09:37 PM UTC-8, Oscar Benjamin wrote:
> On 14 February 2013 23:34, eli m <(E-Mail Removed)> 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.

vduncan80@gmail.com
Guest
Posts: n/a

 02-15-2013
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 <(E-Mail Removed)> 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

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

vduncan80@gmail.com
Guest
Posts: n/a

 02-15-2013
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 <(E-Mail Removed)> 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

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