(published: May. 10, 2001)
これはゲームではなく、俳句を自動生成するプログラムです。
実行すると俳句を自動的に詠みます。 yキーを押すことで、何度でも詠みなおしが出来ます。
など、不正な文字列の発生をほぼ完全に排除しています。
1 randomize 2 dim h$(16),f$(17),v$(2) 10 h$(0)="かさたはわがざだばぱ" 11 h$(1)="きしちひぎじぢびぴ" 12 h$(2)="くすつふぐずづぶぷ" 13 h$(3)="けせてへげぜでべぺ" 14 h$(4)="こそとほごぞどぼぽ" 15 h$(5)="ゃゅょ" 16 h$(6)="を" 17 h$(7)="ー" 18 h$(8)="ん" 19 h$(9)="っ" 20 h$(10)="あなまやら" 21 h$(11)="いにみり" 23 h$(12)="うぬむゆる" 24 h$(13)="えねめれ" 25 h$(14)="おのもよろ" 26 h$(15)="ぁぃぇぉ" 27 h$(16)="ぅ" 28 v$(0)="きしちにひみりぎじぢびぴ" 29 v$(1)="うくすつぬふむるぐずづぶぷ" 30 v$(2)="と" 90 cls 100 for x%=1 to 17 101 h$=h$(0)+h$(1)+h$(2)+h$(3)+h$(4) 102 if x%=1 or x%=6 or x%=13 then h$=h$+h$(10)+h$(11)+h$(12)+h$(13)+h$(14):goto 129 103 if kinstr(h$(9),f$(x%-1))=0 then h$=h$+h$(10)+h$(11)+h$(12)+h$(13)+h$(14) 111 if kinstr(v$(0),f$(x%-1))<>0 then h$=h$+h$(5) 112 if kinstr(h$(6)+h$(9),f$(x%-1))=0 then h$=h$+h$(6) 113 if kinstr(h$(7)+h$(8)+h$(9),f$(x%-1))=0 then h$=h$+h$(7) 114 if kinstr(h$(6)+h$(7)+h$(9),f$(x%-1))=0 then h$=h$+h$(8) 115 if kinstr(h$(9),f$(x%-1))=0 then h$=h$+h$(9) 116 if kinstr(v$(1),f$(x%-1))<>0 then h$=h$+h$(15) 117 if kinstr(v$(2),f$(x%-1))<>0 then h$=h$+h$(16) 129 h%=klen(h$) 130 m%=int(rnd(1)*h%)+1 131 m$=kmid$(h$,m%,1) 132 if kinstr(h$(5)+h$(15)+h$(16),m$)<>0 then f$(x%-1)=f$(x%-1)+m$:goto 101 133 f$(x%)=m$ 160 next x% 161 for x%=1 to 17 162 print f$(x%); 163 if x%=5 or x%=12 or x%=17 then print 164 next x% 169 print 170 print "retr[y]/e[n]d"; 180 k$=inkey$:if k$="y" then 90 190 if k$<>"n" then 180 200 end