版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
石头迷阵游戏绘制界面打乱石头方块移动业务游戏判定胜利统计步数重新游戏
思路分析
思路分析595像素514像素
思路分析595像素514像素484像素450像素(26,30)
思路分析595像素514像素484像素450像素100100(26,30)
思路分析595像素514像素484像素450像素100100(26,30)(50,90)(50,190)(50,290)(50,390)
代码优化JLabelimage1_1=newJLabel(newImageIcon("..."));
image1_1.setBounds(50,90,100,100);
frame.getContentPane().add(image1_1);
JLabelimage1_2=newJLabel(newImageIcon("..."));
image1_2.setBounds(150,90,100,100);
frame.getContentPane().add(image1_2);
JLabelimage1_3=newJLabel(newImageIcon("..."));
image1_3.setBounds(250,90,100,100);
frame.getContentPane().add(image1_3);
JLabelimage1_4=newJLabel(newImageIcon("..."));
image1_4.setBounds(350,90,100,100);
frame.getContentPane().add(image1_4);JLabelimage1_1=newJLabel(newImageIcon("..."));
image1_1.setBounds(50+100*0,90,100,100);
frame.getContentPane().add(image1_1);
JLabelimage1_2=newJLabel(newImageIcon("..."));
image1_2.setBounds(50+100*1,90,100,100);
frame.getContentPane().add(image1_2);
JLabelimage1_3=newJLabel(newImageIcon("..."));
image1_3.setBounds(50+100*2,90,100,100);
frame.getContentPane().add(image1_3);
JLabelimage1_4=newJLabel(newImageIcon("..."));
image1_4.setBounds(50+100*3,90,100,100);
frame.getContentPane().add(image1_4);
代码优化for(intj=0;j<4;j++){
}JLabelimage1_1=newJLabel(newImageIcon("..."));
image1_1.setBounds(50+100*0,90,100,100);
frame.getContentPane().add(image1_1);
JLabelimage1_2=newJLabel(newImageIcon("..."));
image1_2.setBounds(50+100*1,90,100,100);
frame.getContentPane().add(image1_2);
JLabelimage1_3=newJLabel(newImageIcon("..."));
image1_3.setBounds(50+100*2,90,100,100);
frame.getContentPane().add(image1_3);
JLabelimage1_4=newJLabel(newImageIcon("..."));
image1_4.setBounds(50+100*3,90,100,100);
frame.getContentPane().add(image1_4);
代码优化
代码优化
代码优化int[]nums={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0};1234567891011121314150{1,2,3,4}{5,6,7,8}{9,10,11,12}{13,14,15,0}int[][]data={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,0}
};
继承改进你触碰不到我~加点功能呗~
继承改进JFrameMainFrame老爹~
继承改进MainFrameJFrame孩子你先别闹…你是哪儿来的
继承改进JFrame你写好的功能,我就直接用了哦~MainFrame
继承改进JFrameMainFrame加点功能呗~好嘞~
继承改进定义MainFrame类继承JFrame将代码抽取到一个单独的方法initFrame()将绘制界面的代码,抽取为一个单独的方法paintView()将二维数组提取到成员变量的位置对JFrame类中方法的调用方式,更换为super.或直接省略在构造方法中,调用initFrame()和paintView()在构造方法的最后调用setVisible(true);publicMainFrame(){
//初始化窗体
initFrame();
//绘制窗体
paintView();
//显示窗体
setVisible(true);
}绘制界面打乱石头方块移动业务游戏判定胜利统计步数重新游戏
思路分析
思路分析核心思路:遍历二维数组获取每一个元素,和其他元素随机交换快来人呀换位置了!0,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3intrandomX=r.nextInt(4);
intrandomY=r.nextInt(4);2,1
思路分析核心思路:遍历二维数组获取每一个元素,和其他元素随机交换0,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3intrandomX=r.nextInt(4);
intrandomY=r.nextInt(4);
思路分析核心思路:遍历二维数组获取每一个元素,和其他元素随机交换0,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3intrandomX=r.nextInt(4);
intrandomY=r.nextInt(4);3,3
思路分析核心思路:遍历二维数组获取每一个元素,和其他元素随机交换0,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3intrandomX=r.nextInt(4);
intrandomY=r.nextInt(4);3,3
思路分析核心思路:遍历二维数组获取每一个元素,和其他元素随机交换0,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3intrandomX=r.nextInt(4);
intrandomY=r.nextInt(4);3,3
思路分析核心思路:遍历二维数组获取每一个元素,和其他元素随机交换0,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3intrandomX=r.nextInt(4);
intrandomY=r.nextInt(4);3,0
思路分析核心思路:遍历二维数组获取每一个元素,和其他元素随机交换0,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3intrandomX=r.nextInt(4);
intrandomY=r.nextInt(4);3,0
思路分析核心思路:遍历二维数组获取每一个元素,和其他元素随机交换0,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3intrandomX=r.nextInt(4);
intrandomY=r.nextInt(4);3,0
思路分析核心思路:遍历二维数组获取每一个元素,和其他元素随机交换0,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3intrandomX=r.nextInt(4);
intrandomY=r.nextInt(4);0,3
思路分析核心思路:遍历二维数组获取每一个元素,和其他元素随机交换0,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3intrandomX=r.nextInt(4);
intrandomY=r.nextInt(4);0,3
思路分析核心思路:遍历二维数组获取每一个元素,和其他元素随机交换0,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3intrandomX=r.nextInt(4);
intrandomY=r.nextInt(4);遍历二维数组,获取到每一个元素在遍历的过程中,产生两个随机的索引让当前元素,和随机索引所指向的元素进行交换绘制界面打乱石头方块移动业务游戏判定胜利统计步数重新游戏
准备动作为窗体注册键盘监听,并区分出上下左右,谁被按下了
思路分析int[][]datas={
{9,1,3,4},
{5,6,7,8},
{10,0,2,12},
{13,14,11,15}
};int[][]datas={
{9,1,3,4},
{5,6,7,8},
{10,2,0,12},
{13,14,11,15}
};
思路分析int[][]data={
{9,1,3,4},
{5,6,7,8},
{10,0,2,12},
{13,14,11,15}
};int[][]data={
{9,1,3,4},
{5,6,7,8},
{10,2,0,12},
{13,14,11,15}
};
思路分析确定0号元素的所在位置
思路分析row(行)0123column(列)01230,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3空白块和右边数据交换data[row][column]data[row][column+1]
思路分析row(行)0123column(列)01230,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3空白块和右边数据交换data[row][column]data[row][column+1]注意:交换后,空白块的位置发生了改变坐标也同样需要改变column++;
思路分析row(行)0123column(列)01230,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3空白块和右边数据交换data[row][column]data[row][column+1]注意:交换后,空白块的位置发生了改变坐标也同样需要改变column++;
思路分析row(行)0123column(列)01230,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3空白块和下边数据交换data[row][column]data[row+1][column]
思路分析row(行)0123column(列)01230,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3空白块和下边数据交换data[row][column]data[row+1][column]row++;
思路分析row(行)0123column(列)01230,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3空白块和左边数据交换data[row][column]data[row][column-1]
思路分析row(行)0123column(列)01230,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3空白块和左边数据交换data[row][column]data[row][column-1]column--;
思路分析row(行)0123column(列)01230,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3空白块和上面数据交换data[row][column]data[row-1][column]
思路分析row(行)0123column(列)01230,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3空白块和上面数据交换data[row][column]data[row-1][column]row--;
思路分析row(行)0123column(列)01230,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3
数据在数组中改变之后,界面需要重新刷新每一次移动之后,调用paintView重新绘制界面paintView方法中,加载图片资源之前,需要将现有的组件移除getContentPane().removeAll();加载后,需要刷新界面getContentPane().repaint();
Bug分析和解决row(行)0123column(列)01230,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3column==3不允许左移动
Bug分析和解决row(行)0123column(列)01230,01,02,03,00,11,12,13,10,21,22,23,20,31,32,33,3column==3不允许左移动row==3不允许上移动
Bug分析和解决row(行)0123column(列)01230,01,02,03,00,11,12,13,10,2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川大学华西医院医院感染管理部项目制科研助理招聘1人考试备考题库及答案解析
- 2026年泉州晋江市第五实验小学春季教师招聘4人笔试备考题库及答案解析
- 2026中国纺织出版社有限公司招聘考试备考试题及答案解析
- 2026江苏南京大学招聘XZ2026-005商学院保洁员考试备考题库及答案解析
- 2026年海南师范大学招聘备考题库及完整答案详解1套
- 2026年苏州工业园区翰林幼儿园后勤辅助人员招聘备考题库及答案详解1套
- 四川南江公用事业发展集团有限公司2025年面向社会公开招聘5名工作人员的备考题库有答案详解
- 2026年石家庄经济技术开发区开发建设集团有限公司招聘工作人员35人备考题库完整参考答案详解
- 2026年湛江市坡头区人力资源和社会保障局面向社会公开招聘编外工作人员备考题库及参考答案详解一套
- 2026年潍坊峡山医院潍坊市福乐源康复养老中心护理人员招聘备考题库及1套完整答案详解
- 中国数联物流2026届校园招聘50人考试题库及答案1套
- 2025年大学网络工程(网络安全技术)试题及答案
- 建筑公司工资薪酬管理制度(3篇)
- 2025至2030中国疝气修补术行业调研及市场前景预测评估报告
- 中国餐饮巨头百胜集团深度分析
- 2024-2025学年福建省厦门市双十中七年级(上)期末英语试卷
- 胸锁乳突肌区课件
- 2025年物业管理师《物业管理实务》真题及试题及答案
- 2025年协警辅警招聘考试题库(新)及答案
- 钢结构施工优化策略研究
- 车间轮岗工作总结
评论
0/150
提交评论