java拼图小游戏答辩 ppt课件
拼图游戏答辩
选择图片,通过菜单和窗口中的图片选择待拼的图片 void OnPicture1() 、void OnPicture2() 、 void OnPicture3() 、 void OnPicture4() 难度选择,可选择任意分割方式,这里只提供了3*3,4*4,5*5的分割 void OnStage1() 、 void OnStage2() 、 void OnStage3() 打开图片,可打开任意bmp图片 void OnPicSelect() 计时器,通过调用系统时间来记录玩家游戏的时间 OnTimer(UINT nIDEvent) 窗口函数,用于美化窗口 BOOL PreCreateWindow(CREATESTRUCT& cs) 开始函数,用于初始化程序 void OnStart() 随机函数,用于图片的随机排列并确保拼图的可行性 void RandPic()
拼图游戏
1)游戏中有原图提示有快捷键操作 。 2)通过鼠标控制滑块移动拼图。 3)打开本地图片作为拼图素材。 4)选择拼图游戏的难易程度,即3*3、4*4或5*5进行游戏。 5)成功拼图后补全图片并显示所用时间与步数。 6)在已选拼图模式下实现游戏的
java拼图小游戏答辩
} return true; }
五、核心代码分析
1.如何加载图片? 2.如何实现拼图的随机排列? 3.如何实现图片的移动? 4.如何判断游戏结束的标志? 5.如何实现图片的切换选择?
(5)如何实现图片的切换?
public void actionPerformed(ActionEvent arg0) { //对三个按钮事件的处理 Button button=(Button)arg0.getSource(); // 获得事件按钮源
通过鼠标点击相邻图片,所点击的图片与空白按 钮互换位置,完成拼图的移动。
具体代码
(3)如何实现图片的移动?
1.鼠标事件
public void mouseP方格的鼠标按下事件
Cell button=(Cell)event.getSource(); // 获得鼠标按的方格按钮
cell=new Cell[9];// 创建九个方格 Icon icon;// 声明图标 for (int i = 0; i < 3; i++) {//循环为9个方格加载 图片,并初使化坐标,形成三行三列 for(int j=0;j<3;j++){ icon=new ImageIcon(“pictrue/pic_”+pictureID+“_”+(i*3
(4)如何判断游戏结束的标 志?
public boolean isFinish(){//判断是否拼合成功 for(int i=0;i<8;i++){ int x=cell[i].getBounds().x; int y=cell[i].getBounds().y; if(y/100*3+x/100!=i)
java拼图小游戏答辩
(3)如何实现图片的移动?
1.鼠标事件
if(x1==x2&&y1-y2==100)//如果满足条件则进行交换 button.move("UP",100);// 方格向上移动 else if(x1==x2 && y1-y2==-100) button.move("DOWN",100);// 方格向下移动 else if(x1-x2==100 && y1==y2) button.move("LEFT",100);;// 方格向左移动 else if(x1-x2==-100 && y1==y2) button.move("RIGHT",100);// 方格向右移动 else return;//不满足就不进行任何处理三、实源自的游戏功能三、实现的游戏功能
附加功能: 可选择从 预设的图片中选择图片 拼图
三、实现的游戏功能
游戏结束界面
四、算法设计
要实现游戏的上述功能,很显然有以下几个关 键问题要考虑:
1.如何加载图片? 2.如何实现拼图的随机排列? 3.如何实现图片的移动? 4.如何判断游戏结束的标志? 5.如何实现图片的切换选择?
(5)如何实现图片的切换?
int i=JOptionPane.showConfirmDialog(this,pic, "选 择图片", JOptionPane.OK_CANCEL_OPTION); //弹出对话框 if(i==JOptionPane.YES_OPTION){ // 选择对话框的确定按钮 MyCanvas.pictureID=pic.getSelectedIndex()+1; // 获得列表项的编号 myCanvas.reLoadPictrue();// 图片重载
拼图游戏PPT
显示切割后的图片 并实现监听
游戏核心代码:
切割图片代码:
private List<ImagePiece> split(Bitmap bitmap, int xPiece, int yPiece) { // TODO Auto-generated method stub List<ImagePiece> pieces = new ArrayList<ImagePiece>(xPiece * yPiece); int width = bitmap.getWidth(); int height = bitmap.getHeight(); int pieceWidth = width / xPiece; int pieceHeight = height / yPiece; for (int i = 0; i < yPiece; i++) { for (int j = 0; j < xPiece; j++) { ImagePiece piece = new ImagePiece(); piece.index = j + i * xPiece; int xValue = j * pieceWidth; int yValue = i * pieceHeight; piece.bitmap1 = Bitmap.createBitmap(bitmap, xValue, yValue, pieceWidth, pieceHeight); pieces.add(piece); } } return pieces; }
拼图游戏
制作人:朱雪峰
游戏整体架构:
• 设计思路:
游戏主界面
游图片及 难度选择面
java扫雷游戏计算机毕业设计答辩PPT
4、概要设计
关系调用图
本次扫雷游戏设计,编写了一个java源程序: Minesweeper.java,其中包含了两个 类:Minesweeper和NormoreMouseEvent,Minesweeper类中拥有5个方法:initGUI()、 go()、main()、out()和actionPerformed();而NormoreMouseEvent类中有一个方法: mouseClick()。在我的设计中,按方法来划分模块,把一个方法分成一个模块,故有 六个模块。
6、系统测试
程序运行,显示出的界面
点击菜单中的游戏时,显 示三个级别选项
6、系统测试
点击菜单中的帮助时,出
现两个选项,游戏说明与 关于扫雷
点击游戏说明时,出现一
个面板,显示游戏的具体 ห้องสมุดไป่ตู้作方法
点击关 于扫雷 时,又 出现一 个面板, 扫雷游 戏的简 介:
6、系统测试
选择中 级时, 界面会 出现与 之匹配 的大小
雷的方块找出则胜利。
选择级别后将出现相应级别 大小的雷区,玩家左击鼠标 时计时器开始计时。当单击 雷区中的方块时,如果没有 踩到雷,则方块显示数字为 几,就说明该数字周围一圈 的8个位置中有几个雷,如果 踩到的事雷,那么游戏结束, 即输掉游戏。
2、可行性研究
各方面的分析
经济可行性:开发此游戏所需成本即为人力成本与物力成本,二者只需考虑电 费问题即可,而此开发潜在的市场前景较为光明,由于此游戏受 欢迎程度较高,所以收益定会远大于成本,故此开发经济可行。
技术可行性:该游戏由JAVA语言编写,由于本人在学校中学习过java程序设计 实用教程,还在培训过程中学习了core java,所以对java语言有 一定的掌握程度。另外现在网络较为发达,还可以在学校图书 馆登陆中国知网,查找资料十分方便,故此开发技术可行。
java课程设计拼图游戏
import java.awt.*;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.image.BufferedImage;import javax.swing.*;public class Pintu extends JFrame implements KeyListener{PicPanel picPanel;JLabel statusText = new JLabel("");JLabel statusimg = new JLabel("yuantu");public static void main(String[] args){Image img = Toolkit.getDefaultToolkit().getImage("D:/tierui/jsp/Pintu/src/img/pintu.jpg");Pintu pintu1 = new Pintu(img);pintu1.setVisible(true);}public Pintu(Image img) throws HeadlessException{picPanel = new PicPanel(img, statusText,statusimg);this.setLayout(new BorderLayout());add(picPanel, BorderLayout.CENTER);add(statusText, BorderLayout.SOUTH);setTitle("拼图游戏");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(600, 400);Dimension size = Toolkit.getDefaultToolkit().getScreenSize();//获得屏幕的标尺int screenWidth = size.width;int screenHeight = size.height;int x = (screenWidth - this.getWidth())/2;int y = (screenHeight - this.getHeight())/2;this.setLocation(x, y);addKeyListener(this);}public void keyPressed(KeyEvent e){int nDirection = picPanel.DIRECTION_NONE;switch (e.getKeyCode()){case KeyEvent.VK_DOWN:nDirection = picPanel.DIRECTION_DOWN;break;case KeyEvent.VK_UP:nDirection = picPanel.DIRECTION_UP;break;case KeyEvent.VK_LEFT:nDirection = picPanel.DIRECTION_LEFT;break;case KeyEvent.VK_RIGHT:nDirection = picPanel.DIRECTION_RIGHT;break;case KeyEvent.VK_F1: // F1键按下,重新开始游戏picPanel.initData();repaint();return;case KeyEvent.VK_Y: // 显示原图if (picPanel.bOnShowAll)picPanel.bOnShowAll = false;elsepicPanel.bOnShowAll = true;repaint();return;default:return;}boolean bCanMove = picPanel.move(nDirection);if (bCanMove){picPanel.nStep++;repaint();}}public void keyReleased(KeyEvent e){}public void keyTyped(KeyEvent e){}}class PicPanel extends JPanel implements MouseListener, Runnable{ BufferedImage[] m_Image = new BufferedImage[9]; // 9个用来装入拼图的图片对象Image m_ImgAll; // 总的大图片int m_nImageNo[][] = new int[3][3]; // 标志现在各个拼图的排列情况final int NO_IMAGE = -1; // 此位置没有拼图final int IMAGE_WIDTH = 120; // 每张拼图的宽final int IMAGE_HEIGHT = 120; // 每张拼图的高final int DIRECTION_UP = 1;final int DIRECTION_DOWN = 2;final int DIRECTION_LEFT = 3;final int DIRECTION_RIGHT = 4;final int DIRECTION_NONE = -1;final int DELTAX = 120; // 标志提示信息区的宽度Thread thTimer; // 计时器线程int nTime = 0; // 已经玩过的时间,以秒为单位boolean bWantStartNewGame = false; // 游戏是否结束,是否需要开始新游戏int nStep = 0; // 已经走的步数int nScore = 0; // 玩家所得的分数int m_nNumOfImg = 0; // 拼图底图所使用的图片的个数String m_sImgName = null; // 记录拼图底图的名字boolean bOnShowAll = false; // 预览的开关JLabel statusText;JPanel panel=new JPanel();public PicPanel(Image img, JLabel statusText,JLabel statusimg){this.statusText = statusText;setBackground(Color.white);m_sImgName = "pintu.jpg";MediaTracker mediaTracker = new MediaTracker(this); // 建立一个监视器.MediaTracker 类是一个跟踪多种媒体对象状态的实用工具类try{// 装载总的大图片m_ImgAll = Toolkit.getDefaultToolkit().getImage("D:/tierui/jsp/Pintu/src/img/" + m_sImgName);mediaTracker.addImage(m_ImgAll, 1);//addImage方法-向此媒体跟踪器正在跟踪的图像列表添加一个图像。
java课程设计-拼图小游戏
允苏工具建造者立苏苏他人工具无苏集成的工具而无苏分辨一工具功能在里苏束〜 而独与从个哪另
一工具功能在里苏始。个哪
苏件工程苏苏文 档3
三、苏苏苏体
3.1,系苏苏苏平台
本游苏使用Java苏言苏苏,苏苏平台苏JDK)苏苏工具Eclipse。JDK是Sun Microsystems苏苏Java苏苏苏的苏品。自从Java推出以〜来JDK已苏成苏使用 最泛的广Java SDK。JDK是整个Java的核心〜包括了Java运行苏境〜Java工具和Java基苏的苏苏。JDK是好学Java的第一步。从SUN勺JDK5.0苏始,提供了泛 型等非常苏用的功能〜其版本也不更新〜行效率得到了非常大的提高。断运
3.2,系苏流程苏
游苏苏始
操作游苏
游苏完成
苏示成苏
游苏苏束
苏3-1
苏游苏分苏五操作步苏〜分苏是游苏苏始、操作游苏、游苏完成、苏示成苏和 游苏苏个个
束。游苏在行苏程中玩家苏可以通苏鼠苏苏停游苏〜而且苏款游苏是通苏苏算 玩家的步苏运
来并来将清既苏算成苏的〜非通苏苏苏苏算的〜所以玩家可以每一步想楚了再 苏行〜苏苏可以苏苏苏力〜苏可以提高成苏,
与并个更新〜且在苏游苏的苏苏中〜苏要苏用苏的苏承机制以及一些苏苏模 式。因此〜如何苏苏和苏苏好苏苏游苏〜苏于提高 个拼Java苏苏水平和系苏的 苏苏能力有大的助。在极帮苏苏苏苏苏程中〜需要苏理好各苏之苏的苏承苏系〜苏 要苏理各苏相苏的封〜且苏要苏苏个个装并
好各模苏之苏的苏苏依苏苏系和据通信苏系。个数
2.1苏苏工具介苏
Eclipse是一苏放源代苏的苏件苏苏苏目〜苏注于苏高度集成的工具苏苏提供 一全个个
基于Java的拼图游戏实现
Electronic Technology & Software Engineering 电子技术与软件工程• 237Program Design •程序设计【关键词】拼图游戏 Java 程序 Java 开发1 引言目前,影响学生注意力的各种外界因素很多,采用传统的单纯讲授知识点的授课模式进行教学,这一方式已无法满足当下课堂需求,这种方式下知识点的讲解以及授课采用的案例之间相互孤立,无联系,致使学生在学习时感觉知识点零碎、杂乱,从而无法吸引学生的兴趣,同时现实中的工作流程通常都是相互联系的,项目开发同样也相互联系,采用零碎,孤立的方式既无法吸引学生,也不符合现实中的工作流程。
为了能够提升学生兴趣,对接现实工作过程,在实施Java 课程授课时,采用项目化教学,以一个或几个项目为依据,通过讲解引导学生独立完成具体项目,这样课堂之间相互联系,同时以项目为中心讲解知识点,可以使学生感受到学有所用,使学生在实践过程中提升理论知识水平,还能够更好的培养学生运用知识解决问题的能力。
拼图游戏是一款简单有趣的小游戏,课堂上学习Java 语言时选择拼图游戏为导入,既能够吸引学生,提升学生兴趣,又能够充分将Java 知识点融合与游戏,在进行Java 课堂教学时需要通过以简单有趣的游戏项目贯穿课堂,教师讲解引导,学生作为主体完善提升,教师在教学实施时将游戏项目分解,学生在完成项目模块的同时掌握Java 知识点,通过按照任务要求,分步骤分模块实施,使学生可以在参与项目实施的过程,感受近于真实的开发环境,以此来激发学生的学习兴趣,最终实现学生分析问题、解决问题的能力的提升。
本文主要介绍课堂实施之简单拼图游戏的项目实现,以简单项目为媒介,在教学过程基于Java 的拼图游戏实现文/秦鹏珍中逐步带领学生掌握Java 编程基础语法知识,使学生建立Java 编程思想,在关注学生知识增长的同时,也关注学生相关能力目标的达成。
2 游戏设计要实现简单拼图游戏主要要完成以下三部分设计,包括游戏界面设计,游戏规则设计,游戏按钮功能实现设计,因此课堂实施时也主要按照三大模块实施,通过游戏界面的设计与完成要使学生掌握Java 中类的定义,树立面向对象思想,通过游戏规则设计,游戏按钮功能实现设计可以使学生掌握Java 基础语法知识,包括变量命名规则,数据类型,流程控制语句等,同时要掌握接口的定义、继承和实现,事件的处理机制。
Java编写的拼图小游戏
b[i+1]=new Button();
p[i+1]=new Panel();
b[i+1].setLabel(bn.bijiao()+1+"");
b[i+1].addActionListener(this);
}
}
}
b[i]=x;
i++;
return x;
}
}
p[12]=new Panel();
b[12]=new Button();
p[12].setLayout(new BorderLayout());
p[12].add(b[12]);
this.add(p[12]);
this.setSize(160,210);
&&"4".equals(b[4].getLabel())&&"5".equals(b[5].getLabel())&&"6".equals(b[6].getLabel())
&&"7".equals(b[7].getLabel())&&"8".equals(b[8].getLabel())&&"9".equals(b[9].getLabel())
b[selBtnIndex+1].setLabel(b[selBtnIndex].getLabel());
b[selBtnIndex].setLabel("");
大鱼吃小鱼java答辩ppt
项目设计
4.类设计
鱼类 :位置,类型,状态,源图片,切割后的宽,高,等级,切割出的图片数量, 当前显示的图片索引,移动目的坐标,移动方向 游戏工具类
常量群 静态块:初始化图片集合,初始化鱼信息集合 窗体类:初始化窗体,鼠标事件操作 面板类:重写面板绘制方法,内部类实现图片刷新线程、
程序编码
程序测试
四、开发环境: Windows操作系统 、JDK1.7及以上版本、
五、项目进度:
ቤተ መጻሕፍቲ ባይዱ
1. 项目需求分析/素材准备(图片/音乐/字体)
2.项目设计
3.程序编码
4.程序测试
5.程序维护
6.项目总结
项目设计
1.功能分析
窗体背景 鱼设计:玩家与npc 玩家鱼:随鼠标移动,自带动画效果 npc鱼:随机在窗体内移动,自带动画效果 吞噬效果:当玩家鱼与npc鱼碰撞时,引发吞噬效果,将npc鱼吞噬,并积分 转身效果:玩家鱼与npc鱼在x轴转向时体现转向动画,并反向游动
项目设计
2.扩展功能
游戏失败:当碰撞时,若npc鱼等级高于玩家鱼,则玩家被吞噬,游戏结束 升级效果:当积分达到一定程度,则改变玩家鱼等级,图片放大(或变更图片) npc鱼群波:当一波鱼群被吞吃,则产生一波新npc鱼 界面记分:在界面显示当前得分
3.图片资源分析
3.1.图片命名规则 3.2.图片内容解释 3.3.图片尺寸,等级信息。
重写面板绘制方法内部类实现图片刷新线程程序编码程序测试程序维护项目总结在通过将近一个星期的项目中使我们学到咯很多的东西也让我们看到了我们的一些在知识上不足
需求分析 程序测试
项目设计 程序维护
程序编码 项目总结
需求分析
一、项目选择:大鱼吃小鱼
拼图游戏_java课设_含可运行程序
沈阳大学
沈阳大学
沈阳大学
沈阳大学
沈阳大学
图3 游戏初始界面
单击start按钮开始游戏,界面自动加载并切割图片,玩家此时就可以通过鼠标来完成游戏了,单击空白区域旁边的图快就会移动,移动方向是向着空缺块移动,也就是说孔雀块四周都是可移动的块,而不是紧邻空缺块的图快则不能移动,结果如图4所示。
沈阳大学
图4 开始后的界面
当玩家想有提示信息时可单击数字提示,单击后会在图块上出现带有顺序的数字,玩家可以通过数字更加容易的完成拼图游戏,如图5所示。
沈阳大学
如果不想显示数字提示则可单击清除提示,结果则如同上图4所示。
图5 数字提示界面图
在游戏中,玩家每移动一块图快,状态栏中的步数就会自动加1,并在游戏状态中显示出来,游戏完成时会弹出一个对话框,提示玩家完成拼图游戏并显示所用步数,完成游戏结果图如图6所示。
图6 完成游戏对话框
玩家若想换一个图片进行游戏,则可通过image下拉框实现,玩家可以根据自己的
沈阳大学
兴趣爱好进行选择,如图7所示
图7 image下拉框
例如可以选择下拉框中的唯美,运行界面则如图8所示
图8 唯美拼图界面
沈阳大学
沈阳大学
沈阳大学
沈阳大学
沈阳大学
沈阳大学
沈阳大学
沈阳大学
沈阳大学
沈阳大学
沈阳大学
沈阳大学
沈阳大学。
java课程设计拼图游戏
java课程设计拼图游戏一、教学目标本节课的教学目标是让学生掌握Java编程的基本语法和逻辑思维能力,通过编写Java程序实现一个简单的拼图游戏。
具体目标如下:1.知识目标:–掌握Java的基本数据类型、运算符、控制结构。
–了解面向对象编程的基本概念,如类、对象、封装、继承。
–学习Java的图形用户界面编程,如Swing组件、事件处理等。
2.技能目标:–能够运用Java编程语言编写简单的程序。
–能够运用面向对象的思想设计程序。
–能够使用Java图形用户界面库编写用户友好的界面。
3.情感态度价值观目标:–培养学生的编程兴趣,提高学生解决问题的能力。
–培养学生团队合作的精神,学会分享和交流。
–培养学生对技术的热爱,提高学生对计算机科学的认知。
二、教学内容本节课的教学内容主要包括以下几个部分:1.Java基本语法和逻辑思维能力的培养。
2.面向对象编程的基本概念和应用。
3.Java图形用户界面编程,包括Swing组件的使用和事件处理。
具体的教学大纲如下:1.第一课时:Java基本语法和逻辑思维能力的培养。
–数据类型、运算符、控制结构。
–简单的数学计算程序编写。
2.第二课时:面向对象编程的基本概念和应用。
–类和对象的概念。
–封装、继承的应用。
–简单的图形界面程序编写。
3.第三课时:Java图形用户界面编程。
–Swing组件的使用。
–事件处理机制。
–拼图游戏的实现。
三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
1.讲授法:用于讲解Java基本语法、面向对象编程概念和图形用户界面编程的基础知识。
2.讨论法:通过小组讨论,让学生深入理解面向对象编程的优势和应用。
3.案例分析法:分析实际的拼图游戏案例,让学生了解图形用户界面编程的实现方法。
4.实验法:让学生动手编写拼图游戏程序,巩固所学知识。
四、教学资源本节课的教学资源包括教材、参考书、多媒体资料和实验设备。
基于Java的拼图游戏设计
Java课程设计——拼图游戏信101 孙杰2010314126Java课程设计——拼图游戏班级:信101学号:2010414126姓名:孙杰指导老师:李红强基于Java的拼图游戏设计游戏实现功能解析及界面游戏规则介绍1)本游戏是一个Java语言的拼图游戏,有一个格子是空的,其他格子内随机放置由要拿来拼图的图片切割成的若干个小图片,图片的切割按照一定的公式计算,因为,该通过单击任意一个与空格子相邻的方块可以把该方游戏中设有拼图游戏的等级,根据不同的等级,按照公式会切割成不同的小图片块数。
2)在开始游戏之前,可以选择游戏等级后再点击“开始”菜单里的“新游戏”,进行拼图游戏,通过将空格旁边的小图片移入空格子内(不断的移动方块),来实现拼图,直到方块一行一行的按图片的原始样子拼好即可完成该游戏。
3)游戏拼完后,会弹出一个“信息”框,显示你玩游戏所用的步数与时间,点击“确定”后,会弹出一个“输入”框,可以在里面输入游戏者的姓名,单击“确定”后会弹出游戏的记录框。
4)游戏的简单规则在游戏界面的“关于”菜单内的“帮助”信息框内已经简单介绍了。
游戏前可以先预览看看。
游戏实现功能主窗口界面1)游戏初始状态当游戏刚运行时,会出现如下界面,本游戏中已经存在了三张图片,如过游戏者想拼自己感兴趣的图片的话,可以将自己的图片放入到“background”(背景图片)文件夹中,再进行“选择”->“背景图片”中选择你自己的图片,然后选择“等级”->“困难”或“普通”或“简单”,进行等级选择,最后选择“开始”->“新游戏”就可以拼自己想拼的图了。
初始窗口如图1所示:图1 游戏初始窗口2)游戏进行状态当游戏者选择好图片与等级后,就可以进行拼图游戏了及进入游戏的进行状态。
3)游戏暂停状态当游戏者,在游戏过程中半途暂停游戏的话,将出现如图3所示的游戏暂停状态的界面。
当游戏者又想继续游戏时,直接单击界面上的“继续”字样,就可以继续游戏了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ppt课件
19
(4)如何判断游戏结束的标志?
public boolean isFinish(){//判断是否拼合成功 for(int i=0;i<8;i++){ int x=cell[i].getBounds().x; int y=cell[i].getBounds().y; if(y/100*3+x/100!=i)
1.鼠标事件
if(x1==x2&&y1-y2==100)//如果满足条件则进行交换 button.move("UP",100);// 方格向上移动
else if(x1==x2 && y1-y2==-100) button.move("DOWN",100);// 方格向下移动
else if(x1-x2==100 && y1==y2) button.move("LEFT",100);;// 方格向左移动
}else{// 方格向右移动 this.setLocation(this.getBounds().x+100,this.getBounds().y); }
ppt课件
18
五、核心代码分析
1.如何加载图片? 2.如何实现拼图的随机排列? 3.如何实现图片的移动? 4.如何判断游戏结束的标志? 5.如何实现图片的切换选择?
ppt课件
7
四、算法设计
要实现游戏的上述功能,很显然有以下几个关 键问题要考虑:
1.如何加载图片? 2.如何实现拼图的随机排列? 3.如何实现图片的移动? 4.如何判断游戏结束的标志? 5.如何实现图片的切换选择?
ppt课件
8
五、核心代码分析
1.如何加载图片? 2.如何实现拼图的随机排列? 3.如何实现图片的移动? 4.如何判断游戏结束的标志? 5.如何实现图片的切换选择?
//判断是否每一个位置都恢复到初始位置 return false;
} return true; }
ppt课件
20
五、核心代码分析
1.如何加载图片? 2.如何实现拼图的随机排列? 3.如何实现图片的移动? 4.如何判断游戏结束的标志? 5.如何实现图片的切换选择?
ppt课件
21
(5)如何实现图片的切换?
public void actionPerformed(ActionEvent arg0) { //对三个按钮事件的处理 Button button=(Button)arg0.getSource(); // 获得事件按钮源
ppt课件
9
cell=new Cell[9];// 创建九个方格
Icon icon;// 声明图标
for (int i = 0; i < 3; i++) {//循环为9个方格加载图片,并初使 化坐标,形成三行三列
for(int j=0;j<3;j++){
icon=new
ImageIcon(“pictrue/pic_”+pictureID+“_”+(i*3+j+1)+“.jpg ”);// 根据指定URL创建图标
this.setLocation(this.getBounds().x,this.getBounds().y+100); }else if(direction=="LEFT"){// 方格向左移动 this.setLocation(this.getBounds().x-100,this.getBounds().y);
cell[i*3+j]=new Cell(icon);// 创建方格在方格中加载图片
cell[i*3+j].setLocation(j*100,i*100);// 设置方格的位置
this.add(cell[i*3+j]);// 面板添加方格
ppt课件
10
五、核心代码分析
1.如何加载图片? 2.如何实现拼图的随机排列? 3.如何实现图片的移动? 4.如何判断游戏结束的标志? 5.如何实现图片的切换选择?
ppt课件
17
2.move方法
public void move(String direction,int sleep){//方格的移动 if(direction=="UP"){// 方格向上移动
this.setLocation(this.getBounds().x,this.getBounds().y-100); }else if(direction=="DOWN"){// 方格向下移动
ppt课件
ቤተ መጻሕፍቲ ባይዱ11
(2)如何实现拼图的随机排列?
关键代码: int direction=(int)(Math.random()*4); //随机产生一个0-3的数字,对应空方格的上下 左右移动
ppt课件
12
五、核心代码分析
1.如何加载图片? 2.如何实现拼图的随机排列? 3.如何实现图片的移动? 4.如何判断游戏结束的标志? 5.如何实现图片的切换选择?
int x1=button.getBounds().x; //得到所单击方格的坐标 int y1=button.getBounds().y; int x2=cellNull.getBounds().x;//得到空方格的坐标 int y2=cellNull.getBounds().y;
ppt课件
15
(3)如何实现图片的移动?
ppt课件
13
通过鼠标点击相邻图片,所点击的图片与空白按 钮互换位置,完成拼图的移动。
具体代码
ppt课件
14
(3)如何实现图片的移动?
1.鼠标事件
public void mousePressed(MouseEvent event) { //方格的鼠标按下事件
Cell button=(Cell)event.getSource(); // 获得鼠标按的方格按钮
else if(x1-x2==-100 && y1==y2) button.move("RIGHT",100);// 方格向右移动
else return;//不满足就不进行任何处理
ppt课件
16
(3)如何实现图片的移动?
1.鼠标事件
cellNull.setLocation(x1,y1);// 重新设置空方格的位置 this.repaint();
Java拼图小游戏
2015/1/5
ppt课件
1
一、实训要求
利用java的图形用户界面设计,设计简单的拼 图游戏
ppt课件
2
精品资料
二、程序流程图
ppt课件
4
三、实现的游戏功能
ppt课件
5
三、实现的游戏功能
附加功能: 可选择从 预设的图片中选择图片 拼图
ppt课件
6
三、实现的游戏功能
游戏结束界面