1. Vyberte metodu kódování
* Caesarova šifra: Posune každé písmeno ve zprávě o pevný počet míst.
* Substituční šifra: Nahradí každé písmeno jiným písmenem nebo symbolem.
* Morseova abeceda: Pro znázornění písmen používá tečky a čárky.
* Binární kód: K reprezentaci písmen používá 0s a 1s.
2. Napište své funkce kódování/dekódování (příklady Pythonu)
```python
def caesar_encrypt(text, shift):
výsledek =''
pro znak v textu:
if char.isalpha():
start =ord('a') if char.islower() else ord('A')
shifted_char =chr((ord(char) - začátek + posun) % 26 + začátek)
jiný:
shifted_char =znak
výsledek +=posunutý_znak
vrátit výsledek
def caesar_decrypt(text, posun):
return caesar_encrypt(text, -shift)
def substitution_encrypt(text, klíč):
výsledek =''
pro znak v textu:
if char.isalpha():
index =ord(char.lower()) - ord('a')
shifted_char =klíč[index]
jiný:
shifted_char =znak
výsledek +=posunutý_znak
vrátit výsledek
def substitution_decrypt(text, klíč):
výsledek =''
pro znak v textu:
if char.isalpha():
index =key.index(char.lower())
shifted_char =chr(index + ord('a'))
jiný:
shifted_char =znak
výsledek +=posunutý_znak
vrátit výsledek
MORSE_CODE_DICT ={ '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':'--..',
'1':'.----', '2':'..---', '3':'...--',
'4':'....-', '5':'.....', '6':'-....',
'7':'--...', '8':'---..', '9':'----.',
'0':'-----', ', ':'--..--', '.':'.-.-.-',
'?':'..--..', '/':'-..-.', '-':'-....-',
'(':'-.--.', ')':'-.--.-'}
def morse_encrypt(text):
výsledek =''
pro znak v textu.upper():
if char !=' ':
výsledek +=MORSE_CODE_DICT.get(char, '#') + ' '
jiný:
výsledek +=' / '
vrátit výsledek.strip()
def morse_decrypt(text):
výsledek =''
morse_words =text.split(' / ')
pro slovo v morse_words:
morse_letters =word.split(' ')
pro písmeno v morse_letters:
pokud písmeno !='':
pro klíč, hodnotu v MORSE_CODE_DICT.items():
if value ==písmeno:
výsledek +=klíč
výsledek +=' '
vrátit výsledek.strip()
```
3. Pojďme si hrát!
* Vyberte tajnou zprávu: Vymyslete nějakou zábavnou zprávu, hádanku nebo dokonce vtipný vtip.
* Vyberte metodu kódování: Rozhodněte se, jakou metodu šifrování použijete (Caesarova šifra, substituce, Morseova abeceda atd.)
* Spusťte kód: K zašifrování zprávy použijte příslušnou funkci.
* Sdílejte zakódovanou zprávu: Napište kódovanou zprávu na kus papíru nebo ji zobrazte na obrazovce.
* Vyzvěte svou rodinu: Nechte je přijít na kód a rozluštit tajnou zprávu!
Příklad:
```python
zpráva ="tajná zpráva"
encrypted_message =caesar_encrypt(zpráva, 3)
print(encrypted_message) # Výstup:"Vhqvlu Phvvdjh"
```
Další tipy:
* Obtížnost: Upravte složitost metody kódování tak, aby odpovídala věku a dovednostem vaší rodiny.
* Tipy: Pokud mají hráči potíže, nabídněte jim rady nebo vodítka, která jim pomohou rozluštit kód.
* Udělejte to interaktivní: Použijte bílou tabuli, křídu nebo digitální nástroj, aby byl proces poutavější.
* Bavte se! Cílem je vytvořit nezapomenutelný a příjemný rodinný herní večer!
Pokud máte nějaké dotazy nebo chcete, abych vám podrobněji vysvětlil některý z kódů, dejte mi vědět. Šťastné kódování a dekódování!