In [2]:
#点字成诗游戏完整代码

import random

def rules():
    print('初始分数十分,根据给出的十二个字每猜出一句诗即可得十分,满一百即为获胜。')

def gameover(): 
    print('退出游戏')
    

def team():
    print('乱世一人舞倾情之作。。。')
    
def win():
    print('恭喜你,赢得了胜利!')
   

def lose():
    print('怎么办,一不小心输了。。。')
    

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 poem_robot(file_name):
    with open(file_name) as fh:
        text = fh.read()
    poems = text.split()   #这里的文件是poems.txt,只有换行符,没有逗号
    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) < 12 :
        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(12):   #控制乱序的字的输出格式
        print(guess_ch_table[i],end=' ')
    print()
        
    return poem  #自己出题,返回正确答案???
        
def gamebegin():
    filename = r'D:\python\poems.txt'
    score = 10
    while score >0:
        real_poem = poem_robot(filename)
        answer_poem = input('请输入猜测诗句,回车结束,直接回车表示退出游戏')
        if answer_poem == real_poem:
            print('答对了,加十分')
            score += 10
            print('你当前的分数是:',score)
            print()
            if score == 100:
                win()
                print()
                return 
        elif answer_poem == '':  #????
            print('退出游戏')
            print('你最后的分数是:',score)
            break
        else:
            score -= 10
            print('答错了,减十分')
            print('成语其实是:',real_poem)
            print('你当前的分数是:',score)
            print()
    else:
        lose()
        print()
        return

def menu():
    print('''=======游戏菜单=======
    1.游戏玩法说明;
    2.开始游戏;
    3.退出游戏;
    4.制作团队;
=======游戏菜单=======''')

    
def main():
    while 1:
        menu()
        choice = int(input('请输入您的选择:'))   #输入的不是数字的时候,仍然有问题。。。
        if choice == 1:
            rules()
        elif choice == 2:
            gamebegin()
        elif choice == 3:
            gameover()
            break
        elif choice == 4:
            team()
        else:
            print('不好意思,输入错误,请重新选择')
        
    
#if __name__ == '__main()__':
#    main()
main()


=======游戏菜单=======
    1.游戏玩法说明;
    2.开始游戏;
    3.退出游戏;
    4.制作团队;
=======游戏菜单=======
请输入您的选择:2
亡 时 后 马 能 浅 庭 草 蹄 恨 没 才 
请输入猜测诗句,回车结束,直接回车表示退出游戏浅草才能没马蹄
答对了,加十分
你当前的分数是: 20

有 童 堪 何 问 借 处 酒 时 行 家 女 
请输入猜测诗句,回车结束,直接回车表示退出游戏借问酒家何处有
答对了,加十分
你当前的分数是: 30

清 时 才 杏 牧 处 雨 节 纷 明 纷 断 
请输入猜测诗句,回车结束,直接回车表示退出游戏清明时节雨纷纷
答对了,加十分
你当前的分数是: 40

犹 欲 人 纷 行 须 牧 上 断 村 魂 路 
请输入猜测诗句,回车结束,直接回车表示退出游戏路上行人欲断魂
答对了,加十分
你当前的分数是: 50

纷 明 堪 杏 节 遥 时 欲 纷 童 清 雨 
请输入猜测诗句,回车结束,直接回车表示退出游戏牧童遥指杏花村
答错了,减十分
成语其实是: 清明时节雨纷纷
你当前的分数是: 40

杏 问 亡 村 遥 童 借 牧 花 指 眼 犹 
请输入猜测诗句,回车结束,直接回车表示退出游戏牧童遥指杏花村
答对了,加十分
你当前的分数是: 50

恨 遥 清 上 节 明 借 纷 纷 雨 时 有 
请输入猜测诗句,回车结束,直接回车表示退出游戏清明时节雨纷纷
答对了,加十分
你当前的分数是: 60

酒 路 眼 莫 人 何 后 魂 欲 断 上 行 
请输入猜测诗句,回车结束,直接回车表示退出游戏路上行人欲断魂
答对了,加十分
你当前的分数是: 70

须 直 花 折 时 开 无 唱 堪 折 家 借 
请输入猜测诗句,回车结束,直接回车表示退出游戏花开堪折直须折
答对了,加十分
你当前的分数是: 80

莫 人 草 欲 明 眼 迷 乱 断 渐 花 蹄 
请输入猜测诗句,回车结束,直接回车表示退出游戏乱花渐欲迷人眼
答对了,加十分
你当前的分数是: 90

纷 时 知 家 才 节 明 雨 浅 纷 清 欲 
请输入猜测诗句,回车结束,直接回车表示退出游戏清明时节雨纷纷
答对了,加十分
你当前的分数是: 100

恭喜你,赢得了胜利!

=======游戏菜单=======
    1.游戏玩法说明;
    2.开始游戏;
    3.退出游戏;
    4.制作团队;
=======游戏菜单=======
请输入您的选择:3
退出游戏