Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

EESAST-Software-Design-Competition/EESDC6-Word-Magic-Square

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Word-Magic-Square

【一等奖】王诗凯 丁梓琳 张弛

一、创意来源及设计目的

单词拼写是英语学习的重要组成部分之一。

然而,对于很多英语学习者来说,记忆大量的单词拼写往往是一件困难的事情。在传统的学习方法中,反复地背诵单词拼写可能会让学习者感到乏味和枯燥,从而影响学习效果。因此,我们设计了这个游戏,通过在布满英文字母的三阶立方体上点击相邻的字母组合成单词,并消除已经组合成单词的小立方体的趣味游戏模式,不仅可以让学习者在游戏中愉快地学习单词拼写,同时也可以激发他们的学习兴趣和积极性,提高学习效果。

我们相信,这个游戏可以成为一种有趣、有效的英语学习工具,能够帮助更多的英语学习者更轻松地掌握单词拼写,提高英语学习的效率和兴趣。

二、功能介绍

  • 主页面:有Start Game/Player Message/Help/Exit四个选项

    • Start Game:点击后即可进入游戏模式选择界面。初次进入时会跳出登录提示,点击后即可输入昵称密码登录。若未注册,可先注册账号。

    • player Message:点击后即可进入玩家信息界面, 可更换、裁剪并查看玩家头像、昵称、账号、排行榜、物品栏、单词列表等信息。点击头像即可用电脑上现有图片更换头像。如果没有登录,将提示用户进行登录。

      点击右侧按钮,即可查看好友列表,可以添加好友,与好友聊天,邀请好友开始联机模式

  • 选择游戏模式

    • 闯关模式:可选择多个关卡,这些关卡有些是引入了一定的生成随机性,有些是由开发组成员精心设计的,为了体验完整,并没有加入对于关卡顺序的限制,玩家可以有更加丰富的体验,立方体边长依次增加,难度上升。

    • 自定义模式:可自主选择边长、缺失的立方体个数、按照一定的规则(见附录:设置缺失立方体位置)设置缺失立方体的位置、难度等级,还可从自己电脑上载入要使用的单词表。(此处单词表文件应遵循一定的规则和语法,详见附录:单词表)

    • 无尽模式:暂未开发

    • 联机模式:在好友界面,添加对方的好友后,通过发送对战邀请或接受对战邀请,发起邀请者进行游戏相关设置后,开始游戏。双方同时对相同立方体进行消除。

  • 游戏界面

    • 每场游戏中,用户通过点击立方体相邻面上的字母组合成单词,每个字母被使用三次后自身所在的立方体将会被消除。在完成了规定数量的单词消除(剩余的方块个数小于等于3)或者将整个立方体消除后,玩家将会取得胜利。

    • rotate screen按钮:点击后,可通过键盘上w/a/d/s/q/e键控制整个大立方体的旋转,以从各个角度看到字母。

    • rotate cube按钮:点击后,选择任意小立方体,通过**w/a/s/d/q/e键控制该小立方体的旋转。**需要注意的是,可以选择多个小方块进行同步旋转。

    • move cube按钮:点击后,选择任意小立方体,通过同上的按键使其向旁边有空缺的地方移动。需要注意的是,这个操作只支持选择一个面。W为向Y轴正方向移动,S为向Y轴负方向移动,A为向X轴负方向移动,D为向X轴正方向移动,Q为向Z轴负方向移动,E为向Z轴正方向移动。

    • 左上角的坐标轴:这是一个参考坐标系,与Unity的左手坐标系一致并且会随着大方块的旋转而旋转,玩家进行操作时可以参考。

    • 在点击方块的面时,只有相邻的面才能连续选中并连成单词,同一个单词路径不能使用超过一次,比如你发现了有一种点击方式可以连成and这个单词,那么这个点击方式只能使用一次,但是and这个单词在本局游戏中依然可以被合成。

    • 当点击的面可以合成单词时,游戏右上角会提示用户按下Space键进行合成,此时用户可以选择按下也可以选择不按下,从而实现合成更长的单词。

  • 设置界面

    • 可控制总音量、背景音量等,并可进行账户操作。
    • 可以看到当前的服务器IP,由于服务器并没有挂载,因此需要在个人PC上运行Server,启动游戏后要先配置Server的IP地址和端口号。本地调试请输入127.0.0.1,端口号为8080,但是这样无法体验联机模式。建议在cmd中运行ipconfig命令获得自己的IP,并让Server在这个IP上运行,然后将这个IP和对应的端口写在设置中对应的位置并单击确定按钮。
  • 商店页面:玩家在游戏过程中可以获得金币和钻石,用他们可以在商店购买商品。单击商品查看它的作用,单击purchase按钮进行购买。购买的物品将会在PlayerMessage页面中显示。

三、启动游戏

  • 首先应该启动Server

  • Server需要安装python环境,并且安装Django包

  • 完成环境配置后,在SquareWE-backend目录下输入以下命令:

    python manage.py migrate
    python manage.py runserver 0.0.0.0:8080

    这里0.0.0.0是本地调试的IP,8080是端口号,如果要想将Server跑在自己的PC上,并且其它计算机也可以访问,可以在cmd中输入ipconfig查看当前IP,并替换0.0.0.0,端口号可以是8080或者8000。

  • 之后Server开始运行,可以正常运行WordMagicSquare。

  • 不管是在什么情况下,进入游戏后都要打开设置界面设置Server的IP地址和对应的端口号

  • 如果你启动了一个全新的Server,那么需要先在游戏中注册一个账号。

  • 为了展示排名效果,压缩包中的Server数据库有一些已有的账号。

  • 如果你在Unity编辑器中启动,首先应打开Assets/Scene文件夹下的BeginUI场景,从这个场景出发程序才能够正常运行。

三、所用技术

  • 客户端主要使用Unity3D进行开发;

  • Server实现玩家信息、排名等功能使用Django及其原生SQL开发。

  • 自创单词排布算法进行游戏底层设计。为降低游戏难度,采用深度优先搜索算法进行单词排布。

四、分工情况

  • 王诗凯:负责设计UI界面、场景跳转、玩家信息管理、和服务器的通讯以及方块旋转移动代码的编写。
  • 丁梓琳:使用Django进行后端开发,联机模式玩家相关操作、排名、玩家信息存储等功能实现。
  • 张弛:负责方块外观,联机模式框架和点击逻辑的编写。

五、软件构建方式和成品

附录

单词表

文件类型为.csv,格式如下:

1,word1
2,word2
3,word3
....

数字和单词用半角逗号进行分隔,数字请勿出现重复,并且按照1~n的顺序进行排列。单词中请勿出现特殊字符。

设置缺失立方体位置

格式如下:

1,3,6,7...

数字大小范围为$0-n^3$,其中n为立方体的边长,不必按照从小到大顺序,数字之间用半角逗号分隔,最后一个数字末尾不需要逗号。这里的数字表示缺失立方体的编号,在Unity的左手坐标系下,立方体编号从小到大依次为: $$ (0,y_{max},0),(1,y_{max},0),(2,y_{max},0),...,(x_{max},y_{max},0),(0,y_{max},1),(1,y_{max},1) ...(0,y_{max},z_{max}),(0,y_{max}-1,0),...(x_{max},0,z_{max}) $$

注意!

如果发现无法连接 Server ,请检查服务器代理是否关闭。

如果游戏中发生卡顿,可能是网络原因,timeout为5s,请等待一会儿,并检查IP和端口是否正确,以及Server是否正常运行

希望这款游戏能够帮助你度过枯燥无味的英语学习!我们会和你一起进步! ——游戏开发团队

About

【一等奖】王诗凯 丁梓琳 张弛

Resources

Stars

Watchers

Forks

Packages

No packages published