Des mots carrés

Énoncé

L'objectif de cet exercice est de faire un peu de dessin. Enfin... des dessins. On va se limiter à faire des carrés et des rectangles.

Pour cela, nous allons partir d'un mot puis le répéter le nombre de fois que l'on veut, en ligne et colonne.

Pour faire simple, il vaut mieux un bon exemple.

Exemple

Entrée

Exos,1,1

Sortie

E X O S
X O
O X
S O X E

Ou, pour un exemple avec des données différentes :

Entrée

Exos,2,2

Sortie

E X O S O X E
X O X
O X O
S O X E X O S
O X O
X O X
E X O S O X E

Le principe est donc assez simple en théorie, en pratique un peu moins.

Bonus

Vu que l'on est sur un exercice d'affichage, pour les gens motivés, vous pouvez gérer la couleur ! Une couleur par mot et, pour les croisements, une moyenne des couleurs.

Travaux réalisés

Mon code

(non finalisé)

import strutils
import sequtils

let word = "EXOS"
let len = word.len
let width = 4
let height = 4

var w1 = newSeqWith(len, newSeq[char](len))
var w2 = newSeqWith(len, newSeq[char](len))

for a in countup(0, len - 1):
for b in countup(0, len - 1):
w1[a][b] = ' '
w2[a][b] = ' '

echo word

for i, letter in word:
w1[0][i] = letter
w1[i][0] = letter

w1[len - 1][len - 1 - i] = letter
w1[len - 1 - i][len - 1] = letter

# w2 est comme w1, mais à l'envers
# [ A, B, C, D ] -> [ D, C, B, A ]
w2[0][len - 1 - i] = letter
w2[i][len - 1] = letter

w2[len - 1 - i][0] = letter
w2[len - 1][i] = letter

echo letter

echo w1
echo w2

for w in countup(0, width - 1):
for h in countup(0, height - 1):
echo $w & " ; " & $h