1 Star 0 Fork 0

XXXZhy / SankeGame

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

1.需求分析

2.实现思路

2.1防止SQL注入

2.2数据库设计

2.3注册流程图

2.4登录流程图

2.5运行流程图

2.6判断蛇死亡

3.程序文件框架

4.小结

需求分析

1新游戏模式:

  • 双蛇PK模式:双方玩家通过吃食物增加自身长度,想尽办法围住对方,当对方头部碰到自己身体或墙壁,则可获胜,双方玩家的蛇都可以加速,吃到自己身体并不会死亡。
  • 每当有玩家吃到食物,就从地图最上方增加一行墙体,压缩蛇的生存空间,提高游戏难度。

2.选择地图功能:可以选择地图,每张地图有不同的墙体,增加游戏难度,并且每张地图都要有排行。

3.注册功能:新用户能够注册账号,可以弹出 注册用户名存在、密码两次输入不相同、注册成功 的提示。

4.登录功能:玩家可以根据自己的账号密码登录账号,如果账号密码错误或不纯在,则提示登录失败,否则提示登录成功并进入游戏界面。

5.按钮功能:提供“暂停游戏”、“继续游戏”、“重新开始”的按钮。

6.记分功能:可以显示“当前分数”,以及此地图的“历史最高分数”,当刷新最高记录后能及时更新。

7.排行榜功能:能查到当前地图的分数最高的4位玩家的名字、分数、日期。

实现思路

防止SQL注入

​ 在构造SQL查询语句时采用字符串占位的方式,防止由于单引号或其他特殊字符造成的闭合导致SQL注入;这里还可以采用特殊字符过滤的方式防止注入。构造SQL语句代码如下:

//1.获取链接
connection=DBUtil.getConnection();			
//2.sql
String sql="select * from user where username = ? and password = ?";
//3.PreparedStatement
pstmt = connection.prepareStatement(sql);
//4.占位符赋值
pstmt.setString(1, username);
pstmt.setString(2, password);
//5.执行查询,得到结果集
rs=pstmt.executeQuery();

数据库设计

用户信息——User表
Field Type Null Key Default Extra
id in (11) NO PRI NULL auto_increment
username varchar (255) YES NULL
password varchar (255) YES NULL
排行榜——Rank表
Field Type Null Key Default Extra
id int (11) NO PRI NULL auto_increment
score int (11) YES NULL
date varchar(20) YES NULL
userID int (11) YES NULL

流程图

1.注册流程图

2.登录流程图

3.游戏主要流程

4.判断蛇死亡

程序文件框架

小结

​ 在本次JAVA课程设计中,平常所学知识得到了应用,只有自己亲身开发了,才能综合灵活运用所学知识,在解决一系列BUG中也让自己遇到BUG不再无从下手和慌张。也深刻体会到JAVA“多态”和“封装”的重要性,以及工程要有序的按包分类,注释也必定要标明,增强可读性。自己也拓展了JDBC编程、GUI编编程、多线程编程和集合类的灵活运用,当然这些还远远不够,自己积极主动的自学和网上查资料是提升自己的必经之路!

源文件注释非常详细,详细请看源代码。

新手编程有许多不规范和不足的地方,仅供参考学习。

空文件

简介

山交2019《JAVA程序设计》作业 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/XXXZhy/SankeGame.git
git@gitee.com:XXXZhy/SankeGame.git
XXXZhy
SankeGame
SankeGame
master

搜索帮助