Haiku-Generator

advertisement
Haiku-Generator
Les 1 – 12/02/2003
Jan De Bock
Les 1
•
•
•
•
Overzicht commando’s
Definitie Haiku
Haiku-Generator
Oefening op Haiku-Generator
• Vragen of opmerkingen??
[email protected]
Lijst
•LIJST
-> “een groep woorden of tekens”
-> tussen [ ] geschreven
-> vb. [dit is een lijst]
Make
•Variabelen definieren
-> vb. MAKE “vb [dit is een lijst]
show :vb
[dit is een lijst]
Count
•Count
-> telt het aantal elementen van een lijst of woord
-> vb pr count “Pol
resultaat: 3
pr count [Pol vist op [rog forel snoeck]]
resultaat: 4
Random
•RANDOM
-> RANDOM num1
-> geeft willekeurig positief getal terug kleiner
dan num1
-> vb: show random 10
mogelijk resultaat: 8
Random(2)
•RANDOM
-> num RANDOM num1
-> geeft num willekeurige positieve getallen
terug kleiner dan num1
-> vb repeat 5 [show random 10]
mogelijk resultaat: 6 8 3 0 9
Item
•ITEM
-> ITEM index WOORD/LIJST/ARRAY
-> geeft het element op positie index terug
-> vb show item 2 [a b c]
resultaat: b
show item 2 “ABC
resultaat: B
Sentence
•SENTENCE
-> afkorting is SE
-> sentence a b
-> gebruikt om woorden, lijsten of combinatie
van beide met elkaar te verbinden
-> vb pr se “Pol “vist
resultaat: Pol vist
pr (se “Pol “vist “op [rog en forel])
resultaat: Pol vist op rog en forel
Output
•OUTPUT
-> afkorting is OP
-> OP waarde
-> eindigt de procedure waar het in loopt door als
resultaat de corresponderende waarde terug te
geven.
-> vb to outputvoorbeeld
OP [Dit is de output]
end
show outputvoorbeeld
resultaat: [Dit is de output]
Definitie Haiku
*Definitie Haiku
- gedicht van zeventien lettergrepen verdeeld over 3 verzen
- Normaal gezien lettergrepen 5-7-5 verdeeld
- Voorbeeld van een Haiku
in een felle dans
versmelten vis en reiger
pal boven de sloot
Haiku-Generator
*Haiku generator
- Wij willen computer een Haiku-gedicht laten genereren
- We nemen het niet nauw met voorschrift 17 lettergrepen
- Hoe??
-> vooraf gedefinieerde lijsten aanleggen van woorden
-> computer willekeurig woord laten kiezen uit lijsten
-> woorden op gepaste manier in 3 verzen zetten
Haiku-Generator
Stap 1: procedure KIES(lijst)
Computer willekeurig woord laten kiezen uit lijsten.
Hoe???
Vb uit lijst
[open schoon droog toe]
Haiku-Generator
Stap 1: procedure KIES(lijst)
to KIES :lijst
willekeurig een element kiezen uit meegegeven lijst
en dit willekeurig gekozen element teruggeven.
End
Test dit met een willekeurige lijst!
Haiku-Generator
Stap 1: procedure KIES(lijst)
to KIES :lijst
OP ITEM (1+(RANDOM COUNT :lijst)) :lijst
end
Haiku-Generator
•Haiku-Generator
-> vooraf gedefinieerde lijsten aanleggen van woorden
-> computer willekeurig woord laten kiezen uit lijsten
-> woorden op gepaste manier in 3 verzen zetten
Gegeven lijsten A, B, C, D, E, F en G (next slide)
KIES :lijst
Haiku-Generator
Gegeven 7 lijsten met woorden:
lijst A bevat: ochtend, morgen, dag, avond, nacht
lijst B bevat: gloort, vervaagt, verdwijnt, ontwaakt
lijst C bevat: nevel, mist, regen, lichtkrans
lijst D bevat: veegt, maakt, vliegt, lacht, huilt, zwaait
lijst E bevat: bloem, vlieg, vlinder, vlieger
lijst F bevat: lucht, wolken, hemel, horizon
lijst G bevat: open, schoon, droog, toe
Haiku-Generator
Stap 2: procedure Haiku
to haiku
maak lijsten A, B, C, D, E, F en G aan
Kies uit elke lijst een willekeurig element
en plaats die als volgt in de verzen
De (element uit A) (el. uit B)
en in de (el. uit C)
(el. uit D) een (el. uit E) de (el. uit F) (el. uit G)
end
lijst A bevat: ochtend, morgen, dag, avond, nacht
lijst B bevat: gloort, vervaagt, verdwijnt, ontwaakt
lijst C bevat: nevel, mist, regen, lichtkrans
lijst D bevat: veegt, maakt, vliegt, lacht, huilt, zwaait
lijst E bevat: bloem, vlieg, vlinder, vlieger
lijst F bevat: lucht, wolken, hemel, horizon
lijst G bevat: open, schoon, droog, toe
to haiku
maak lijsten A, B, C, D, E, F en G aan
Kies uit elke lijst een willekeurig element
en plaats die als volgt in de verzen
De (element uit A) (el. uit B)
en in de (el. uit C)
(el. uit D) een (el. uit E) de (el. uit F) (el. uit G)
end
Haiku-Generator
Stap 2: procedure Haiku
to haiku
MAKE “A [ochtend morgen dag avond nacht]
MAKE “B [gloort vervaagt verdwijnt ontwaakt]
MAKE “C [nevel mist regen lichtkrans]
MAKE “D [veegt maakt vliegt lacht huilt
veronderstelt zwaait]
MAKE “E [bloem vlieg vlinder vlieger]
MAKE “F [lucht wolken hemel horizon]
MAKE “G [open schoon droog toe]
PR (SE “De KIES :A KIES :B)
PR (SE “en “in “de KIES :C)
PR (SE KIES :D “een KIES :E “de KIES :F KIES :G)
Haiku-Generator
Uitbreiding: Genereer een aantal haiku-gedichten
to haiku :aantal
?
end
Haiku-Generator
Uitbreiding: Genereer een aantal haiku-gedichten
to haiku :aantal
if :aantal < 1 [stop]
MAKE "A [ochtend morgen dag avond nacht]
…
MAKE "G [open schoon droog toe]
PR (SE "De KIES :A KIES :B)
PR (SE "en "in "de KIES :C)
PR (SE KIES :D "een KIES :E "De KIES :F KIES :G)
PR "
wait 30
haiku :aantal - 1
end
Download