Skip to content
 
 

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sast2023 word game

目录

简介

本仓库是 2023 酒井科协暑培 Python 基础的课程作业。作业要求实现一个填词游戏。

「⽂章填词」是⼀个⼗分简单的⼩游戏。具体来说,出题者事先准备好⼀篇⽂章,并将其中的⼀些单词挖去;对于挖去的单词,出题者会给⼀定提⽰,例如该词的词性、褒贬、类型等;做题者看不到⽂章,只能根据提⽰随意选择单词;最终将做题者给定的单词填回原⽂,往往会达成不错的喜剧效果。 你可以和他⼈⽐拼,谁能填出最正常/⽆厘头的⽂章,同时,这也能作为学习外语、拓宽词汇量的途径。

环境依赖

python-version

streamlit-version

运行方法

图形化界面

你可以使用以下命令格式运行本游戏。

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 访问。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages