How would you do this?

E

eli m

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?
 
O

Oscar Benjamin

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
 
E

eli m

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.
 
E

eli m

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.
 
V

vduncan80

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
 
V

vduncan80

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
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,871
Messages
2,569,919
Members
46,172
Latest member
JamisonPat

Latest Threads

Top