java连连看
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机学院 《面向对象程序设计》课程设计报告
《面向对象程序设计》
课程设计报告
题目: 连连看游戏设计
专业: 网络工程
班级: 15(2)班
姓名: 卢山
指导教师: 杨星
成绩:
计算机学院
2017年5月18日
2016-2017学年 第2学期
目录
1设计内容及要求 (3)
1.1设计内容 (3)
1.2设计要求 (3)
2概要设计 (4)
2.1功能目标 (4)
2.2游戏规则 (4)
3 具体设计与实 (5)
3.1界面设计与实现 (5)
3.2程序算法设计 (7)
4 运行结果界面 (10)
5 结束语 (12)
6 参考文献 (13)
附源程序: (13)
1设计内容及要求
1.1设计内容
游戏规则是模仿网络上普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。在两张想同图片所能连通的所有路径中,如果存在一条转弯点不多于两个的路径,就可以消去;如果没有,则不予处理。
1.2设计要求
1)系统采用图片连连看的方式,界面美观友好,用户使用灵活、方便。
2)实现用户登录注册功能。
3)图片的消除、排列清晰。
4)计分自动完成,提高工作效率。
5)用进度条来表现用掉的时间。
6)实现多条件查询。
7)可方便快捷地进行下一盘游戏,并且两盘的分数在规定的时间内会叠加起来。
8)操作员可以随时退出游戏。
9)对用户输入的信息,系统进行严格的信息检验,尽可能排除人为的错误。
10)系统最大限度地实现了易维护性和易操作性。
11)系统运行稳定、安全可靠。
2概要设计
2.1功能目标
1)该游戏开始前,将设置一个用户登录注册界面,如果没有注册的玩家在按下“注册”按钮后将进入注册界面,玩家需要填写用户名,密码,性别等信息完成注册,再进入登录界面,输入用户名和密码按下“确定”后就将进入游戏界面,开始游戏。
2)游戏中将有“退出”功能,选择退出命令后程序将终止执行,关闭窗口。还将有“再来一局”功能,选择再来一局命令后程序将对图片重新排列,重新开始游戏。该游戏还有一个时间倒计时的进度条,提醒玩家剩余的时间,增加游戏的难度。在界面的顶部有计分功能,当玩家消去图片后就会赢得相应的分数。
2.2游戏规则
玩家可以将2 个相同图案的对子连接起来,连接线不多于3 根直线,就可以成功将对子消除。
操作:
第一次使用鼠标点击棋盘中的棋子,该棋子此时为“被选中”,以特殊方式显示;再次以鼠标点击其他棋子,若该棋子与被选中的棋子图案相同,且把第一个棋子到第二个棋子连起来,中间的直线不超过 3 根,则消掉这一对棋子,否则第一颗棋子恢复成未被选中状态,而第二颗棋子变成被选中状态。
3 具体设计与实
3.1界面设计与实现
图1 用户登录模块框图
此函数的作用是创建登录界面,检测用户登陆的合法性,并确认用户输入了合法的登录名和口令。
部分代码:
public void loginDialog() {//设置登录界面
timer = new Timer(100, this);//创建时间对象***倒计时时间100秒
login = new JDialog();//创建对象
login.setTitle("登录");//在文本框中写入名字
login.setLayout(new FlowLayout());//添加流布局
login.add(new JLabel("用户名:"));//添加标签
final JTextField name = new JTextField(10);//设置文本框长度
login.add(name);
login.add(new JLabel("密码:"));//添加标签
final JPasswordField password = new JPasswordField(10); //设置文本框长度
password.setEchoChar('*');//密码以*返回
login.add(password);
JButton confirm = new JButton("登录");//添加按钮
confirm.addActionListener(new ActionListener() {//设置一个监视器
public void actionPerformed(ActionEvent e) {
if (compareUserData(name.getText().trim(),
new String(password.getPassword()))) {
login.setVisible(false);
init();
timer.start();
} else {
JOptionPane.showMessageDialog(login, "用户名或密码错误!", "错误提示",
JOptionPane.ERROR_MESSAGE);
}
}
});
login.add(confirm);
final JDialog regDialog = new JDialog(login, "注册", true);
registerDialog(regDialog);
JButton register = new JButton("注册");//添加按钮
register.addActionListener(new ActionListener() {//设置一个监视器
public void actionPerformed(ActionEvent e) {
regDialog.setVisible(true);
}
});
login.add(register);//添加组件