AzLearn

تمرين إعادة البناء

مولد رمز شبكي نصي

أنشئ رمزاً شبكياً نصياً ثابتاً من أي نص بدون مكتبات خارجية.

python ~15 دقيقة مبتدئ
أعد بناء الكود Rebuild

هذا هو الكود. اكتبه بنفسك.

الكود المرجعي
import argparse
import hashlib


def grid_bits(text: str, size: int) -> list[list[bool]]:
    digest = hashlib.sha256(text.encode("utf-8")).digest()
    bits = []
    for byte in digest:
        bits.extend(bool(byte & (1 << shift)) for shift in range(7, -1, -1))
    return [[bits[(row * size + col) % len(bits)] for col in range(size)] for row in range(size)]


def render_grid(text: str, size: int = 21) -> str:
    rows = []
    for row in grid_bits(text, size):
        rows.append("".join("██" if cell else "  " for cell in row))
    return "\n".join(rows)


def main() -> None:
    parser = argparse.ArgumentParser(description="Render a deterministic text grid from input.")
    parser.add_argument("text")
    parser.add_argument("--size", type=int, default=21)
    args = parser.parse_args()

    print(render_grid(args.text, args.size))


if __name__ == "__main__":
    main()
اكتب هنا