Slampoesi med robot

Dette prosjektet er en variant av 14641 sonetter, men denne gangen tar roboten to roller der den leser ut av to korresponderende lister. Hver liste har 36 tekstlinjer og vi har lagt inn en funksjon for at alle linjene må være gjennomlest før roboten begynner å velge fritt på nytt. For å oppnå dette må vi skrive referanser til de tekstlinjene som er valgt til nye lister, slik at vi kan sjekke hvilke linjer som er lest opp. Når alle linjene er lest opp sletter vi disse sjekklistene.
Mer om detaljene nedenfor – først kan vi lytte litt til resultatet (video til høyre). Den andre videoen (til venstre) er kun med for å vise hvordan parametrene endres mens roboten gjør sine valg. Denne gir ikke så mye mening i seg selv:




En liten stresstest gjennom natten endte med 4570 oppleste tekstlinjer. Den hadde det nok litt ensomt roboten, alene som den var på kontoret, men den holdt like standhaftig på med sitt dagen etter.

I skjermbildet til høyre ser vi scenen i ScratchX. Denne er kun brukt som referanse, siden det jo er roboten som her fremfører. Skjermen gir imidlertid god oversikt over parametrene:

"Rob1" og "Rob" to er lister som inneholder ferdigskrevne tekstlinjer, som roboten velger i tilfeldig rekkefølge,

"Line1" og "Line2" er de tekstlinjene som til enhver tid blir valgt ut i form av et tilfeldig tall fra 1 til 36. Dersom listene "avspilte" og "avspilte2" allerede inneholder det tallet som er valgt og mellomlagret i variablene "Line1" og "Line2" blir det på nytt valgt et tilfeldig tall (1 til 36).

Her er en liten svakhet i denne koden. Etter hvert som "avspilte" og "avspilte2" fylles opp blir det stadig færre verdier som oppfyller testen. Dette betyr at det mot slutten av sekvensen vil oppstå forsinkelser. Dette er en utilsiktet effekt, men som jeg har valgt å beholde. Dette fører til at roboten blir "tregere" når den har mindre å si – i seg selv et litt morsomt poeng. Men, her finns det teknik sett bedre løsninger.

Variabelen "teller" økes helt til verdien når 72. Da vil alle tesktlinjene i de to listen "Rob1" og "Rob2" være lest opp. Dermed nulles variabelen ut og de to sjekklisten "avspilte" og "avspilte2" slettes for innhold.

Variabelen "dikt" brukes for å la roboten lese tre tekstlinjer, før den bytter identitet og leser fra den andre listen.

Variabelen total er kun en testvariabel som teller opp hvor mange tekstlinjer roboten totalt leser opp.

Første del av koden. Nedenfor (den delen som ikke er synlig" blir denne gjentatt, men med variabelen "rob" satt til "0" og roboten leser ut fra listen "Rob2":