Checking input is close to random num - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Checking input is close to random num (/thread-16000.html) |
Checking input is close to random num - Tomington - Feb-10-2019 G,day everyone so i'm reasonably new to python coding, I've not done very much and am looking for some help. the code below is guessing number game my teacher got my class to do as a learning exercise. its not homework either. i'm just trying to learn more. so what I'm trying to achieve is when the players choice gets close to the computers choice. I want to say "Getting Warm", "Getting hot" or if the players choice is far from the computers choice "cold", "very cold". I don't know how to check if the player choice is close the computers choice and then let them know. I'm not looking for an answer exactly just something to put me on the right path, if i know if i know how to check if pc is in range of cc by 10 for example i cant then print getting hot or hotter. I appreciate your time, Thanks import random #variable names #cc = Computers Choice #pc = Players Choice cc = random.randint(1,10) endgame = False attempts = 0 yes = True while(yes==True): while(endgame==False): pc = int(input("choose a number between 1 -10 ")) attempts = attempts+1 #determines if the player choice is the right choice then ends the game if(pc==cc): print("well done you guessed correctly") print ("Total Attempts Made " + str(attempts)) endgame = True #determining if the player choice is higher or lower and letting them know what to further guess for elif(pc<cc): print("Higher") else: print("lower") #Based on the amount attempts made determines wherether the game ends if(attempts==5): endgame = True print("You loose") #Winning a reward based on the attempts made by the player if attempts == 1 and endgame == True: print("You Have Won a Car!!!") elif attempts == 2 and endgame ==True: print("You Have Won a Boat!!!") elif attempts == 3 and endgame == True: print ("You Have Won a Holidy!!!") #how the player chooses if they wish to play again or not restart = input("Do you wan't to play again, print 'yes'-'y' or 'no'-'n' ") if restart == "yes" or restart == "y": yes = True endgame = False attempts = 0 cc = random.randint(1,10) if restart == "no" or restart == "n": yes = False print("Thanks for playing") RE: Checking input is close to random num - ichabod801 - Feb-10-2019 The abs function is the absolute value. The absolute value of the difference between the guess and the target is how close they are. RE: Checking input is close to random num - Tomington - Feb-11-2019 G,day ichabod801 Thanks for your reply. I've added to my code with the abs function and got the hot, hotter and cold working. ill post the updated code. import random #variable names #cc = Computers Choice #pc = Players Choice cc = random.randint(1,20) endgame = False attempts = 0 yes = True while(yes==True): while(endgame==False): pc = int(input("choose a number between 1 & 20 ")) gap = abs(pc-cc) #print(gap) attempts = attempts+1 #determines if the player choice is the right choice then ends the game if(pc==cc): print("well done you guessed correctly") print ("Total Attempts Made " + str(attempts)) endgame = True #determining if the player choice is hotter or colder elif(gap<4): print("Very Hot") elif(gap<8): print("Getting Hot") elif(gap<12): print("Cold") elif pc<=1 or pc>=20: print("Please input A number between 1 & 20") #Based on the amount attempts made determines wherether the game ends if(attempts==5): endgame = True print("You lose") #Winning a reward based on the attempts made by the player if attempts == 1 and endgame == True: print("You Have Won a Car!!!") elif attempts == 2 and endgame ==True: print("You Have Won a Boat!!!") elif attempts == 3 and endgame == True: print ("You Have Won a Holidy!!!") #how the player chooses if they wish to play again or not restart = input("Do you wan't to play again, print 'yes'-'y' or 'no'-'n' ") if restart == "yes" or restart == "y": yes = True endgame = False attempts = 0 cc = random.randint(1,20) if restart == "no" or restart == "n": yes = False print("Thanks for playing")I think i'm using the abs function correctly although taking the abs function out of the 'gap' variable also works. Either way I've learned about the abs function and got what i was looking for to work so i appreciate your help ichabod801 |