2048小游戏 Java 课程设计报告书(3)
(1)首次运行程序(在工程文件中建立保存最高分的文件)和再次运行程序
(2)游戏结束
9
六、总结
在这次的课程设计中不仅检验了我所学习的知识,也培养了我的实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终完成整个事情。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程。这次课程设计不仅是对这学期所学知识的一种综合检验,而且也是对自己动手能力的一种提高,增强了自己实践能力。通过这次课程设计使我明白了自己知识还比较欠缺,只是学习书本知识还是远远不够的,自己不会的东西还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力。由于本次试验的很多知识都是现学现用,以致很多地方的代码显得累赘繁琐。但总体上主要功能是实现了的,并且美化了一下主界面,使得界面更加简洁。
最后也感谢老师给予的耐心指导与帮助。
总之,此次课程设计让我获益匪浅,我将会继续把它完善做好
参考文献
[1] java语言程序设计基础篇[M].机械工业出版社.2011.3.
[2] 黄晓东.Java课程设计案例精编[M].北京:中国水利水电出版社,2007.5.
[3] 求是科技. Java信息管理系统开发实例导航[M].北京:人民邮电出版社.2009.4.
源代码清单
package my2048game;
import javax.sound.sampled.*; import javax.swing.*; import java.io.*; import java.awt.*;
import java.awt.event.*; import java.util.*;
public class My2048Game extends JFrame{ //定义自己的面板
10
MyPanel mp=null; public static void main(String[] args) { // TODO Auto-generated method stub My2048Game m2048=new My2048Game(); m2048.setFocusable(true);//(设置)该对象的焦点,不能用请求焦点 对象名.requestFocus(); } //构造函数 public My2048Game() { mp=new MyPanel(); this.add(mp); //注册鼠标监听 this.addMouseListener(mp); //注册键盘监听 this.addKeyListener(mp); this.setTitle(\游戏\ this.setLocation(400, 30); this.setSize(500, 800); this.setResizable(false);//禁止调整窗口大小 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } }
class MyPanel extends JPanel implements MouseListener,KeyListener,ActionListener//动作监听器 一般用于监听按钮或者菜单的点击事件 { private int x1=0,y1=0;//按下鼠标左键的位置坐标 private int x2=0,y2=0;//释放鼠标左键的位置坐标 private int option=0;//记录鼠标移动的方向 //定义组件 private JButton jb1;//声音图标的按钮 private static boolean jb1_flag=true;//用于控制声音开关的一个标志 private boolean jb1_flag2=true;// public static boolean isJb1_flag() { return jb1_flag; } public static void setJb1_flag(boolean jb1_flag) { MyPanel.jb1_flag = jb1_flag; } private JPanel scoresPane; // 分数面板 private JPanel mainPane; // 游戏主面板 private JLabel labelMaxScores; // \最高分\标签 private JLabel m2048;//显示2048
11
private JLabel labelScores; // 当前\得分\标签 private JLabel tips;// 提示操作标签 private JLabel currentScores; private JLabel textScores; private JLabel[][] texts; // 创建文本框二维数组 private int[][] temp1 = new int [4][4]; //记录上一步的状态 private int[][] temp2 = new int [4][4]; //记录当前的状态 private int times = 16;// 记录剩余空方块数目 private int scores = 0;// 记录分数 private int maxscores=0;//最高分 private int temp1scores = 0; private int temp2scores = 0; private int p1, p2, p3, p4;// 用于判断游戏是否失败 private int biaoji = 1; //标记能否移动 Font font = new Font(\设置字体类型和大小(标签字体的设置) Font font2 = new Font(\主面板的数字字体的设置 Random random = new Random(); //构造函数 public MyPanel() { super();//调用父类的构造方法 //在构造函数中创建组件 this.setLayout(null);// 设置空布局 this.setBackground(new Color(2,150,220));//设置该MyPanel类的背景颜色 scoresPane=new JPanel();//创建分数显示面板 scoresPane.setBackground(new Color(5,150,220));//设置分数面板的背景颜色 scoresPane.setBounds(0,0,482,100);//设置该面板显示的位置和长宽 //scoresPane.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, Color.yellow));//设置该面板的边框 this.add(scoresPane);//将分数面板加载到MyPanel面板上 scoresPane.setLayout(null);//设置得分面板的布局为空 m2048=new JLabel(\创建标签 //m2048.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, Color.yellow)); m2048.setFont(new Font(\宋体\设置字体类型和大小 m2048.setBounds(0,0,120,100); scoresPane.add(m2048); currentScores = new JLabel();// 当前得分标签 currentScores.setText(\ currentScores.setFont(new Font(\宋体\设置字体类型和大小 //currentScores.setBorder(BorderFactory.createMatteBorder(0,0, 0, 1, Color.yellow)); currentScores.setBounds(240,0, 140, 100);// 设置最高分标签的位置尺寸 scoresPane.add(currentScores);// 将最高分标签添加到得分容器中 //从文件取得最高分的数据 Recorder.getRecording();
12
maxscores=Recorder.getMaxscores_2048(); labelMaxScores = new JLabel(\最高得分标签 labelMaxScores.setFont(new Font(\宋体\设置字体类型和大小 //labelMaxScores.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, Color.yellow)); labelMaxScores.setBounds(380, 0, 120, 100); scoresPane.add(labelMaxScores);// 将得分标签添加到分数面板中 jb1=new JButton(new ImageIcon(\声音图标.jpg\ jb1.setBounds(433,120,45,30); this.add(jb1); //注册按钮监听 jb1.setActionCommand(\ jb1.addActionListener(this); mainPane = new JPanel();// 创建游戏主面板 mainPane.setBounds(18, 150, 460, 460);// 设置主面板位置尺寸 mainPane.setBackground(new Color(40,190,240)); //mainPane.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, Color.yellow)); this.add(mainPane); mainPane.setLayout(null);// 设置空布局 texts = new JLabel[4][4];// 创建文本框二维数组 for (int i = 0; i < 4; i++) {// 遍历数组 for (int j = 0; j < 4; j++) { texts[i][j] = new JLabel();// 创建标签 texts[i][j].setFont(font2); texts[i][j].setHorizontalAlignment(SwingConstants.CENTER); // 设置标签内容沿X轴的对齐方式;某区 …… 此处隐藏:2654字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




