java移动拼图游戏模拟
[size=large]自己写的一个移动拼图的雏形,自己可以在此基础上发展[/size]
public class MovePuzzle {
/** * */ static int rank[][];
/** * 0数组的索引 */ public static int ZERO_INDEX_Y; public static int ZERO_INDEX_X;
/** * */ private static int x = 3; private static int y = 3;
/** * * @param rak */ public MovePuzzle(int x, int y) { this.rank = new int[x][y]; this.x = x; this.y = y;
}
/** * 初始化this.rank * * @return 返回一个初始化的二维数组 */ public int[][] initRank() { return this.initRank(initRank(this.rank)); }
/** * 初始化参数1 * * @param rak * @return 将参数1的二维数组初始化成一个 从0开始的一个二维数组 0 1 2 3 4 5 6 7 8 */ private int[][] initRank(int[][] rak) { for (int i = 0; i < rak.length; i++) { for (int j = 0; j < rak[i].length; j++) { rak[i][j] = i * rak.length + j; if (rak[i][j] == 0) { this.ZERO_INDEX_X = i; this.ZERO_INDEX_Y = j; } } } return rak; }
/** * 打印数组 */ public void printArr() { this.print2DArr(this.rank); }
/** * 打印出所有的二维数组 */ public void print2DArr(int[][] twoDArr) { for (int i = 0; i < twoDArr.length; i++) { for (int j = 0; j < twoDArr[i].length; j++) { System.out.print(twoDArr[i][j] + "\t"); } System.out.println(); } }
/** * 得到0值得x索引和y索引 * * @param twoDArr */ public void getZero_index(int[][] twoDArr) { for (int i = 0; i < twoDArr.length; i++) { for (int j = 0; j < twoDArr[i].length; j++) { if (twoDArr[i][j] == 0) { this.ZERO_INDEX_X = i; this.ZERO_INDEX_Y = j; } } } }
/** * 调换this.rank[oldX][oldY] 和 this.rank[newX][newY]的值 * * @param oldX * @param oldY * @param newX * @param newY * @return 是否调换成功 */ public boolean exchangeBlock(int oldX, int oldY, int newX, int newY) { int tmp = 1; tmp = this.rank[oldX][oldY]; this.rank[oldX][oldY] = this.rank[newX][newY]; this.rank[newX][newY] = tmp; if (tmp == 0) { this.ZERO_INDEX_X = newX; this.ZERO_INDEX_Y = newY; } return true; }
/** * 检查是否可以移动 * * @param oldX * @param oldY * @param newX * @param newY * @return */ public boolean checkCanMove(int oldX, int oldY, int newX, int newY) { boolean result = true; if (this.rank[oldX][oldY] != 0 && this.rank[newX][newY] != 0) { result = false; } else if ((oldX != newX) && (oldY != newY)) { result = false; } return result; }
/** * 移动数字index * * @param index */ public void moveBlock(int index) { int index_x = 0; int index_y = 0; /** * 找出要移动的数字的位置 */ for (int i = 0; i < this.rank.length; i++) { for (int j = 0; j < this.rank[i].length; j++) { if (this.rank[i][j] == index) { index_x = i; index_y = j; } } } if (checkCanMove(this.ZERO_INDEX_X, this.ZERO_INDEX_Y, index_x, index_y)) { exchangeBlock(this.ZERO_INDEX_X, this.ZERO_INDEX_Y, index_x, index_y); } }}
[size=large]下面是test类:[/size]
public class Test {
/** * @param args */ public static void main(String[] args) { MovePuzzle movePuzzle = new MovePuzzle(3, 3); movePuzzle.initRank(); movePuzzle.printArr(); move(movePuzzle,1); move(movePuzzle,2); move(movePuzzle,5); move(movePuzzle,4); move(movePuzzle,3); move(movePuzzle,1); move(movePuzzle,2); move(movePuzzle,3); move(movePuzzle,4); move(movePuzzle,8); move(movePuzzle,7); move(movePuzzle,6); move(movePuzzle,1); move(movePuzzle,2); move(movePuzzle,3); move(movePuzzle,5); move(movePuzzle,8); move(movePuzzle,7); move(movePuzzle,6); move(movePuzzle,4); move(movePuzzle,5); move(movePuzzle,8); move(movePuzzle,7); move(movePuzzle,6); move(movePuzzle,4); move(movePuzzle,1); move(movePuzzle,2); move(movePuzzle,3); move(movePuzzle,8); move(movePuzzle,5); move(movePuzzle,6); move(movePuzzle,4); move(movePuzzle,1); move(movePuzzle,2); move(movePuzzle,3); move(movePuzzle,6); move(movePuzzle,5); move(movePuzzle,7); move(movePuzzle,4); move(movePuzzle,1); move(movePuzzle,2); move(movePuzzle,3); move(movePuzzle,6); move(movePuzzle,8); move(movePuzzle,7); move(movePuzzle,4); move(movePuzzle,1); move(movePuzzle,2); move(movePuzzle,3); move(movePuzzle,6); move(movePuzzle,8); move(movePuzzle,7); move(movePuzzle,4); move(movePuzzle,1); move(movePuzzle,2); move(movePuzzle,3); move(movePuzzle,6); move(movePuzzle,8); move(movePuzzle,7); move(movePuzzle,4); move(movePuzzle,1); move(movePuzzle,2); move(movePuzzle,3); move(movePuzzle,6); move(movePuzzle,8); move(movePuzzle,7); move(movePuzzle,7); move(movePuzzle,8); }
public static void move(MovePuzzle movePuzzle,int i){ movePuzzle.moveBlock(i); System.out.println("-----调换后"+i+"后------"); movePuzzle.printArr(); }}
java移动拼图游戏模拟相关推荐
- JAVA实现拼图游戏
JAVA实现拼图游戏 package org.test; /** * <p>Title: LoonFramework</p> * <p>Description: ...
- java拼图游戏设计文档_基于JAVA的拼图游戏的设计与实现(含录像)
基于JAVA的拼图游戏的设计与实现(含录像)(任务书,开题报告,中期检查表,外文翻译,毕业论文15500字,程序代码,答辩PPT,答辩视频录像) 摘 要 在我们日常生活中,有很多的益智类游戏,如七巧 ...
- java实现智能拼图,JAVA实现拼图游戏
JAVA实现拼图游戏 /** * Title: LoonFramework * Description:拼图图像处理[未优化](优化算法已内置于loonframework-game框架中.) * Co ...
- Java实战---拼图游戏
目录 1:拼图游戏的介绍 2:实战演示 (1)整体的窗体搭建 (2)菜单的搭建 (3)加载图片 (4)图片顺序的打乱 (5)实现图片的移动以及可以创建一些快捷键 (6)点击事件的实现 3:拼图游戏完整 ...
- java拼图游戏系统总体方案_基于JAVA的拼图游戏的设计与实现(含录像)
基于的拼图游戏的设计与实现(含录像)(任务书,开题报告,中期检查表,外文翻译,毕业论文15500字,程序代码,答辩PPT,答辩视频录像) 摘 要 在我们日常生活中,有很多的益智类游戏,如七巧板,21 ...
- Java 简单拼图游戏(实现音乐播放功能)
此程序为用JAVA编写的拼图小游戏,可通过简单的图片移动实现拼图,并实现音乐播放功能.(此程序只完成简单功能的实现,大佬勿喷) 程序源码下载:点击下载程序源码 软件系统实现 拼图主体为一方形区域,位于 ...
- java练习--拼图游戏之登录
点击重新登录菜单,进入登录页面 1. 首先要隐藏游戏的主界面 2. 展示登录界面 3. 当按下登录按钮时,登录按钮图片颜色变深. 4. 松开登录按钮时,获取用户名.密码和验证码的输入信息,进行检验,正 ...
- java拼图游戏Mian_Java拼图游戏源码 MainApp启动器
main():
创建主界面类对 联合开发网 - pudn.com...
Java拼图游戏源码 所属分类:其他 开发工具:Java 文件大小:1977KB 下载次数:3 上传日期:2019-05-18 10:44:10 上 传 者:李易峰1 说明: MainApp启动器 ...
- 拼图游戏 java_Java实现拼图游戏
Java实现拼图游戏以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 偶尔帮同学作一个拼图游戏 要求多加注释 实现后加了这 ...
最新文章
- .net中的IO体系介绍
- #pragma once 是什么意思?
- abap中利用se95还原程序到原始版本
- OpenCV_008-OpenCV 中的图像算术运算
- 笔记:《突破现实的困境:趋势、禀赋与企业家的大战略》
- Qt学习笔记-QSS装饰控件
- linux内核之字符设备驱动图解
- PHP中文手册官方下载地址
- Spring学习-入门
- NVIDIA CUDA各版本下载链接(包括最新11版本和以往10.2版本)
- 浅析《数据安全能力成熟度模型》
- react-native系列(11)组件篇:Image图片加载和ImageEditor图片剪切
- 【转】Web 设计中最常用的 10 种色调以及它们的示例
- 初步使用计算机教学案列,中小学信息技术教学案例
- vue.js创建网站实例1
- zynq 加载bit方法总结
- arcpy更换符号系统
- 《Android群英传》读书笔记---10.2(终篇)
- html 按钮禁用状态,按钮状态——禁用状态
- Research Commentary on Recommendations with Side Information: A Survey and Research Directions
热门文章
- win10系统改win7设置bios方法图文教程
- ECharts 绘制地图飞线
- 如何看待IT行业发展前景,就业前景和人才需求趋势
- itext html to pdf设置边距,itextpdf特定页面上的不同边距
- Error:Attempt to invoke virtual method ‘void android.widget.TextView.setText(java.lang.CharSeq
- 清华大学交叉信息研究院姚班修改培养模式:姚班、智班、量信班全合并
- 2022数据安全法律法规标准关注文件整理
- 1000geno_maf
- excel翻译功能怎么用?试试这些翻译excel的软件吧
- 高通耳机阻抗估算流程