Java项目(连连看小游戏)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Java程序设计实训》
连连看小游戏
一、实训名称
《连连看小游戏》
二、实训项目的目的和功能
本次实训是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,因此,开始设计前学生一定要先回顾以前所学的内容,明确本次作业设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写一个基于JA V A的应用系统综合实例,来掌握Java语言编程技巧。
具体要求有以下几点:
1. 问题的描述与程序将要实现的具体功能。
2. 程序功能实现的具体设计思路或框架,并检查流程设计。
3. 代码实现。
4. 程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。
5. 设计小结。
三、实训项目的开发环境和所使用的技术
使用Java核心API技术,利用Eclipse或NetBeans、JBuilder集成开发环境完成实训项目,界面友好,代码的可维护性好,有必要的注释和相应的文档。
四、实训地点、日程、分组情况
实训地点:
分组情况:
日程:
第一阶段:
1.班级分组,选定课题,查阅相关资料半天
2.划分模块、小组成员分工半天
3利用CASE工具进行系统设计和分析,并编制源程序3天第二阶段:上机调试,修改、调试、完善系统1天
第三阶段:撰写、上交课程设计报告,上交课程设计作品源程序(每人一份)1天
一.选题与分工
选题:连连看小游戏
二.问题描述及设计思路
1.问题描述:连连看小游戏。设计JDK界面的连连看小游戏,用户可以通过点击鼠标消除相同
数字来结束游戏。
2.设计思路:本程序功能不是太复杂,主要工作是界面的设计。为减少通信接口设计,所有功
能均在一个类中实现。程序中主要函数列表如下:
三.具体设计
1.程序代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class lianliankan
JFrame mainFrame; // 主面板
Container thisContainer;
static long startTime, endTime;
static Timer timer = null;
int maxTime;
int time = 0;
JPanel centerPanel, southPanel, northPanel; // 子面板
JButton diamondsButton[][] = new JButton[6][5];// 游戏按钮数组
JButton exitButton, resetButton, setButton, newlyButton; // 退出,重列,设置,重新开始按钮
JLabel fractionLable = new JLabel("0"); // 分数标签
JLabel timeLable = new JLabel("0");// 时间标签
JButton firstButton, secondButton; // 分别记录两次被选中的按钮
int grid[][] = new int[8][7];// 储存游戏按钮位置
static boolean pressInformation = false; // 判断是否有按钮被选中
int x0 = 0, y0 = 0, x = 0, y = 0, fristMsg = 0, secondMsg = 0, validateLV; // 游戏按钮的位置坐标
int i, j, k, n;// 消除方法控制
public void init() {
mainFrame = new JFrame("JKJ连连看");
thisContainer = mainFrame.getContentPane();
thisContainer.setLayout(new BorderLayout());
centerPanel = new JPanel();
southPanel = new JPanel();
northPanel = new JPanel();
thisContainer.add(centerPanel, "Center");
thisContainer.add(southPanel, "South");
thisContainer.add(northPanel, "North");
centerPanel.setLayout(new GridLayout(6, 5));
for (int cols = 0; cols < 6; cols++) {
for (int rows = 0; rows < 5; rows++) {
diamondsButton[cols][rows] = new JButton(String
.valueOf(grid[cols + 1][rows + 1]));
diamondsButton[cols][rows].addActionListener(this);
centerPanel.add(diamondsButton[cols][rows]);
}
}
exitButton = new JButton("退出");
exitButton.addActionListener(this);
resetButton = new JButton("重列");
resetButton.addActionListener(this);
setButton = new JButton("设置");
setButton.addActionListener(this);
newlyButton = new JButton("再来一局");
newlyButton.addActionListener(this);
southPanel.add(exitButton);
southPanel.add(resetButton);
southPanel.add(setButton);
southPanel.add(newlyButton);
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable .getText())));
northPanel.add(fractionLable);
timeLable
.setText(String.valueOf(Integer.parseInt(timeLable.getText())));
northPanel.add(timeLable);
mainFrame.setBounds(280, 100, 500, 450);
mainFrame.setVisible(true);
}
private void repaint() {
// TODO Auto-generated method stub
}
public void fraction() {
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable .getText()) + 100));
}
public void time() {
timeLable.setText(String
.valueOf(Integer.parseInt(timeLable.getText()) + 100));
}
public void reload() {