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?? jan.debock@rug.ac.be
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 Waarom +1 ? Omdat random count bv 0 -> 5 gaat gaan als er 6 elementen zijn daarom +1!!
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
maak lijsten A, B, C, D, E, F en G aan 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 end 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) end
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