Giter Club home page Giter Club logo

english_game's Introduction

english_game

设计一个html5的web应用,给6到12岁小朋友使用的用于学习英语单词的游戏,游戏界面要简单美观可爱,这个游戏有等级排名系统,单词库可以从上传的excel文件导入也可以页面中批量添加,单词发音可以是用户自己录入声音也可以对接在线API。游戏逻辑分为补全单词空缺字母和中文词意选择:1.补全单词拼写部分,题目由系统从所选择的单词库中抽取所有单词,随机空出部分字母,然后随机生成3个错误选项,题目中空缺的正确字母作为一个选项,一共4个选项,选项顺序随机打乱,在30秒内用户选择了正确的字母则给出1分,超过时间或选择错误不计分;2.中文词意选择部分,根据单词库中的中文意思记录,生成一个正确的选项,然后随机选择单词库中其他单词的中文意思,生成3个错误的选项,选项顺序随机给出,在30秒内用户选择了正确的字母则给出1分,超过时间或选择错误不计分。单词库按照添加时间、错误记录、自定义标签来整理,用户可以查看每次游戏正确和错误的单词记录,可以自定义游戏使用的单词库。所有的数据记录等需要保存到数据库中,数据库使用MongoDB。前端使用vue.js框架,后端使用python的flask框架,开发使用vscode。设计相应的模块,先不要代码实现。

为了实现这个英语单词学习的游戏,可以将应用分为以下几个模块:

登录/注册模块:为了记录用户的数据和分数,需要用户登录或注册账户。登录/注册表单可以包括用户名和密码。 单词库管理模块:管理员或用户可以上传Excel文件或手动输入单词来创建单词库,可以添加标签和自定义排序方式,可以查看单词的详细信息,例如意思、例句、图片等等。此外,管理员还可以编辑或删除单词库。 游戏模块:包括两个小游戏,补全单词拼写和中文词意选择。每个游戏分为多个等级,难度逐渐增加。游戏会在开始前显示单词库、游戏等级和倒计时。用户需要在规定时间内完成任务,可以使用提示功能或跳过某个问题,完成游戏后可以查看分数、正确答案和错误答案。 用户数据统计模块:记录用户在游戏中的得分和错误次数,并根据此为用户提供等级排名。用户可以查看自己的历史记录和成就,并可以分享记录到社交媒体平台。 设置模块:用户可以在这里自定义游戏界面、音效、背景音乐等等。 帮助模块:提供游戏规则、帮助、常见问题解答等等。 数据库模块:使用MongoDB作为后端数据库,保存用户账户信息、单词库信息、游戏成绩等数据。 以上模块可以用vue.js框架来实现前端界面,使用flask框架来实现后端逻辑。同时,需要使用第三方API来实现单词发音的功能。

后端设计方案

技术栈

Python 3.x Flask 框架 Flask-Restful 扩展 PyMongo 驱动

模块设计

单词表模块

路由: GET /words:获取所有单词列表。 GET /words/:id:获取指定单词的详细信息。 POST /words:创建新的单词。 PUT /words/:id:更新指定单词的信息。 DELETE /words/:id:删除指定单词。 字段: word_id:单词 ID。 word:单词。 meaning:单词中文意思。 level:单词等级。 create_time:创建时间。 update_time:更新时间。

用户表模块

路由: GET /users:获取所有用户列表。 GET /users/:id:获取指定用户的详细信息。 POST /users:创建新的用户。 PUT /users/:id:更新指定用户的信息。 DELETE /users/:id:删除指定用户。 字段: user_id:用户 ID。 username:用户名。 password:密码。 create_time:创建时间。 update_time:更新时间。

登录模块

路由: POST /login:用户登录。 字段: username:用户名。 password:密码。

游戏记录模块

路由: GET /games:获取所有游戏记录列表。 GET /games/:id:获取指定游戏记录的详细信息。 POST /games:创建新的游戏记录。 PUT /games/:id:更新指定游戏记录的信息。 DELETE /games/:id:删除指定游戏记录。 字段: game_id:游戏记录 ID。 user_id:用户 ID。 score:得分。 correct_answers:正确答案数。 wrong_answers:错误答案数。 start_time:开始时间。 end_time:结束时间。

单词标签模块

路由: GET /tags:获取所有标签列表。 GET /tags/:id:获取指定标签的详细信息。 POST /tags:创建新的标签。 PUT /tags/:id:更新指定标签的信息。 DELETE /tags/:id:删除指定标签。 字段: tag_id:标签 ID。 tag_name:标签名称。 description:标签描述。 create_time:创建时间。 update_time:更新时间。

用户单词模块

路由: GET /user-words:获取所有用户单词列表。 GET /user-words/:id:获取指定用户单词的详细信息。 POST /use

前端设计方案

1. 用户登录/注册模块

这个模块用于用户登录和注册。在页面中,有一个登录表单和一个注册表单。用户需要输入用户名和密码才能登录或注册。

设计要点:

登录表单和注册表单应该有相同的样式和布局 登录表单中应该有用户名和密码输入框 注册表单中应该有用户名、密码和确认密码输入框 在输入框中输入的密码应该被隐藏 点击登录按钮后应该向后端发送登录请求 点击注册按钮后应该向后端发送注册请求

2. 首页模块

这个模块是游戏的首页,用户可以在这里选择开始游戏或者管理自己的单词库。

设计要点:

首页中应该有一个开始游戏按钮和一个管理单词库按钮 开始游戏按钮应该跳转到游戏页面 管理单词库按钮应该跳转到单词库管理页面

3. 游戏页面模块

这个模块是游戏的核心部分,用户可以在这里进行单词学习和游戏。

设计要点:

游戏页面应该显示当前关卡的单词和中文释义 游戏页面应该有一个输入框,用于用户输入单词 当用户输入正确单词后,应该跳转到下一关 当用户输入错误单词后,应该弹出错误提示并保留当前关卡

4. 单词库管理页面模块

这个模块用于管理用户自己的单词库,用户可以在这里添加、删除和编辑单词。

设计要点:

单词库管理页面应该显示用户的所有单词 用户可以在页面中添加单词,添加单词的方式应该是填写一个表单 用户可以在页面中删除单词,删除单词的方式可以是点击一个删除按钮 用户可以在页面中编辑单词,编辑单词的方式可以是点击一个编辑按钮

5. 排行榜页面模块

这个模块用于显示用户的排名情况。

设计要点:

排行榜页面应该显示用户的排名情况 排名情况应该包括用户的用户名和得分 用户的得分应该根据游戏成绩计算得出

6. 用户信息页面模块

这个模块用于显示用户的个人信息和游戏成绩。

设计要点:

用户信息页面应该显示用户的个人信息和游戏成绩 个人信息应该包括用户名、密码、邮箱等 游戏成绩应该包括游戏最高分、当前分

为了更好地组织前端代码,可以将不同的页面或组件拆分为不同的Vue组件,使用Vue.js框架来构建前端。

登录/注册页面

输入框组件:输入用户名、密码等信息; 按钮组件:登录、注册; 表单验证:对用户名、密码等信息进行验证,包括非空验证、格式验证等; 消息提示:对用户进行操作反馈,如登录成功、登录失败等。

游戏主页面

游戏界面组件:展示游戏界面,包括题目、选项、计时器等; 单词选择组件:在游戏中选择单词的交互组件; 单词补全组件:在游戏中补全单词的交互组件; 排行榜组件:展示当前用户的排名信息; 等级/进度组件:展示当前用户的等级和进度信息; 导航组件:在游戏中可以导航到不同的游戏模式。

单词库页面

单词列表组件:展示当前用户所有的单词及其详细信息; 单词编辑组件:编辑或添加单词的交互组件; 标签管理组件:管理单词的标签,对单词进行分类管理。

用户信息页面

用户信息组件:展示当前用户的基本信息,如用户名、头像等; 修改密码组件:修改当前用户的密码。

公共组件

导航栏组件:展示当前页面的导航信息,包括登录状态、游戏主页、单词库等; 底部栏组件:展示当前页面的版权信息等。

技术栈

Vue.js框架:构建前端组件化应用; Vue Router:实现前端路由,实现SPA; Vuex:进行状态管理; Axios:进行前后端数据通信; Element UI:使用UI组件库,实现页面快速搭建; CSS预处理器:使用Less或Sass等,提高CSS代码的可维护性。

english_game's People

Contributors

thethirdfive avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.