自制成語接龍

都是用的基礎的語法,很好理解
前提先爬取一些成語,我爬的搜出來的這些,代碼在
爬取一些成語
在這裏插入圖片描述
爬出來的txt放在同級目錄下面就好了
在這裏插入圖片描述

import random
def get_list():
    with open("chengyu.txt", "r+", encoding="utf-8") as f:
        content = f.read()
        url_list = content[:-1].split(',')
    return url_list

def get_first_word(url_list):
    randoms=random.choice(url_list)
    print('我先說一個:',randoms )
    return randoms

def zhurenjie():
    zhuren=input('我接:\n')
    return zhuren

def jiqijie(url_list,zhuren):
    chengyus=[]
    for url in url_list:
        if url[0]==zhuren[-1]:
            chengyus.append(url)
    print('俺接:',random.choice(chengyus))

if __name__=='__main__':
    print('成語接龍遊戲,請接成語或俗語,接的第一個字要跟上面的成語最後一個字相同哦\n當你不想玩的時候可以輸入"我不玩了"結束\n當你玩不過我的時候可以輸入"我認輸"哈哈哈哈')
    url_list=get_list()
    randoms=get_first_word(url_list)
    while True:
        zhuren = zhurenjie()
        if zhuren=='我不玩了':
            print('切,是不是玩不起!!拜拜')
            break
        if zhuren=='我認輸':
            print('哈哈,我贏了!!')
            break
        if zhuren not in url_list:
            print('耍賴,這不是個成語或俗語,重新說')
        elif zhuren[0] != randoms[-1]:
            print('耍賴,你沒有接最後一個字,重說')
            print('最後一個字是:',randoms[-1])
        else:
            jiqi = jiqijie(url_list, zhuren)

更新:2019年11月28日
今天想做一個結合pyqt5的桌面應用,用到成語接龍,結果我認真一跑,發現不少問題。
首先一個,上面的代碼只考慮到人會輸,沒考慮程序會輸,結果,當程序接不上來的時候它就會耍賴(報錯)
第二個bug就是,randoms不會改變,導致程序玩不下去
在這裏插入圖片描述
在這裏插入圖片描述
很明顯,當進行完一輪之後,randoms的取值並沒有隨時更新,所以導致它的取值一直不變。
針對以上兩點錯誤,我進行了修改,現在可以愉快地玩耍了、
如果還有哪裏有漏洞我沒有發現,歡迎指正~

import random
def get_list():
    with open("chengyu.txt", "r+", encoding="utf-8") as f:
        content = f.read()
        url_list = content[:-1].split(',')
    return url_list

def get_first_word(url_list):
    randoms=random.choice(url_list)
    print('我先說一個:',randoms )
    return randoms

def zhurenjie():
    zhuren=input('我接:\n')
    return zhuren

def jiqijie(url_list,zhuren):
    chengyus=[]

    for url in url_list:
        if url[0]==zhuren[-1]:
            chengyus.append(url)

    a=random.choice(chengyus)
    print('俺接:',a)
    return a

if __name__=='__main__':
    print('成語接龍遊戲,請接成語或俗語,接的第一個字要跟上面的成語最後一個字相同哦\n當你不想玩的時候可以輸入"我不玩了"結束\n當你玩不過我的時候可以輸入"我認輸"哈哈哈哈')
    url_list=get_list()
    randoms = get_first_word(url_list)

    while True:
        zhuren = zhurenjie()
        print('zhuren',zhuren)
        print('randoms',randoms)
        if zhuren=='我不玩了':
            print('切,是不是玩不起!!拜拜')
            break
        if zhuren=='我認輸':
            print('哈哈,我贏了!!')
            break
        if zhuren not in url_list:
            print('耍賴,這不是個成語或俗語,重新說')

        elif zhuren[0] != randoms[-1]:
            print('耍賴,你沒有接最後一個字,重說')
            print('最後一個字是:',randoms[-1])
        else:
            try:
                jiqi = jiqijie(url_list, zhuren)
            except:
                print('俺接不出來,你贏了!')
                break
            randoms=jiqi



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章