大家今天跟大家唠唠我这几天搞的“偷心龙”项目,名字挺唬人,就是个练手的小玩意儿。
说起来,这事儿还得从我最近老是刷到一些短视频开始。那些个什么“霸道总裁爱上我”,“绝世高手在都市”的剧情,看得我鸡皮疙瘩都起来,但是不得不承认,确实挺上头的。我就寻思,能不能自己也搞一个类似的东西,咱不能真搞啥“偷心”,就整个好玩儿的。
第一步:定方向,找灵感。
我一开始是想做个游戏的,类似那种角色扮演,然后加点“偷心”的元素进去。但是想想,我那点游戏开发水平,估计猴年马月才能搞出来。后来一拍脑袋,干脆做个小说生成器得。用户输入一些关键词,比如“主角名字”,“目标人物”,“地点”啥的,然后程序自动生成一段“偷心”剧情,这不比做游戏简单多?
第二步:技术选型,搭环境。
方向定,接下来就是选技术。我寻思着,这玩意儿也不需要啥高性能,高并发,就图个方便快捷。Python!必须是Python!理由很简单,我熟。
Python: 主力输出,负责生成小说剧情。
Flask: 搭个简单的Web界面,让用户输入关键词。
一些常用的库: 比如random,用来随机生成一些东西。
环境搭建就更简单,Anaconda一套梭哈,啥都有。
第三步:编写核心代码。
这部分是重头戏,也是最费时间的。我先是找一些“偷心”小说的模板,然后把里面的套路总结一下,比如:
英雄救美: 主角在关键时刻出现,救下目标人物。
霸道总裁: 主角对目标人物各种壁咚,强吻。
装逼打脸: 主角扮猪吃老虎,狠狠打那些瞧不起他的人的脸。
有这些套路,我就可以开始编写代码。我把这些套路都写成函数,然后根据用户的输入,随机调用这些函数,生成不同的剧情。
python
import random
def hero_saves_beauty(protagonist, target, place):
# 生成英雄救美剧情
pass
def domineering_president(protagonist, target):
# 生成霸道总裁剧情
pass
def pretend_to_be_a_pig_and_eat_a_tiger(protagonist, place):
# 生成装逼打脸剧情
pass
# ... 其他剧情函数
def generate_story(protagonist, target, place):
story = ""
# 随机选择几个剧情函数,生成故事
functions = [hero_saves_beauty, domineering_president, pretend_to_be_a_pig_and_eat_a_tiger]
for i in range(*(3, 5)):
function = *(functions)
story += function(protagonist, target, place) + "\n"
return story
这段代码只是个示例,实际的代码比这复杂多。我花好几天时间,才把这些函数写并且能够生成一些像模像样的剧情。
第四步:美化界面,发布上线。
代码写好之后,我就用Flask搭一个简单的Web界面,让用户可以输入关键词,然后点击按钮生成小说。界面丑是丑点,但是能用就行。
python
from flask import Flask, render_template, request
app = Flask(__name__)
@*('/', methods=['GET', 'POST'])
def index():
if * == 'POST':
protagonist = *['protagonist']
target = *['target']
place = *['place']
story = generate_story(protagonist, target, place)
return render_template('*', story=story)
return render_template('*')
if __name__ == '__main__':
*(debug=True)
我把代码部署到一个免费的服务器上,让大家都可以访问。
这回“偷心龙”项目,虽然只是个小玩意儿,但是让我学到很多东西。比如:
如何用Python生成文本。
如何用Flask搭建Web界面。
如何把代码部署到服务器上。
最重要的是,我体验到创造的乐趣。虽然生成的剧情很狗血,但是看到用户开心的留言,我就觉得一切都值。
如果你也想尝试一下,不妨从一个简单的项目开始,慢慢积累经验,相信你也能做出很多有趣的东西。
还没有评论,来说两句吧...