目录
本仓库是 2023 酒井科协暑培 Python 基础的课程作业。作业要求实现一个填词游戏。
「⽂章填词」是⼀个⼗分简单的⼩游戏。具体来说,出题者事先准备好⼀篇⽂章,并将其中的⼀些单词挖去;对于挖去的单词,出题者会给⼀定提⽰,例如该词的词性、褒贬、类型等;做题者看不到⽂章,只能根据提⽰随意选择单词;最终将做题者给定的单词填回原⽂,往往会达成不错的喜剧效果。 你可以和他⼈⽐拼,谁能填出最正常/⽆厘头的⽂章,同时,这也能作为学习外语、拓宽词汇量的途径。
你可以使用以下命令格式运行本游戏。
streamlit run main.py如果你准备使用命令行界面来游玩本游戏,则不需要 streamlit 的配置。
约定以下参数:
[必选] --file -f 接题库的路径
[可选] --choose -ch 接文章的名称
若没有 -ch 参数,则会随机在题库里抽取一篇文章
你可以使用以下命令格式运行本游戏。
python main_cmd.py -f example.json -ch "贵系日常"本仓库代码:
- 使用了
Streamlit构建图形化界面。 - 能够上传自定义题库。
- 使用了
try... except处理用户上传题库格式错误的情况。 - 能够在用户没有填完所有空却提交答案时显示警告。
- 能够以
.txt文件格式保存用户得到的文章。
题库使用 JSON 文件存储,格式如下:
{
"language": "zh",
"articles": [
{
"title": "我是第一篇文章的标题",
"article": "我是文章第{{1}}空,还有第{{2}}空,一直到第{{3}}空还有第{{4}}空以及第{{5}}空...空的个数没有限制。",
"hints": ["我是第一个提示", "我是第二个提示", "我是第三个提示", "我是第四个提示", "我是第五个提示,提示个数需要和空的个数相同"]
},
{
"title": "我是第二篇文章的标题",
"article": "我是文章第{{1}}空,还有第{{2}}空,一直到第{{3}}空还有第{{4}}空以及第{{5}}空...空的个数没有限制。",
"hints": ["我是第一个提示", "我是第二个提示", "我是第三个提示", "我是第四个提示", "我是第五个提示,提示个数需要和空的个数相同"]
}
]
}examples.json 中包含了丰富的样例。
可以在下拉列表中选择题库中的文章,也可以让程序在题库中随机选择一篇。
点击“下载本篇文章”按钮,能够以 .txt 格式下载生成的文章。
本游戏也部署在了 Streamlit 平台上,可以通过 word-game.streamlit.app 访问。