# 人工無能俳句アプリ 5/30/2025
# まずはお遊びとして、有名俳句を上の句、中の句、下の句を三つのfileに分けてランダムに組み合わせして出来上がった俳句(?)です。
# 季語[index][2]は入っていません。
# では出来上がった句を見ていきましょう。
import PySimpleGUI as sg
import random
import time
with open("有名俳句202句.txt", "r") as f: # Exceでfile作成の場合はencoding="utf-8"が無くても動作する。
list = f.readlines() #txt要素区切りtab, 要素内は空白はNG。
word_list = []
kami_list = []
naka_list = []
shimo_list = []
word_list = []
#print(list) # ['赤い椿\u3000白い椿と\u3000落ちにけり\t春\t河東碧梧桐\n', '~
#print("16 単語数 : ", len(list)) # 16
for i in list:
words = i.split()
word_list.append(words)
#print("21 word_list: ", word_list)# OK
#[['赤い椿', '白い椿と', '落ちにけり', '春', '河東碧梧桐'], ~
#['秋深き', '隣は何を', 'する人ぞ', '秋', '松尾芭蕉'], ~]]
index = random.randint(0,len(list)-1) #randrange(a,b,)の場合はa~bまで発生する
#print("26: ", word_list[index]) # ['梅が香に', 'のっと日の出る', '山路かな', '春', '松尾芭蕉']
#print("27 上の句: ", word_list[index][0]) # OK 梅が香に
kaminoku = word_list[index][0] #OK
print("30上の句 :", kaminoku) #OK
index = random.randint(0,len(list)-1)
#print("33: ", word_list[index]) # ['梅が香に', 'のっと日の出る', '山路かな', '春', '松尾芭蕉']
#print("34 中の句: ", word_list[index][0]) # OK 梅が香に
nakanoku = word_list[index][1] #OK
print("36 中の句 :", nakanoku) #OK
index = random.randint(0,len(list)-1)
#print("39: ", word_list[index])
#print("40 下の句: ", word_list[index][2])
shimonoku = word_list[index][2]
print("42 下の句 :", shimonoku)
haiku = kaminoku + " " + nakanoku + " " + shimonoku
print("1st run時の俳句:",haiku)
layout = [
[sg.Text('一句目'), sg.InputText(" ", key='一句目')],
[sg.Text('二句目'), sg.InputText(" ",key='二句目')],
[sg.Text('三句目'), sg.InputText(" ", key='三句目')],
[sg.Text('四句目'), sg.InputText(" ", key='四句目')],
[sg.Text('五句目'), sg.InputText(" ", key='五句目')],
[sg.Text('六句目'), sg.InputText(" ", key='六句目')],
[sg.Button('Start/Next' ,key='next')]
]
#make the window
window = sg.Window('人工無能俳句', layout)
while True:
event, values = window.read()
# end of application by X button
if event == sg.WINDOW_CLOSED or event == '終了':
break
if event == 'next':
#一句目
index_1a = random.randint(0, len(list)-1)
index_1b = random.randint(0, len(list)-1)
index_1c = random.randint(0, len(list)-1)
kaminoku = word_list[index_1c][0]
nakanoku = word_list[index_1b][1]
shimonoku = word_list[index_1c][2]
window['一句目'].Update(" "+kaminoku+ " "+nakanoku + " "+ " " + shimonoku)
#二句目
index_2a = random.randint(0, len(list)-1)
index_2b = random.randint(0, len(list)-1)
index_2c = random.randint(0, len(list)-1)
kaminoku = word_list[index_2a][0]
nakanoku = word_list[index_2b][1]
shimonoku = word_list[index_2c][2]
window['二句目'].Update(" "+kaminoku+ " "+nakanoku + " "+ " " + shimonoku)
#三句目
index_3a = random.randint(0, len(list)-1)
index_3b = random.randint(0, len(list)-1)
index_3c = random.randint(0, len(list)-1)
kaminoku = word_list[index_3a][0]
nakanoku = word_list[index_3b][1]
shimonoku = word_list[index_3c][2]
window['三句目'].Update(" "+kaminoku+ " "+nakanoku + " "+ " " + shimonoku)
#四句目
index_4a = random.randint(0, len(list)-1)
index_4b = random.randint(0, len(list)-1)
index_4c = random.randint(0, len(list)-1)
kaminoku = word_list[index_4a][0]
nakanoku = word_list[index_4b][1]
shimonoku = word_list[index_4c][2]
window['四句目'].Update(" "+kaminoku+ " "+nakanoku + " "+ " " + shimonoku)
#五句目
index_5a= random.randint(0, len(list)-1)
index_5b = random.randint(0, len(list)-1)
index_5c = random.randint(0, len(list)-1)
kaminoku = word_list[index_5a][0]
nakanoku = word_list[index_5b][1]
shimonoku = word_list[index_5c][2]
window['五句目'].Update(" "+kaminoku+ " "+nakanoku + " "+ " " + shimonoku)
#六句目
index_6a = random.randint(0, len(list)-1)
index_6b = random.randint(0, len(list)-1)
index_6c = random.randint(0, len(list)-1)
kaminoku = word_list[index_6a][0]
nakanoku = word_list[index_6b][1]
shimonoku = word_list[index_6c][2]
window['六句目'].Update(" "+kaminoku+ " "+nakanoku + " "+ " " + shimonoku)
window.close()
# こんな傑作がNextボタンを押すと次々と出来上がります。
