Java项目.docx

上传人:小飞机 文档编号:3159796 上传时间:2023-03-11 格式:DOCX 页数:13 大小:41.51KB
返回 下载 相关 举报
Java项目.docx_第1页
第1页 / 共13页
Java项目.docx_第2页
第2页 / 共13页
Java项目.docx_第3页
第3页 / 共13页
Java项目.docx_第4页
第4页 / 共13页
Java项目.docx_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java项目.docx》由会员分享,可在线阅读,更多相关《Java项目.docx(13页珍藏版)》请在三一办公上搜索。

1、Java项目Java程序设计实训 连连看小游戏 一、实训名称 连连看小游戏 二、实训项目的目的和功能 本次实训是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,因此,开始设计前学生一定要先回顾以前所学的内容,明确本次作业设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写一个基于JAVA的应用系统综合实例,来掌握Java语言编程技巧。 具体要求有以下几点: 1. 问题的描述与程序将要实现的具体功能。 2. 程序功能实现的具体设计思路或框架,并检查流程设计。 3. 代码实现。 4. 程序测试。 5. 设计小结。 三、实训项目的开发环境和所使用的技术 使用J

2、ava核心API技术,利用Eclipse或NetBeans、JBuilder集成开发环境完成实训项目,界面友好,代码的可维护性好,有必要的注释和相应的文档。 四、实训地点、日程、分组情况 实训地点: 分组情况: 日 程: 第一阶段: 1.班级分组,选定课题,查阅相关资料 半天 2.划分模块、小组成员分工 半天 3利用CASE工具进行系统设计和分析,并编制源程序 3天 第二阶段:上机调试,修改、调试、完善系统 1天 第三阶段:撰写、上交课程设计报告,上交课程设计作品源程序 1天 1 实训成绩 评语 一选题与分工 选题:连连看小游戏 分工: 姓名 编写文档 程序编码 课程设计总结 所做工作 查阅相

3、关的书籍,搜集资料 二问题描述及设计思路 1. 问题描述:连连看小游戏。设计JDK界面的连连看小游戏,用户可以通过点击鼠标消除相同数字来结束游戏。 2. 设计思路:本程序功能不是太复杂,主要工作是界面的设计。为减少通信接口设计,所有功能均在一个类中实现。程序中主要函数列表如下: 函数名称 函数功能简介 public class lianliankan implements 构建主面板 ActionListener public void init public void randomBuild public void fraction public void reload private vo

4、id initTimer 程序入口 随机数的建立 实现计分 实现游戏重置 实现计时 三具体设计 1.程序代码 import javax.swing.*; import java.awt.*; 2 import java.awt.event.*; public class lianliankan implements ActionListener JFrame mainFrame; / 主面板 Container thisContainer; static long startTime, endTime; static Timer timer = null; int maxTime; int t

5、ime = 0; JPanel centerPanel, southPanel, northPanel; / 子面板 JButton diamondsButton = new JButton65;/ 游戏按钮数组 JButton exitButton, resetButton, setButton, newlyButton; / 退出,重列,设置,重新开始按钮 JLabel fractionLable = new JLabel(0); / 分数标签 JLabel timeLable = new JLabel(0);/ 时间标签 JButton firstButton, secondButton

6、; / 分别记录两次被选中的按钮 int grid = new int87;/ 储存游戏按钮位置 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.getContentP

7、ane; 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 =

8、0; cols 6; cols+) for (int rows = 0; rows 5; rows+) diamondsButtoncolsrows = new JButton(String .valueOf(gridcols + 1rows + 1); diamondsButtoncolsrows.addActionListener(this); centerPanel.add(diamondsButtoncolsrows); 3 exitButton = new JButton(退出); exitButton.addActionListener(this); resetButton = n

9、ew 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);

10、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 /

11、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 4 initTimer; startTime = System.currentTimeMill

12、is/1000; int save = new int30; int n = 0, cols, rows; int grid = new int87; for (int i = 0; i = 6; i+) for (int j = 0; j = 0) cols = (int) (Math.random * 6 + 1); rows = (int) (Math.random * 5 + 1); while (gridcolsrows != 0) cols = (int) (Math.random * 6 + 1); rows = (int) (Math.random * 5 + 1); this

13、.gridcolsrows = saven; n-; mainFrame.setVisible(false); pressInformation = false; / 这里一定要将按钮点击信息归为初始 init; for (int i = 0; i 6; i+) for (int j = 0; j 5; j+) if (gridi + 1j + 1 = 0) diamondsButtonij.setVisible(false); public void estimateEven(int placeX, int placeY, JButton bz) public void xiao / 相同的

14、情况下能不能消去。 if (x0 = x & (y0 = y + 1 | y0 = y - 1) 5 | (x0 = x + 1 | x0 = x - 1) & (y0 = y) / 判断是否相邻 remove; else for (j = 0; j j) / 如果第二个按钮的Y坐标大于空按钮的Y坐标说明第一按钮在第二按钮左边 for (i = y - 1; i = j; i-) / 判断第二按钮左侧直到第一按钮中间有没有按钮 if (gridxi != 0) k = 0; break; else k = 1; / K=1说明通过了第一次验证 if (k = 1) linePassOne; i

15、f (y j) / 如果第二个按钮的Y坐标小于空按钮的Y坐标说明第一按钮在第二按钮右边 for (i = y + 1; i = j; i+) / 判断第二按钮左侧直到第一按钮中间有没有按钮 if (gridxi != 0) k = 0; break; else k = 1; if (k = 1) linePassOne; if (y = j) linePassOne; if (k = 2) 6 if (x0 = x) remove; if (x0 x) for (n = x0; n x) for (n = x0; n = x + 1; n-) if (gridnj != 0) k = 0; b

16、reak; if (gridnj = 0 & n = x + 1) remove; for (i = 0; i i) for (j = x - 1; j = i; j-) if (gridjy != 0) k = 0; break; else k = 1; if (k = 1) rowPassOne; 7 if (x i) for (j = x + 1; j = i; j+) if (gridjy != 0) k = 0; break; else k = 1; if (k = 1) rowPassOne; if (x = i) rowPassOne; if (k = 2) if (y0 = y

17、) remove; if (y0 y) for (n = y0; n y) for (n = y0; n = y + 1; n-) if (gridin != 0) k = 0; break; 8 if (gridin = 0 & n = y + 1) remove; public void linePassOne if (y0 j) / 第一按钮同行空按钮在左边 for (i = y0 - 1; i = j; i-) / 判断第一按钮同左侧空按钮之间有没按钮 if (gridx0i != 0) k = 0; break; else k = 2; / K=2说明通过了第二次验证 if (y0

18、j) / 第一按钮同行空按钮在与第二按钮之间 for (i = y0 + 1; i 100) int result=JOptionPane.showConfirmDialog(thisContainer, 时间到了!是否重新开始?,提醒 ,JOptionPane.YES_NO_OPTION); timer.stop; timer=null; if (result = JOptionPane.YES_OPTION) reload; else thisContainer.setVisible(false); timer.stop; timeLable.setText(String.valueOf(

19、100-(endTime-startTime); ; timer = new javax.swing.Timer(1000, actionListener); timer.start; public static void main(String args) lianliankan llk = new lianliankan; llk.randomBuild; llk.init; 2.程序运行 运用jar命令打包后如下: 10 主界面如下: 游戏主界面 游戏进行 11 游戏时间结束 四课程设计总结 经过一周的实训,虽然实训的时间不长,但是总体上还是受益多多。在以前,学习java的时候,虽然也经

20、常上机操作,但是更多的是对于理论的理解。正是这次实训,它让我明白,java12 并不是一次简单的上机操作,它是一门语言,一门不是很复杂但却并不简单的计算机语言,它很实用,无需平台的限制,几百行代码就可以实现程序的操作。 实训期间,在老师的建议下,我们成立了项目小组,进行了明确的分工,有的查阅相关书籍、搜集资料,有的编写文档,有的编写代码,有的设计总结。在项目进行时,难免会有一些困难,通过我们小组的积极努力,通过请教老师和其他同学,我们化解了这些困难。 在实际操作过程中,我们更加熟练地掌握了Eclipse的使用,知道如何通过构造函数实现窗体的布局和容器的加载,如何运用到了GUI应用程序、继承、构

21、造、包等相关知识。同时,它也让我知道,学习中我们必须边总结边学习,对老师讲解的任何方法和类都不要放过,不管是否简单都要乐于的接受,因为老师既然讲了,那就一定有它的道理。 我给我个人的综合评价是中等。在对待java这门课程时,个人认为,态度第一,兴趣是关键。因为,只有当你自己付出之后,程序运行成功时,才会产生那种自豪感,所以,一定要有自己的东西。因为有兴趣,才会想充分理解程序当中的细节,才会更好的把支离破碎的知识融会贯通,而我在这方面做的却远远不够。 感谢老师,感谢这次实训,使他们让我充分认识到自己的不足,是他们让我找到了自己今后的方向。虽然这学期的java结束了,但我对java这门语言的学习并没有结束。相信我,我会努力,我相信,我会收获。 五参考资料 1. java项目开发案例精粹作者 曲培新等 ,电子工业出版社 2. Java编程那些事儿 作者:陈跃峰、李中彬、谷骁勇 清华大学出版社 3. JAVA程序设计 作者:高晓黎,刘博等 清华大学出版社 4. 13

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号