In [1]:
import random
fh = open(r'd:\诗词大全.txt')
text = fh.read()
fh.close()

def win():
    print('恭喜你,你赢啦!')
    return
    
def lose():
    print('很遗憾,你输了。')
    return
    
def get_ch_table(line):
    ch_table = []
    for ch in line:
        if ch not in ch_table:
            ch_table.append(ch)
    return ch_table

def idiom_robot(file_name):
    with open(file_name) as fh:
        text = fh.read()
    idioms = text.split()
    idiom = random.choice(idioms)
    chs = get_ch_table(text.replace(r'\n', ''))

    guess_ch_table = [ch for ch in idiom]
    while len(guess_ch_table) < 9:
        ch = random.choice(chs)
        if ch not in guess_ch_table:
            guess_ch_table.append(ch)
    
    random.shuffle(guess_ch_table)
    
    for i in range(0,9,3):
        print(guess_ch_table[i], guess_ch_table[i+1],guess_ch_table[i+2])
    return idiom

def main():
    filename = r'd:\诗词大全.txt'
    score = 10
    while score >= 0:
        real_idiom = idiom_robot(filename)
        answer_idiom = input('请输入猜测诗词,回车结束,直接回车表示退出游戏:')
        if answer_idiom == real_idiom:
            print('答对了,加十分')
            score += 10
            print('你当前的分数是:', score)
            if score == 100:
                win()
                return
        elif answer_idiom == '':
            print('退出游戏。')
            print('你最后的分数是:', score)
            return
        else:
            score -= 10
            print('答错了,减十分')
            print('诗词其实是:', real_idiom)
            print('你当前的分数是:', score)
    else:
        lose()
        return

main()


人 见 初
风 只 生
若 如 时
请输入猜测诗词,回车结束,直接回车表示退出游戏:人生若只如初见
答对了,加十分
你当前的分数是: 20
扇 何 节
事 见 秋
风 悲 画
请输入猜测诗词,回车结束,直接回车表示退出游戏:何事秋风画悲扇
答错了,减十分
诗词其实是: 何事秋风悲画扇
你当前的分数是: 10
扇 明 清
画 何 风
事 悲 秋
请输入猜测诗词,回车结束,直接回车表示退出游戏:
退出游戏。
你最后的分数是: 10

In [ ]: