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()

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.