Hier mijn bijdrage voor het eerste deel van de programmeer opdracht. Alles wordt op de stack gedaan, geen enkele variable nodig.
\ Brodie generator zoals gewenst, de code bewust geheel dpANS94:
decimal
: RANDOM ( u1 -- u3 ) 31421 * 6927 + ;
hex
: CHOOSE-CHAR ( u1 -- u2 ch ) \ Kies geldig karakter
random dup \ Volgende random getal
[ 7F char ! - ] literal mod \ Zet om naar klein getal
[char] ! + ; \ Bouw karakter
\ De simpelste
: .WW0 ( u len -- )
0 ?do choose-char emit loop drop ; \ Print wachtwoord karakters
\ Nu in groepjes van vier
: .WW1 ( u len -- )
0 ?do
choose-char emit
i 4 mod 3 = if space then \ Na elke vierde teken een spatie
loop drop ;
Nu .WW0 noForth specifiek en ontdaan van alles:
hex
: SELECT-CHAR ( u0 -- u1 ch ) \ Kies geldig karakter
dm 31421 * dm 6927 + dup \ Genereer random getal
[ 7F ch ! - ] literal mod ch ! + ; \ Zet om naar karakter
: .WW0 ( x len -- )
0 ?do choose-char emit loop drop ; \ Print wachtwoord karakters