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