In [4]:
import random

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 guess_poem(file):
    fh=open(file)
    text=fh.read()
    poems=text.split()
    poem=random.choice(poems)
    chs=get_ch_table(text.replace(r'\n', ''))

    guess_ch_table = [ch for ch in poem] 
    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 poem
        

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


何 事 扇
秋 悲 风
时 见 画
请输入猜测诗词,回车结束,直接回车表示退出游戏:何事秋风悲画扇
答对了,加十分
你当前的分数是: 20
路 画 风
事 悲 

何 秋 扇
请输入猜测诗词,回车结束,直接回车表示退出游戏:何事秋风悲画扇
答对了,加十分
你当前的分数是: 30
见 只 初
欲 若 生
如 何 人
请输入猜测诗词,回车结束,直接回车表示退出游戏:人生若只如初见
答对了,加十分
你当前的分数是: 40
风 画 何
扇 悲 秋
事 只 人
请输入猜测诗词,回车结束,直接回车表示退出游戏:何事秋风悲画扇
答对了,加十分
你当前的分数是: 50
生 如 人
纷 初 见
若 画 只
请输入猜测诗词,回车结束,直接回车表示退出游戏:
退出游戏。
你最后的分数是: 50

In [ ]: