Tovervierkant

Met de schrapkaarten kon geen interactief programma geschreven worden. De uitvoer moest printbaar zijn op “brede wagen kettingpapier” (132 karakters).

Met hulp van een formule uit het wiskunde tijdschrift Pythagoras kon ik een tover vierkant programmeren van 26×26 (!); meer paste er niet op 1 print regel (132 tekens bij ‘brede wagen’ ketting papier).

Dit is 16×16:

Anno 2025 vraag je dit simpelweg aan ‘Co-pilot’: “schrijf een python programma waarmee een tovervierkant van 25 x 25 gemaakt kan worden”

Resultaat:

def generate_magic_square(n):
    # Maak een leeg tovervierkant
    magic_square = [[0] * n for _ in range(n)]

    # Startpositie voor 1
    i, j = 0, n // 2

    # Vul het tovervierkant met getallen
    num = 1
    while num <= n * n:
        # Plaats het huidige nummer op de huidige positie
        magic_square[i][j] = num
        num += 1

        # Bereken de nieuwe positie
        newi, newj = (i - 1) % n, (j + 1) % n

        # Als de nieuwe positie al bezet is, ga een rij naar beneden
        if magic_square[newi][newj]:
            i += 1
        else:
            i, j = newi, newj

    return magic_square

# Genereer een 25x25 tovervierkant
magic_square_25x25 = generate_magic_square(25)

# Print het tovervierkant
for row in magic_square_25x25:
    print(row)

Een aanzienlijk eenvoudiger algorithme dan wat ik gebruikte!