欢迎来到天天文库
浏览记录
ID:9020974
大小:14.42 KB
页数:3页
时间:2018-04-15
《拼图游戏实现的思路》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、拼图游戏实现的思路正在学习JAVA,对JAVA有了一些基本的了解。需要多编程,通过一些具体实例来提高编程水平。网上有许多游戏的例子,如拼图、俄罗斯方块、24点等等,但人家是人家的,只能参考不要照搬,不然不能真正提高自身水平。编程最重要的是什么?每个人的认识可能不一,但我认为最重要是思路和方法。有了思路和方法才能通过语言来实现,进而不断优化。比如拼图游戏,我们都玩过,但如何实现的,我们能不能自己编一个?先不参考别人的(网上有许多,Baidu一下会有不少),自己先想一下解题思路。。。。1、图片的载入
2、先从简单的开始,最好是矩形图片如300X300的,以后再考虑长方形的,异性的;try{加载图片资源img=Image.createImage("/pic.png");}catch(Exceptione){System.out.println("Notfoundpic");}//画图g.drawImage(img,getWidth()/2,getHeight()/2,Graphics.HCENTER
3、Graphics.VCENTER);//或采用以下方式g.drawImage(img,x0,y0,
4、Graphics.LEFT
5、Graphics.TOP);2、图片的分割将载入的图片按要求分割,如3X3、4X4等;分割的图片放入图形数组;构造一个图片分割的方法,网上有不少,可以参考; publicstaticImage[]splitImage(Imageimg,introws,intcols) { if(img==null) { returnnull; } Image[]result=newImage[rows*cols]; intw=img.getWidth()/cols;
6、 inth=img.getHeight()/rows; for(inti=0;i7、Graphics.TOP); } returnresult; }3、初始化以3X3九宫格8、为例,按 123 456 780 载入,0为空白处;将图片打碎,随机化,如变为: 513 468 2074、完成状态的判断当图形达到初始状态时,拼图完成。载入图片时,同时也构造了一个数字矩阵a[i,j]如上例当矩阵中的值都满足:3*(i-1)+j时拼图完成。一般情况/**intm图片的行数 intn图片的列数*/ publicbooleanisFinish(){ for(inti=0;i9、j]!=(i*m+j)){ returnfalse; } } } returntrue; } 5、可移动块的判断分割的子图片,能否按上下左右移动,需要加以判断上下移动,改变图片位置的y值,数字矩阵的行值;左右移动,改变图片位置的x值,数字矩阵的列值;即经过变更后数字矩阵满足:a[i,j]=0,则移动有效;如上例,6向下,2向右,7向左都为有效移动。6、移动的实现键值响应,一个移动是有效的,需要重绘图形来实现。移动的过程是一个位置交换的过程。如上例,6向下,是10、6与0位置互换,数字矩阵值和图片互换。构造一个方法swap()实现以下要求:(1)数字矩阵a[i,j]数值互换;(2)图片重绘,图片互换;
7、Graphics.TOP); } returnresult; }3、初始化以3X3九宫格
8、为例,按 123 456 780 载入,0为空白处;将图片打碎,随机化,如变为: 513 468 2074、完成状态的判断当图形达到初始状态时,拼图完成。载入图片时,同时也构造了一个数字矩阵a[i,j]如上例当矩阵中的值都满足:3*(i-1)+j时拼图完成。一般情况/**intm图片的行数 intn图片的列数*/ publicbooleanisFinish(){ for(inti=0;i9、j]!=(i*m+j)){ returnfalse; } } } returntrue; } 5、可移动块的判断分割的子图片,能否按上下左右移动,需要加以判断上下移动,改变图片位置的y值,数字矩阵的行值;左右移动,改变图片位置的x值,数字矩阵的列值;即经过变更后数字矩阵满足:a[i,j]=0,则移动有效;如上例,6向下,2向右,7向左都为有效移动。6、移动的实现键值响应,一个移动是有效的,需要重绘图形来实现。移动的过程是一个位置交换的过程。如上例,6向下,是10、6与0位置互换,数字矩阵值和图片互换。构造一个方法swap()实现以下要求:(1)数字矩阵a[i,j]数值互换;(2)图片重绘,图片互换;
9、j]!=(i*m+j)){ returnfalse; } } } returntrue; } 5、可移动块的判断分割的子图片,能否按上下左右移动,需要加以判断上下移动,改变图片位置的y值,数字矩阵的行值;左右移动,改变图片位置的x值,数字矩阵的列值;即经过变更后数字矩阵满足:a[i,j]=0,则移动有效;如上例,6向下,2向右,7向左都为有效移动。6、移动的实现键值响应,一个移动是有效的,需要重绘图形来实现。移动的过程是一个位置交换的过程。如上例,6向下,是
10、6与0位置互换,数字矩阵值和图片互换。构造一个方法swap()实现以下要求:(1)数字矩阵a[i,j]数值互换;(2)图片重绘,图片互换;
此文档下载收益归作者所有