|
1 | 1 | # Word-Magic-Square |
2 | 2 | 【一等奖】王诗凯 丁梓琳 张弛 |
3 | 3 |
|
4 | | -word6.csv可以测试导入词库的功能 |
| 4 | +## 一、创意来源及设计目的 |
5 | 5 |
|
6 | | -WordMagicSquareApp文件夹内有可执行文件 |
| 6 | +单词拼写是英语学习的重要组成部分之一。 |
7 | 7 |
|
8 | | -SquareWE为客户端源码 |
| 8 | +然而,对于很多英语学习者来说,记忆大量的单词拼写往往是一件困难的事情。在传统的学习方法中,反复地背诵单词拼写可能会让学习者感到乏味和枯燥,从而影响学习效果。因此,**我们设计了这个游戏**,通过**在布满英文字母的三阶立方体上点击相邻的字母组合成单词,并消除已经组合成单词的小立方体**的趣味游戏模式,不仅可以让学习者在游戏中愉快地学习单词拼写,同时也可以激发他们的学习兴趣和积极性,提高学习效果。 |
9 | 9 |
|
10 | | -SquareWE-backend为Server源码 |
| 10 | +我们相信,这个游戏可以成为一种有趣、有效的英语学习工具,能够帮助更多的英语学习者更轻松地掌握单词拼写,提高英语学习的效率和兴趣。 |
| 11 | + |
| 12 | +## 二、功能介绍 |
| 13 | + |
| 14 | +- **主页面**:有**Start Game/Player Message/Help/Exit**四个选项 |
| 15 | + |
| 16 | + - **Start Game**:点击后即可进入游戏模式选择界面。初次进入时会跳出登录提示,点击后即可输入昵称密码登录。若未注册,可先注册账号。 |
| 17 | + |
| 18 | + - **player Message**:点击后即可进入玩家信息界面, 可更换、裁剪并查看玩家头像、昵称、账号、排行榜、物品栏、单词列表等信息。点击头像即可用电脑上现有图片更换头像。如果没有登录,将提示用户进行登录。 |
| 19 | + |
| 20 | + 点击右侧按钮,即可查看好友列表,可以**添加好友,与好友聊天,邀请好友开始联机模式**。 |
| 21 | + |
| 22 | +- **选择游戏模式**: |
| 23 | + |
| 24 | + - **闯关模式**:可选择多个关卡,这些关卡有些是引入了一定的生成随机性,有些是由开发组成员精心设计的,为了体验完整,并没有加入对于关卡顺序的限制,玩家可以有更加丰富的体验,立方体边长依次增加,难度上升。 |
| 25 | + - **自定义模式**:可自主选择边长、缺失的立方体个数、按照一定的规则(见附录:设置缺失立方体位置)设置缺失立方体的位置、难度等级,**还可从自己电脑上载入要使用的单词表**。(此处单词表文件应遵循一定的规则和语法,详见附录:单词表) |
| 26 | + - 无尽模式:暂未开发 |
| 27 | + |
| 28 | + - **联机模式**:在好友界面,添加对方的好友后,通过发送对战邀请或接受对战邀请,发起邀请者进行游戏相关设置后,开始游戏。双方同时对相同立方体进行消除。 |
| 29 | + |
| 30 | +- **游戏界面**: |
| 31 | + |
| 32 | + - 每场游戏中,用户通过点击立方体**相邻面**上的字母组合成单词,每个字母被使用三次后自身所在的立方体将会被消除。在完成了规定数量的单词消除(剩余的方块个数小于等于3)或者将整个立方体消除后,玩家将会取得胜利。 |
| 33 | + - **rotate screen按钮**:点击后,可通过键盘上**w/a/d/s/q/e键控制整个大立方体的旋转**,以从各个角度看到字母。 |
| 34 | + - **rotate cube按钮**:点击后,选择任意小立方体,通过**w/a/s/d/q/e键控制该小立方体的旋转。**需要注意的是,可以选择多个小方块进行同步旋转。 |
| 35 | + |
| 36 | + - **move cube按钮**:点击后,选择任意小立方体,通过同上的按键使其向旁边有空缺的地方移动。需要注意的是,这个操作只支持选择一个面。W为向Y轴正方向移动,S为向Y轴负方向移动,A为向X轴负方向移动,D为向X轴正方向移动,Q为向Z轴负方向移动,E为向Z轴正方向移动。 |
| 37 | + |
| 38 | + - 左上角的坐标轴:这是一个参考坐标系,与Unity的左手坐标系一致并且会随着大方块的旋转而旋转,玩家进行操作时可以参考。 |
| 39 | + |
| 40 | + - 在点击方块的面时,只有相邻的面才能连续选中并连成单词,同一个单词路径不能使用超过一次,比如你发现了有一种点击方式可以连成and这个单词,那么这个点击方式只能使用一次,但是and这个单词在本局游戏中依然可以被合成。 |
| 41 | + |
| 42 | + - 当点击的面可以合成单词时,游戏右上角会提示用户**按下Space键进行合成**,此时用户可以选择按下也可以选择不按下,从而实现合成更长的单词。 |
| 43 | + |
| 44 | +- **设置界面**: |
| 45 | + |
| 46 | + - 可控制总音量、背景音量等,并可进行账户操作。 |
| 47 | + - 可以看到当前的服务器IP,由于服务器并没有挂载,因此需要在个人PC上运行Server,启动游戏后要先配置Server的IP地址和端口号。本地调试请输入127.0.0.1,端口号为8080,但是这样无法体验联机模式。建议在cmd中运行ipconfig命令获得自己的IP,并让Server在这个IP上运行,然后将这个IP和对应的端口写在设置中对应的位置并单击确定按钮。 |
| 48 | + |
| 49 | +- 商店页面:玩家在游戏过程中可以获得金币和钻石,用他们可以在商店购买商品。单击商品查看它的作用,单击purchase按钮进行购买。购买的物品将会在PlayerMessage页面中显示。 |
| 50 | + |
| 51 | +## 三、启动游戏 |
| 52 | + |
| 53 | +* **首先应该启动Server** |
| 54 | + |
| 55 | +* Server需要安装python环境,并且安装Django包 |
| 56 | + |
| 57 | +* 完成环境配置后,在SquareWE-backend目录下输入以下命令: |
| 58 | + |
| 59 | + ```shell |
| 60 | + python manage.py migrate |
| 61 | + python manage.py runserver 0.0.0.0:8080 |
| 62 | + ``` |
| 63 | + |
| 64 | + 这里0.0.0.0是本地调试的IP,8080是端口号,如果要想将Server跑在自己的PC上,并且其它计算机也可以访问,可以在cmd中输入ipconfig查看当前IP,并替换0.0.0.0,端口号可以是8080或者8000。 |
| 65 | + |
| 66 | +* 之后Server开始运行,可以正常运行WordMagicSquare。 |
| 67 | + |
| 68 | +* 不管是在什么情况下,进入游戏后**都要打开设置界面设置Server的IP地址和对应的端口号**。 |
| 69 | + |
| 70 | +* 如果你启动了一个全新的Server,那么需要先在游戏中注册一个账号。 |
| 71 | + |
| 72 | +* 为了展示排名效果,压缩包中的Server数据库有一些已有的账号。 |
| 73 | + |
| 74 | +* 如果你在Unity编辑器中启动,首先应打开Assets/Scene文件夹下的BeginUI场景,从这个场景出发程序才能够正常运行。 |
| 75 | + |
| 76 | +## 三、所用技术 |
| 77 | + |
| 78 | +* 客户端主要使用**Unity3D**进行开发; |
| 79 | + |
| 80 | +* Server实现玩家信息、排名等功能使用**Django及其原生SQL**开发。 |
| 81 | + |
| 82 | +* 自创单词排布算法进行游戏底层设计。为降低游戏难度,采用深度优先搜索算法进行单词排布。 |
| 83 | + |
| 84 | +## 四、分工情况 |
| 85 | + |
| 86 | +* 王诗凯:负责设计UI界面、场景跳转、玩家信息管理、和服务器的通讯以及方块旋转移动代码的编写。 |
| 87 | +* 丁梓琳:使用Django进行后端开发,联机模式玩家相关操作、排名、玩家信息存储等功能实现。 |
| 88 | +* 张弛:负责方块外观,联机模式框架和点击逻辑的编写。 |
| 89 | + |
| 90 | +## 五、软件构建方式和成品 |
| 91 | + |
| 92 | +* WordMagicSquare客户端: |
| 93 | + * Unity编辑器版本为2021.3.16f1c1 |
| 94 | + * github仓库:https://github.com/sendssf/SquareWE |
| 95 | +* WordMagicSquare服务器: |
| 96 | + * 使用python的Django架构 |
| 97 | + * github仓库:https://github.com/sendssf/SquareWE-backend |
| 98 | + |
| 99 | +## 附录 |
| 100 | + |
| 101 | +### 单词表 |
| 102 | + |
| 103 | + 文件类型为.csv,格式如下: |
| 104 | + |
| 105 | +``` |
| 106 | +1,word1 |
| 107 | +2,word2 |
| 108 | +3,word3 |
| 109 | +.... |
| 110 | +``` |
| 111 | + |
| 112 | +数字和单词用**半角逗号**进行分隔,数字请勿出现重复,并且按照1~n的顺序进行排列。单词中请勿出现特殊字符。 |
| 113 | + |
| 114 | +## 设置缺失立方体位置 |
| 115 | + |
| 116 | +格式如下: |
| 117 | + |
| 118 | +``` |
| 119 | +1,3,6,7... |
| 120 | +``` |
| 121 | + |
| 122 | +数字大小范围为$0-n^3$,其中n为立方体的边长,不必按照从小到大顺序,数字之间用**半角逗号**分隔,最后一个数字末尾不需要逗号。这里的数字表示缺失立方体的编号,在Unity的左手坐标系下,立方体编号从小到大依次为: |
| 123 | +$$ |
| 124 | +(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) |
| 125 | +...(0,y_{max},z_{max}),(0,y_{max}-1,0),...(x_{max},0,z_{max}) |
| 126 | +$$ |
| 127 | + |
| 128 | +# 注意! |
| 129 | + |
| 130 | +__如果发现无法连接 _Server_ ,请检查服务器代理是否关闭。__ |
| 131 | + |
| 132 | +**如果游戏中发生卡顿,可能是网络原因,timeout为5s,请等待一会儿,并检查IP和端口是否正确,以及Server是否正常运行** |
| 133 | + |
| 134 | + |
| 135 | + |
| 136 | +_希望这款游戏能够帮助你度过枯燥无味的英语学习!我们会和你一起进步!_ |
| 137 | + _——游戏开发团队_ |
11 | 138 |
|
12 | | -还有效果演示视频和用来测试头像功能的png图片文件夹 |
|
0 commit comments