In [3]:
import random

def win():
    print('''
        ======恭喜你,你赢了=======
        
    
                ."".    ."",
                |  |   /  /
                |  |  /  /
                |  | /  /
                |  |/  ;-._ 
                }  ` _/  / ;
                |  /` ) /  /
                | /  /_/\_/\
                |/  /      |
                (  ' \ '-  |
                 \    `.  /
                  |      |
                  |      |
          
          ======恭喜你,你赢了=======
        ''')
    

def lose():
    print('''
           ======YOU LOSE=======
        
    
                

                   .-"      "-.
                  /            \
                 |              |
                 |,  .-.  .-.  ,|
                 | )(__/  \__)( |
                 |/     /\     \|
       (@_       (_     ^^     _)
  _     ) \_______\__|IIIIII|__/__________________________
 (_)@8@8{}<________|-\IIIIII/-|___________________________>
        )_/        \          /
       (@           `--------`
       
       
       
          ======YOU LOSE=======
        ''')

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_game(file_name):  ##猜诗句游戏
    with open(file_name) as fh:
        text = fh.read()
    poems = text.split()
    poem = random.choice(poems)    ##系统随机选择一句诗
    chs = get_ch_table(text.replace('\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])    ##形成3x3列表
    
    return poem 

def main():
    file_name = r'd:\temp\诗词.txt'
    score = 10
    while score>=0:
        real_poem = guess_poem_game(file_name)
        answer_poem = input('请输入猜测的诗句,回车结束,直接回车表示退出')
        if answer_poem == real_poem:
            score+=10
            print('答对了,加十分!')
            print('您当前的分数是:',score)
            if score == 100:
                win()
                return
            
        elif answer_poem == '':
            print('退出游戏')
            print('您最后得分为:',score)
            return
        
        else:
            score -= 10
            print('答错了,扣十分!')
            print('真实答案是:',real_poem)
            print('您当前的分数是:',score)
         
    else:
        lose()
        return


main()


凌 努 壮
力 知 少
岁 城 不
请输入猜测的诗句,回车结束,直接回车表示退出少壮不努力
答对了,加十分!
您当前的分数是: 20
明 众 风
吹 春 生
又 枯 光
请输入猜测的诗句,回车结束,直接回车表示退出春风吹又生
答对了,加十分!
您当前的分数是: 30
明 览 入
伤 徒 老
悲 大 星
请输入猜测的诗句,回车结束,直接回车表示退出老大徒伤悲
答对了,加十分!
您当前的分数是: 40
知 时 城
雨 徒 山
节 会 好
请输入猜测的诗句,回车结束,直接回车表示退出好雨知时节
答对了,加十分!
您当前的分数是: 50
江 云 流
月 光 星
大 涌 疑
请输入猜测的诗句,回车结束,直接回车表示退出月涌大江流
答对了,加十分!
您当前的分数是: 60
光 生 床
春 细 又
风 吹 云
请输入猜测的诗句,回车结束,直接回车表示退出春风吹又生
答对了,加十分!
您当前的分数是: 70
众 小 春
山 又 大
览 老 一
请输入猜测的诗句,回车结束,直接回车表示退出一览众山小
答对了,加十分!
您当前的分数是: 80
又 垂 春
吹 知 生
悲 老 风
请输入猜测的诗句,回车结束,直接回车表示退出春风吹又生
答对了,加十分!
您当前的分数是: 90
城 平 垂
野 星 吹
草 阔 光
请输入猜测的诗句,回车结束,直接回车表示退出星垂平野阔
答对了,加十分!
您当前的分数是: 100

        ======恭喜你,你赢了=======
        
    
                ."".    ."",
                |  |   /  /
                |  |  /  /
                |  | /  /
                |  |/  ;-._ 
                }  ` _/  / ;
                |  /` ) /  /
                | /  /_/\_/                |/  /      |
                (  ' \ '-  |
                 \    `.  /
                  |      |
                  |      |
          
          ======恭喜你,你赢了=======