Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
58 lines (52 sloc) 2.63 KB
''' επέκταση από το http://pythonies.mysch.gr/chapters/guess.pdf
Διατυπώστε μια εναλλακτική εκδοχή του προγράμματος, στην οποία η
while θα χρησιμοποιεί την συνθήκη number != secret, αντί για τον
έλεγχο της λογικής μεταβλητής found ή την χρήση της break.
'''
import random
def readNumber(a,b):
""" Ζητάει από το χρήστη έναν αριθμό
μεταξύ των a και b και τον επιστρέφει.
a, b: όρια για τον αριθμό (δεν ελέγχονται)
"""
# εμφάνιση προτροπής και ανάγνωση αριθμού
print("Μάντεψε τον αριθμό:", a , "-", b)
num = int(input())
# επιστροφή αριθμού
return num
# οι μεταβλητές low και high είναι τα όρια
# ανάμεσα στα οποία βρίσκεται ο μυστικός αριθμός
low = 1
high = 32
# δημιουργία τυχαίου μυστικού αριθμού
secret = random.randint(low,high)
# ορισμός μέγιστου πλήθους προσπαθειών
tries = 4
# εμφάνιση αρχικού πλήθους προσπαθειών
print("Απομένουν", tries, "προσπάθειες.")
tries = tries - 1
# επιλογή αριθμού από το χρήστη
# (ο πρώτος αριθμός θα ζητηθεί πριν από την επανάληψη
# ώστε να έχει τιμή για τον έλεγχο της συνθήκης στη while)
number = readNumber(low,high)
# επανάληψη: τερματίζεται όταν
# βρεθεί ο αριθμός ή εξαντληθούν οι προσπάθειες
while number != secret and tries > 0:
# έλεγχος αριθμού και εμφάνιση μηνύματος
if number > secret:
print("Λάθος. Είναι μικρότερος.")
high = number - 1
elif number < secret:
print("Λάθος. Είναι μεγαλύτερος.")
low = number + 1
# εμφάνιση και μείωση προσπαθειών
print("Απομένουν", tries, "προσπάθειες.")
tries = tries - 1
# επιλογή αριθμού από το χρήστη
number = readNumber(low,high)
# μετά την επανάληψη
# εμφάνιση μηνύματος αν έχει βρεθεί ο αριθμός ή όχι
if number != secret:
print("Ήταν ο", secret)
else:
print("Σωστά!")