生成器游戲
- 藏頭詩
- 成語接龍(2020.9.9更新)
藏頭詩
思路:利用百度漢語這個介面爬取詩句,然后存到串列中隨機抽出對應的一句并列印,
主要引數

完整代碼
import requests
from random import choice
class Hide:
'''藏頭詩類'''
def __init__(self):
print("=" * 20 + "藏頭詩生成器" + "=" * 20)
self.url = 'https://hanyu.baidu.com/hanyu/ajax/search_list?'
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 Edg/81.0.416.68'
}
def get_ct(self):
# 輸入需要藏頭的陳述句
print("輸入要生成的藏頭句子:")
self.wd = input('')
for head in self.wd:
try:
params = {'wd':head+'開頭的詩句',
'from':'poem',
'pn':1,}
res = requests.get(url=self.url,headers=self.headers,params=params)
# 七言
list7 = []
# 五言
list5 = []
ret_array = res.json()['ret_array']
for ret in ret_array:
poem = ret['display_name'][0]
# 判斷詩句長度
if len(poem) == 7:
list7.append(poem)
elif len(poem) == 5:
list5.append(poem)
print(choice(list7))
except:
print("沒有找到符合要求的詩句")
class Idiom:
'''成語接頭類'''
def __init__(self):
print("="*20+"成語接頭生成器"+"="*20)
self.url = self.url = 'https://hanyu.baidu.com/hanyu/ajax/search_list?'
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 Edg/81.0.416.68'
}
# 存放成語
list4 = []
def get_cy(self):
try:
self.wd = input("")
while True:
params2 = {
"wd": self.wd[-1] + "開頭的成語",
"device": "pc",
"from": "home",
"pn": 1,
}
res2 = requests.get(url=self.url,headers=self.headers,params=params2)
ret_array = res2.json()['ret_array']
for ret2 in ret_array:
idiom2 = ret2["name"][0]
if len(idiom2) == 4:
self.list4.append(idiom2)
cy_tail = choice(self.list4)
print(cy_tail)
# 洗掉所有成語
del self.list4[:]
self.wd = input("")
if self.wd == "0":
print("下次再見")
break
if self.wd[-1] != cy_tail[-1]:
print("沒對上尾,這次就交給我吧")
continue
except KeyError:
print("沒有找到匹配的成語")
# 主程式
while True:
play = int(input("想玩什么?\n(1:藏頭詩,2:成語接龍,0:退出):"))
if play == 1:
Hide().get_ct()
while True:
a = input('\n輸入a繼續(回車退出):')
if a == 'a':
for i in range(4):
Hide().get_ct()
else:
break
elif play == 2:
Idiom().get_cy()
else:
print("退出游戲")
break
運行結果

成語接龍(2020.9.9更新)

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/3317.html
標籤:python
上一篇:「面向 offer 學演算法」筆面試大殺器 -- 單調堆疊
下一篇:C語言小游戲--貪吃蛇
