Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
63 lines (56 sloc) 2.84 KB
''' επέκταση από το http://pythonies.mysch.gr/chapters/guess.pdf
Εδώ θα προστεθεί η εκφώνηση (όταν παγιωθεί) ώστε το πρόγραμμα
να είναι αυτοτελές.
'''
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)
# ο μυστικός αριθμός δεν έχει εντοπιστεί
found = False
# ορισμός μέγιστου πλήθους προσπαθειών
tries = 4
# επανάληψη: τερματίζεται όταν
# βρεθεί ο αριθμός ή εξαντληθούν οι προσπάθειες
while not found and tries > 0:
# εμφάνιση και μείωση προσπαθειών
print("Απομένουν", tries, "προσπάθειες.")
tries = tries - 1
# επιλογή αριθμού από το χρήστη
number = readNumber(low,high)
# έλεγχος αριθμού και εμφάνιση μηνύματος
if number < low:
print("Λάθος. Ο μυστικός αριθμός είναι μεγαλύτερος.")
elif number > high:
print("Λάθος. Ο μυστικός αριθμός είναι μικρότερος.")
elif number == low == high:
print("Σωστά!")
# ο μυστικός αριθμός εντοπίστηκε
found = True
elif number - low < high - number:
# επιλέγεται το διάστημα ανάμεσα στο number και στο high
# επειδή είναι μεγαλύτερο
print("Λάθος. Ο μυστικός αριθμός είναι μεγαλύτερος.")
low = number + 1
else:
# επιλέγεται το διάστημα ανάμεσα στο number και στο low
# επειδή είναι μεγαλύτερο
print("Λάθος. Ο μυστικός αριθμός είναι μικρότερος.")
high = number - 1
# μετά την επανάληψη
# εμφάνιση μηνύματος αν δεν έχει βρεθεί ο αριθμός.
if not found:
print("Ο μυστικός αριθμός ήταν ο", random.randint(low, high))
You can’t perform that action at this time.