Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import winsound
- import time
- import random
- morse = {
- "a": ".-",
- "b": "-...",
- "c": "-.-.",
- "d": "-..",
- "e": ".",
- "f": "..-.",
- "g": "--.",
- "h": "....",
- "i": "..",
- "j": ".---",
- "k": "-.-",
- "l": ".-..",
- "m": "--",
- "n": "-.",
- "o": "---",
- "p": ".--.",
- "q": "--.-",
- "r": ".-.",
- "s": "...",
- "t": "-",
- "u": "..-",
- "v": "...-",
- "w": ".--",
- "x": "-..-",
- "y": "-.--",
- "z": "--.."
- }
- letters = dict([[x, y] for y, x in morse.items()])
- translated = []
- freq = 800
- unit = 200
- def dit():
- winsound.Beep(freq, unit)
- def dah():
- winsound.Beep(freq, unit * 3)
- def pause():
- time.sleep(unit * 7)
- def a():
- dit()
- dah()
- def b():
- dah()
- dit()
- dit()
- dit()
- def c():
- dah()
- dit()
- dah()
- dit()
- def d():
- dah()
- dit()
- dit()
- def e():
- dit()
- def f():
- dit()
- dit()
- dah()
- dit()
- def g():
- dah()
- dah()
- dit()
- def h():
- dit()
- dit()
- dit()
- dit()
- def i():
- dit()
- dit()
- def j():
- dit()
- dah()
- dah()
- dah()
- def k():
- dah()
- dit()
- dah()
- def l():
- dit()
- dah()
- dit()
- dit()
- def m():
- dah()
- dah()
- def n():
- dah()
- dit()
- def o():
- dah()
- dah()
- dah()
- def p():
- dit()
- dah()
- dah()
- dit()
- def q():
- dah()
- dah()
- dit()
- dah()
- def r():
- dit()
- dah()
- dit()
- def s():
- dit()
- dit()
- dit()
- def t():
- dah()
- def u():
- dit()
- dit()
- dah()
- def v():
- dit()
- dit()
- dit()
- dah()
- def w():
- dit()
- dah()
- dah()
- def x():
- dah()
- dit()
- dit()
- dah()
- def y():
- dah()
- dit()
- dah()
- dah()
- def z():
- dah()
- dah()
- dit()
- dit()
- def translate():
- global translated
- dit()
- raw = input("Welcome to the morse code translator! Enter a phrase below to begin! : ")
- if "." in raw or "-" in raw:
- tbt = raw.split()
- n = 0
- for dots in tbt:
- if (dots == " " and tbt[n-1]) == " ":
- translated.append(" ")
- else:
- translated.append(letters[dots])
- n += 1
- print("Translated to Alphabets:")
- print(*translated, sep="")
- else:
- for letter in raw:
- if letter == " ":
- translated.append(" ")
- else:
- translated.append(morse[letter])
- print("Translated to Morse:")
- print(*translated)
- for i in raw:
- try:
- exec(i + "()")
- time.sleep(unit * 3 / 1000)
- except:
- pause()
- def trainmorse(wins, mode=0):
- score = 0
- wrong = []
- while score < wins:
- coded = random.choice("abcdefghijklmnopqrstuvwxyz")
- if mode == 0:
- print(morse[coded])
- exec(coded + "()")
- print("Type \"fff\" to hear the audio again")
- guess = input("What letter is this? : ").lower()
- while guess == "fff":
- exec(coded + "()")
- guess = input("What letter is this? : ").lower()
- if guess == coded:
- score += 1
- else:
- print("The right answer is: " + coded)
- if coded not in wrong:
- wrong.append(coded)
- if score != wins:
- print(str(wins - score) + " more correct guesses to end training")
- print()
- print()
- print("=== END OF TRAINING ===")
- print()
- print("SUMMARY OF INCORRECT LETTERS: ")
- for i in wrong:
- print(i.upper() + " translates to " + morse[i])
- print("===== END =====")
- trainmorse(10)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement