import sys
import time
from collections import deque
# Mors kodu tablosu.
MORS_KODU = {
'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': '--..',
'0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-',
'5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.',
'.': '.-.-.-', ',': '--..--', '?': '..--..', "'": '.----.', '!': '-.-.--',
'/': '-..-.', '(': '-.--.', ')': '-.--.-', '&': '.-...', ':': '---...',
';': '-.-.-.', '=': '-...-', '+': '.-.-.', '-': '-....-', '_': '..--.-',
'"': '.-..-.', '$': '...-..-', '@': '.--.-.', ' ': '/'
}
# Ters çevirme (Mors → Harf)
TERS_MORS = {v: k for k, v in MORS_KODU.items()}
def metinden_mors(metin):
"""Metni Mors koduna çevirir."""
mors = []
for karakter in metin.upper():
if karakter in MORS_KODU:
mors.append(MORS_KODU[karakter])
elif karakter == ' ':
mors.append('/')
return ' '.join(mors)
def morstan_metin(mors):
"""Mors kodunu metne çevirir"""
kelimeler = mors.split(' / ')
sonuc = []
for kelime in kelimeler:
harfler = kelime.split()
kelime_metin = []
for harf in harfler:
if harf in TERS_MORS:
kelime_metin.append(TERS_MORS[harf])
sonuc.append(''.join(kelime_metin))
return ' '.join(sonuc)
def satir_temizle():
"""Terminal satırını temizler"""
sys.stdout.write('\r' + ' ' * 100 + '\r')
sys.stdout.flush()
def canli_cevirici():
"""Canlı Mors çevirici"""
print("=" * 60)
print("CANLI MORS KOD CEVIRICI")
print("=" * 60)
print("\nMod secin:")
print("1. Metin -> Mors")
print("2. Mors -> Metin")
print("\nSeciminiz (1/2): ", end='')
mod = input().strip()
print("\n" + "=" * 60)
if mod == '1':
print("METIN -> MORS MODU")
print("=" * 60)
print("Yazmaya baslayin (Cikmak icin 'QUIT' yazin):\n")
while True:
print("Metin: ", end='', flush=True)
metin = input()
if metin.upper() == 'QUIT':
print("\nCikiliyor...")
break
mors = metinden_mors(metin)
print(f"Mors: {mors}")
print()
elif mod == '2':
print("MORS -> METIN MODU")
print("=" * 60)
print("Mors koduNU girin (harfler arasi bosluk, kelimeler arasi ' / ')")
print("Ornek: .... . .-.. .-.. --- / .-- --- .-. .-.. -..")
print("Cikmak icin 'QUIT' yaz:\n")
while True:
print("Mors: ", end='', flush=True)
mors = input()
if mors.upper() == 'QUIT':
print("\nCikiliyor...")
break
try:
metin = morstan_metin(mors)
print(f"Metin: {metin}")
print()
except:
print("Hatali Mors kodu.! Tekrar deneyn.\n")
else:
print("Gecersiz secim!")
if __name__ == "__main__":
try:
canli_cevirici()
except KeyboardInterrupt:
print("\n\nProgram sonlandiridi.")
sys.exit(0)