Code:
prio_list =Yes-,When,If,While,With,No-,Behold,See,Great is,Wonderful is,Lo;,Ever,Where can I find,Look:,I searched,I found,... And
arts_list =the,one
adje_list =burning,beautiful,violent,heavy,tiny,poor,eccentric,deep,green,small,loyal,portable,honest,fearless,opulent,native,wet,cold,intense,homeless,placid,calm,cool,blue,mindfull,dull,spiritual,dark,crashing,felt,cotton,wooden,tin,copper,empty,lone,enchanted,nightime,electric,kind,putative,patient,Moog,analogue,solar,impossible,abortive,grey,milky,slumbering,deftly,dark,unmoving,paper,drying,forgotten
subs_list =flower,teacher,melone,virgin,citizen,fruit,youth,deer,thougt,poet,theologian,schoolteacher,preacher,box,idea,word,sound,utterance,mind,song,music box,mouse,glimmer,speck,pool,snowfall,heart,soul,vicar,breast,bosom,firework,firefly,tale,monk,wave,swell,hand,tide,flesh,moon,star,beacon,bee,egg,searcher,sleeper,cigarette,chimera,shadow,orca,airship,tower,body,sketch,nothing,something,coin,Earth,diatribe,inquisition,banana,math,map,liquid,way,number,zero,repeater,dial,sundry,slumber,peasant,pocket watch,dirge,raft,wrath,bud,sand,salt,wayfairer,midwife
verb_list =masking life,failing,looking,beating,fighting,dancing,growing,seeing,steering,crawling,dying,heeding,dredged,traveling,etching,talking,swimming,drinking,gulping,clasping,drooping,thining,digging,beating,glowing,bursting,crashing,releasing,enlightened,hovering,sinking,sulking,harrowing,quivering,shivering,lying awake,singing,thrashing,melting,sewing,milking,repeating,folding,pouring,dipping,wandering,winding
conc_list =must be,should be,is,perhaps should be,never is,cannot be
ends_list =above,over,as in dreams,pass sundown,over,in silence,on the hill,noble,smoke,purfume,alone,on beams,on drums,on the lake,upstream,over your shoulder,like in heaven,under the deep wood,in the village,like a boy,twice,at dusk,not ever,at noon,for tomorrow,on film,with deep swelling,intricacies,into knots,from space,in daylight,to shadowland,in daydream,to windows,for,down pipedreams,unquestioning,as ever,in darkness,in my memory,diaphanously,- speachless,only,against,against flesh,cannot be,on Pleiades,posthumously,past nighttime,in twilight,into heaven,-almost heaven,in absence,- tragedy,in Paris
seco_list =no,not one,that,the,the solitary,a scant,the more,the less,the same,perhaps the,alas the
StringSplit, prio_Arr, prio_list,`,
StringSplit, arts_Arr, arts_list,`,
StringSplit, adje_Arr, adje_list,`,
StringSplit, subs_Arr, subs_list,`,
StringSplit, verb_Arr, verb_list,`,
StringSplit, conc_Arr, conc_list,`,
StringSplit, ends_Arr, ends_list,`,
StringSplit, seco_Arr, seco_list,`,
prio_count = %prio_Arr0%
arts_count = %arts_Arr0%
adje_count = %adje_Arr0%
subs_count = %subs_Arr0%
verb_count = %verb_Arr0%
conc_count = %conc_Arr0%
ends_count = %ends_Arr0%
seco_count = %seco_Arr0%
act_prio = 0
act_arts = 0
act_adje = 0
act_subs = 0
act_verb = 0
act_conc = 0
act_ends = 0
act_seco = 0
rand_nr(From,To)
{
random, rand, From, To
return rand
}
do_poetry(LineCount)
{
global
OutPut =
loop, %LineCount%
{
act_prio := rand_nr(1,prio_count)
act_arts := rand_nr(1,arts_count)
act_adje := rand_nr(1,adje_count)
act_subs := rand_nr(1,subs_count)
act_verb := rand_nr(1,verb_count)
act_ends := rand_nr(1,ends_count)
P1 := prio_Arr%act_prio%
T1 := arts_Arr%act_arts%
A1 := adje_Arr%act_adje%
S1 := subs_Arr%act_subs%
V1 := verb_Arr%act_verb%
E1 := ends_Arr%act_ends%
loop
{
act_prio := rand_nr(1,prio_count)
act_arts := rand_nr(1,arts_count)
act_adje := rand_nr(1,adje_count)
act_subs := rand_nr(1,subs_count)
act_verb := rand_nr(1,verb_count)
act_ends := rand_nr(1,ends_count)
P2 := prio_Arr%act_prio%
T2 := arts_Arr%act_arts%
A2 := adje_Arr%act_adje%
S2 := subs_Arr%act_subs%
V2 := verb_Arr%act_verb%
E2 := ends_Arr%act_ends%
; Here would be the right place to check for ryhme-words
; e.g. by checking if E1 and E2 are ending with the same letters
if (P1<>P2) and (A1<>A2) and (S1<>S2) and (V1<>V2) and (E1<>E2)
break
}
act_conc := rand_nr(1,conc_count)
C1 := conc_Arr%act_conc%
act_seco := rand_nr(1,seco_count)
H1 := seco_Arr%act_seco%
H1S:=SubStr(H1, 1, 1)
H1F:=SubStr(H1, 2)
StringUpper, H1S, H1S
H1:=H1S . H1F
OutPut=%OutPut%`n%P1% %T1% %A1% %S1%, %V1% %E1%`n%H1% %A2% %S2% %C1% %V2% %E2%`.`n
}
return OutPut
}
Poetry := do_poetry(6)
MsgBox, %Poetry%
ExitApp