拼图游戏实现的思路.docx_第1页
拼图游戏实现的思路.docx_第2页
拼图游戏实现的思路.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

拼图游戏实现的思路正在学习JAVA,对JAVA有了一些基本的了解。需要多编程,通过一些具体实例来提高编程水平。网上有许多游戏的例子,如拼图、俄罗斯方块、24点等等,但人家是人家的,只能参考不要照搬,不然不能真正提高自身水平。编程最重要的是什么?每个人的认识可能不一,但我认为最重要是思路和方法。有了思路和方法才能通过语言来实现,进而不断优化。比如拼图游戏,我们都玩过,但如何实现的,我们能不能自己编一个?先不参考别人的(网上有许多,Baidu一下会有不少),自己先想一下解题思路。1、图片的载入先从简单的开始,最好是矩形图片如300X300的,以后再考虑长方形的,异性的;try加载图片资源img= Image.createImage(/pic.png);catch(Exception e)System.out.println(Not found pic);/画图g.drawImage(img,getWidth()/2,getHeight()/2,Graphics.HCENTER|Graphics.VCENTER);/或采用以下方式g.drawImage( img, x0,y0, Graphics.LEFT | Graphics.TOP );2、图片的分割将载入的图片按要求分割,如3X3、4X4等;分割的图片放入图形数组;构造一个图片分割的方法,网上有不少,可以参考;public static Image splitImage( Image img, int rows, int cols )if ( img = null )return null;Image result = new Image rows * cols ;int w = img.getWidth() / cols;int h = img.getHeight() / rows;for ( int i = 0; i result.length; i+ )result = Image.createImage( w, h );Graphics g = result.getGraphics();g.translate( ( -i % cols ) * w, ( -i / cols ) * h );g.drawImage( img, 0, 0, Graphics.LEFT | Graphics.TOP );return result;3、初始化以3X3九宫格为例,按1 2 34 5 67 8 0 载入,0为空白处;将图片打碎,随机化,如变为:5 1 34 6 82 0 74、完成状态的判断当图形达到初始状态时,拼图完成。载入图片时,同时也构造了一个数字矩阵ai,j如上例当矩阵中的值都满足:3*(i-1) +j 时拼图完成。一般情况/* int m 图片的行数int n 图片的列数*/public boolean isFinish() for (int i = 0; i m; i+) for (int j = 0; j n; j+) if (aj != (i * m + j) return false; return true; 5、可移动块的判断分割的子图片,能否按上下左右移动,需要加以判断上下移动,改变图片位置的y值,数字矩阵的行值;左右移动,改变图片位置的x值,数字矩阵的列值;即经过变更后数字矩阵满足:ai,j=0,则移动有效;如上例,6向下,2向右,7向左都为有效移动。6、移动的实现键值响应,一个移动是有效的,需要重绘图形来实现。移动的过程是一个位置交换的过程。如上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论