Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Checking input is close to random num
#1
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")
    
Quote
#2
The abs function is the absolute value. The absolute value of the difference between the guess and the target is how close they are.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures

Quote
#3
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
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  Can't Get Random Module! Pls Help! VictorVictus 1 104 Yesterday, 10:20 AM
Last Post: snippsat
  same number everytime when using random.randint summeringpainting 5 271 Aug-23-2019, 11:01 AM
Last Post: Malt
  Random selection EMarburg 6 168 Aug-12-2019, 01:15 AM
Last Post: ichabod801
  class random var write to array storzo 5 161 Aug-02-2019, 03:26 PM
Last Post: storzo
  Checking the presence of label using pywinauto module Malt 0 119 Jul-26-2019, 09:06 AM
Last Post: Malt
  Need to generate random numbers Gateux 8 239 Jul-19-2019, 03:37 PM
Last Post: Man_from_India
  Checking for an item in a list (if then statement) Sailnir 1 88 Jul-18-2019, 05:36 PM
Last Post: ndc85430
  Subtract value from random dictionary key:value Tolein 1 150 Jun-12-2019, 02:02 PM
Last Post: perfringo
  Unique Random ID on Table talius 2 190 May-30-2019, 01:47 PM
Last Post: michalmonday
  Multiple Random Selections with no dulpicates forrester 2 185 May-11-2019, 06:41 AM
Last Post: perfringo

Forum Jump:


Users browsing this thread: 1 Guest(s)