Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- print("**********************************************")
- print("**********************************************")
- print("Καλωσόρισες στο διάσημο παιχνίδι λέξεων: Word Of Wonders.")
- print("Τώρα, θα σου δώσω κάποια γράμματα και εσύ θα πρέπει να βρεις τις λέξεις που ")
- print("μπορούν να φτιαχτούν από αυτά τα γράμματα χρησιμοποιώντας τα τουλάχιστον μία φορά.")
- print("Τα γράμματα που έχεις στην διάθεση σου είναι τα εξής: ")
- print("Μ, Α, Ι, Κ, Γ, Α")
- print("Γράψε τις λέξεις που θες: ")
- print()
- # alphabet = "abcdefghijklmnopqrstuvwxyz"
- letters = ["Μ", "Α", "Γ", "Ι", "Κ", "Α"]
- words = ["ΜΑΓΙΚΑ", "ΜΑΓΚΙΑ", "ΜΑΓΙΑ", "ΚΑΜΙΑ", "ΓΚΑΜΑ","ΜΑΙΑ", "ΓΑΙΑ", "ΑΙΜΑ", "ΑΙΓΑ", "ΑΓΙΑ", "ΙΚΑ"]
- # words = ["ΜΑΓΙΚΑ", "ΙΚΑ"] για τις δοκιμές
- solutions = words.copy()
- flag = False # Η flag αυτή μπήκε λόγω ενός bug, που ενώ έβρισκε ΣΩΣΤΗ ΛΕΞΗ ΣΤΗΝ ΛΙΣΤΑ, ΑΝ ΑΥΤΗ Η ΛΡΞΗ ΗΤΑΝ Η ΤΕΛΕΥΤΑΙΑ ΤΗΣ words ΛΙΣΤΑΣ
- # ΓΙΝΟΝΤΑΝ ΚΑΙ ΤΟ PRINT ΤΗΣ ΠΕΡΠΤΩΣΗΣ ΛΑΘΕΜΕΝΗΣ ΛΕΞΗΣ
- # ΟΠΟΤΕ ΟΡΙΣΑ ΑΡΧΙΚΗ ΤΙΜΗ ΣΤΗΝ flag False, Η ΟΠΟΙΑ ΑΛΛΑΖΕ ΣΕ TRUE !!ΜΟΝΟ!! ΟΤΑΝ ΕΙΧΑΜΕ ΣΩΣΤΗ ΛΕΞΗ
- # ΕΠΙΣΗΣ ΣΤΟΝ ΕΛΕΓΧΟ (IF) ΤΗΣ ΠΕΡΙΠΤΩΣΗΣ ΛΑΘΟΥΣ ΛΕΞΗΣ ΠΡΟΣΤΕΘΗΚΕ ΚΙ ΑΛΛΗ ΣΥΝΘΗΚΗ
- # Η ΟΠΟΙΑ ΕΛΕΓΧΕ ΑΝ Η flag ΗΤΑΝ False, δλδ αν δεν είχε αλλάξει, δλδ αν όντως είχα λάθος λέξη (Γιατί αν είχα σωστή η flag θα είχε αλλάξει σε True).
- # 1. Firstly, I check if the given word is out of bounds (length > 6 in this case)
- while words: # Όσο έχει στοιχεία η λίστα words
- word = input().upper() # Μετατρέπω την δοσμένη από τον χρήστη λέξη σε λέξη με κεφαλαία γράμματα
- if len(word) > len(letters): # Αν η λέξη είναι μεγαλύτερη από όσο πρέπει
- print("Η λέξη " + word + " έχει μήκος " + str(len(word)) + " > " + str(len(letters)))
- continue # Για να γυρίσω πίσω στην επανάληψη δίχως καμία άλλη ενέργεια
- else: # Αν η λέξη του χρήστη έχει έγκυρο μέγεθος
- for ch in word:
- chCounter = 0 # Ο chCounter θα μετρήσει τους αποτυχείς ελέγχους με κάθε γράμμα της λίστας words
- for i in range(len(letters)):
- if ch != letters[i]:
- chCounter += 1 # Αν το γράμμα ch δεν ταυτίζεται με τον i-οστό χαρακτήρα του letters, αυξάνω τον chCounter κατά 1
- if chCounter == len(letters):
- # Αν ο chCounter γίνει ίσος με len(letters) έχουν αποτύχει όλοι οι έλεγχοι "ταύτισης χαρακτήρων", σημαίνει ότι ο ch δεν είναι κάποιο γράμμα της λίστας letters
- print("Στην λέξη " + word + " υπάρχει το γράμμα " + ch + " που δεν είναι στην αρχική λίστα γραμμάτων.")
- continue
- #break
- # Έχει γίνει ο έλεγχος αν υπάρχει κάποιο γράμμα "εκτός λίστας"
- # Με το επόμενο for σαρώνω την λίστα με τις λέξεις, την λίστα words και βλέπω αν το input του χρήστη, το word,
- # ταυτίζεται με κάποιο στοιχείο i της λίστας words
- failedComparisons = 0
- for i in range(len(words)):
- if word == words[i]:
- print("Τέλεια. Βρήκες μία σωστή λέξη, την: " + word)
- #words.remove(words[i])
- flag = True
- del words[i]
- break
- else: # Κάθε φορά πο αποτυγχάει η σύγκριση της word με το στοιχείο words[i],
- failedComparisons += 1 # αυξάνω τον μετρητή failedComparisons κατά 1
- if failedComparisons == len(words) and len(words) != 0 and flag == False: # Άμα συμβαίνει αυτό, τότε ξέρω ότι όλες οι συγκρίσεις της word με τα στοιχεία της words απέτυχαν
- print("Η λέξη " + word + " δεν είναι σωστή λύση.") # άρα η word δεν είναι λύση (είναι εκτός της λίστας words)4
- # Η συνθήκη len(words) != 0 μπήκε για τον εξής λόγο
- # ΣΤΗΝ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΒΡΩ ΤΗΝ ΤΕΛΕΥΤΑΙΑ ΛΕΞΗ, ΠΧ ΤΗΝ ΙΚΑ ΤΟΤΕ ΑΥΤΟΜΑΤΑ ΜΕ ΤΟ DELETE ΤΗΣ ΛΕΞΗΣ ΑΠΟ ΤΗΝ ΛΙΣΓΑ WORDS
- # Η ΛΙΣΤΑ ΑΥΤΗ ΑΠΟΚΤΑ ΜΕΓΕΘΟΣ = 0. ΜΗΔΕΝ ΟΜΩΣ ΕΙΝΑΙ ΚΑΙ Η ΜΕΤΑΒΛΗΤΗ FailedComparisons ΠΟΥ ΜΕΤΡΑΕΙ ΤΙΣ ΑΠΟΤΥΧΙΕΣ ΣΥΓΚΡΙΣΗΣ
- # ΟΠΟΤΕ ΕΔΩ ΣΤΗΝ ΤΕΛΕΥΤΑΙΑ ΣΩΣΤΗ ΛΕΞΗ ΟΙ ΔΥΟ ΑΥΤΕΣ ΤΙΜΕΣ ΕΙΝΑΙ 0 ΚΑΙ Η ΤΕΛΕΥΤΑΙΑ ΣΥΓΚΡΙΣΗ ΜΕ ΤΗΝ IF ΘΑ ΘΕΩΡΗΘΕΙ ΕΠΙΤΥΧΗΜΕΝΗ
- # ΑΡΑ ΘΑ ΤΥΠΩΣΕΙ ΤΟ PRINT ΤΗΣ ΠΕΡΙΠΤΩΣΗΣ ΑΠΟΤΥΧΙΑΣ, ΠΡΑΓΜΑ ΠΟΥ ΕΔΩ ΔΕΝ ΣΥΜΒΑΙΝΕΙ
- # Εδώ φτάνουμε όταν ο χρήστης καταφέρει να βρει όλες τις λέξεις
- print()
- print("Μπράβο σου. Κατάφερες να βρεις και τις " + str(len(solutions)) + " λύσεις που υπάρχουν με αυτά τα γράμματα.")
- print("Όλες οι λύσεις: ")
- for i in range(len(solutions)):
- print(solutions[i])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement