griddish.py

Created by schraf

Created on October 02, 2023

702 Bytes

Symboles utilisés pour chiffrer | Youtube channel

La fonction phrase décompose la phrase en mots. La fonction mot décompose le mot en caractères. La fonction car trace le symbole de la lettre à la position (x,y) et de taille t.

Codage de lettres : "-" correspond à 0, "|" à 1 et "+" à 2

Exemples : La lettre “A” a pour symbole “ | - - “ c’est-à-dire “100” et “B” a pour symbole “- | +” soit “012”.

En parcourant les “chiffres” de gauche à droite (on peut bien sûr faire l’inverse), la chaine “100” correspond au nombre 1 + 0 * 3 + 0 * 9 = 1 en base 3. De même “012” correspond au nombre 0 + 1 * 3 + 2 * 9 = 21. Si l’alphabet “ABC…Z” commence à la position 0, les nombres 1 et 21 sont les lettres “B” et “V”. C’est la ligne alpha dans le code ci-dessous.


from turtle import *

alpha = "BVQGAFYEJZUSWMDLICKNOHPXTR"

def line(t, a=0):
 setheading(a)
 pendown()
 fd(t)
 penup()

def car(x, y, v, t):
 n = ord(v) - 65
 penup()
 for i in range(3):
  r = n % 3
  n //= 3
  if r != 1:
   goto(x + t * i, y)
   line(t)
  if r >= 1:
   goto(x + t * i + t // 2, y - t // 2)
   line(t, 90)

def mot(x, y, m, t):
 for i, c in enumerate(m):
  d = i * (t // 2)
  car(x + d, y - d, alpha[ord(c) - 65], t)

def phrase(x, y, p, t):
 yy = y
 for i, m in enumerate(p.split(" ")):
  mot(x, yy, m, t)
  yy -= (len(m) + 1) * (t // 2)

phrase(-100, 100, "ALL HU MAN BE INGS ARE BORN FREE", 12)
phrase(0, 100, "AND E QUAL IN DIG NI TY AND RIGHTS", 12)
hideturtle()