Java二维数组(案例:走迷宫)

二维数组

数组的数组—二维数组的每一个元素是一个一维数组
定义方式:

数据类型[][] 数组名 = new 数据类型[长度][长度];
数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2...,元素n},
                                     {元素1,元素2...,元素n},
                                       ...,
                                     {元素1,元素2...,元素n}};

二维数组在内存中的表现:

二维数组的应用
二维数组的长度:数组名.length —每个一维数组:数组名[下标].length
二维数组的遍历—两重for循环

        //遍历数组for(int i=0;i<array1.length;i++) {for(int j=0;j<array1[0].length;j++) {System.out.print(array1[i][j] + "\t");}System.out.println();}//系统方法for(int i = 0;i<array1.length;i++) {System.out.println(Arrays.toString(array1[i]));}

案例:走迷宫

/** 二维数组迷宫* 1.打印地图*  初始坐标(1,1),结束坐标(1,9)* 2.如何让0走起来*  通过修改横纵坐标* 3.循环输入*/
public class Demo02 {public static void main(String[] args) {//有八个一维数组,每个一维数组中有十个元素//array[0][0]char[][] array = {//y   0   1   2   3   4   5   6   7   8   9{'#','#','#','#','#','#','#','#','#','#'},//0 ----- x{'#','0',' ',' ',' ',' ','#','#',' ',' '},//1{'#','#',' ','#','#','#','#','#',' ','#'},//2{'#',' ',' ',' ',' ','#','#','#',' ','#'},//3{'#',' ','#','#',' ','#',' ',' ',' ','#'},//4{'#',' ','#','#',' ','#',' ','#','#','#'},//5{'#',' ',' ',' ',' ',' ',' ','#','#','#'},//6{'#','#','#','#','#','#','#','#','#','#'} //7};while(true) {printMaze(array);find0(array);String string=input();if(string.equals("输入错误")) {System.out.println(string);}else {move(string, array);}if(x == 1&&y==9) {break;}}System.out.println("你赢了");sc.close();}//打印迷宫(传入迷宫)public static void printMaze(char[][] array) {for(int i=0;i<array.length;i++) {for(int j=0;j<array[0].length;j++) {System.out.print(array[i][j]);}System.out.println();}}//接受键盘输入,做判断传出wasd或者输入错误public static String input() {String ch = sc.nextLine();if(ch.equals("a")||ch.equals("d")||ch.equals("w")||ch.equals("s")) {return ch;}else {return "输入错误";}}static Scanner sc =new Scanner(System.in);static int x=0,y=0;//静态变量存储0的坐标//传数组进去,找出0的坐标,存给静态变量x,ypublic static void find0(char[][]array) {for (int i = 0; i < array.length; i++) {for (int j = 0; j < array[0].length; j++) {if(array[i][j]=='0') {x=i;y=j;}}}}//将经过判断之后的键盘值传入(限定了wasd),根据输入操作数组//移动时要注意移动的方向不是#,如果是墙不移动public static void move(String string,char[][]array) {if (string.equals("a")&&array[x][y-1]!='#') {char temp = array[x][y-1];array[x][y-1] = array[x][y];array[x][y] = temp;}if (string.equals("s")&&array[x+1][y]!='#') {char temp = array[x+1][y];array[x+1][y] = array[x][y];array[x][y] = temp;}if (string.equals("d")&&array[x][y+1]!='#') {char temp = array[x][y+1];array[x][y+1] = array[x][y];array[x][y] = temp;}if (string.equals("w")&&array[x-1][y]!='#') {char temp = array[x-1][y];array[x-1][y] = array[x][y];array[x][y] = temp;}}}

杰神之JAVA二维数组(案例:走迷宫)相关推荐

  1. 什么是二维数组?二维遍历?Java二维数组制作图片迷宫 使用如鹏游戏引擎制作窗口界面 附带压缩包下载,解压后双击start.bat启动...

    什么是二维数组? 数组当中放的还是数组 int [][] arr=new int[3][2]; 有3个小箱子,每个箱子2个格子. 看结果? int [][] arr=new int[3][2]; Sy ...

  2. 案例演示Python二维列表与Java二维数组

    1.Python二维列表案例演示 运行程序,结果如下: 2.案例演示Java二维数组 package net.hw.test;/*** 功能:二维数组用法示例* 作者:华卫* 日期:2013年12月1 ...

  3. java二维数组杨辉三角_实验----Java的二维数组的应用及杨辉三角的编写

    (1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...

  4. java二维数组元素_java二维数组,获取整行元素详解

    之前给大家讲过java二维数组获取单个元素方面的知识,下面的话就来给大家讲一下java二维数组获取整行元素方面的知识. 除去获取单个元素和全部元素之外,还可以单独获取二维数组的某一行中所有元素的值,或 ...

  5. JAVA复习(二维数组——快排——迷宫)

    二维数组: (了解) 定义: 一维数组:  int[] array=new int[3] ;开辟了3个空间的int类型的数组 二维数组: int[][] 对于二维数组的初始化定义: 数组的动态初始化: ...

  6. java二维数组存储数据,从键盘上录入学生人数,考试科目数,以及每个学生每科分数,输出每个学生的最高分、最低分、总分、平均分

    java二维数组存储数据,从键盘上录入学生人数,考试科目数,以及每个学生每科分数,输出每个学生的最高分.最低分.总分.平均分 import java.util.Scanner;/* * 二维数组存储数 ...

  7. java二维数组的遍历

    java二维数组的遍历 /* * java二维数组的遍历 * 二维数组,数组座位数组元素类型的数组,数组的数组 * */ public class Test14 {public static void ...

  8. java二维数组遍历与元素查找

    java二维数组 格式 数据类型 [ ][ ] arrayName = new 数据类型[一维数组的个数][每个一维数组的长度] 例如: int [ ][ ] array = new int [2][ ...

  9. Java二维数组实现学生管理系统

    Java二维数组实现学生管理系统 一.预备知识 1.二维数组的创建1) DataType [][] name=new DataType[10][];2) DataType [][] name=new ...

最新文章

  1. 交换机SPAN功能配置
  2. 一位软件工程师的6年总结【转】
  3. CSU 1328: 近似回文词
  4. oracle11gr2查看数据库状态,Oracle 11gR2数据库文件丢失后的恢复测试
  5. php 超过100m文件上传,科技常识:apache+php上传大文件以上传100M为例
  6. cxf添加拦截器_在CXF API和拦截器中添加Gzip压缩
  7. 为什么linux的新得立软件下载,linux,debian_蝶变(Debian)_Xfce_新立得软件管理_安装不上软件了,怎么处理?,linux,debian - phpStudy...
  8. UTF-8 + BOM引起的模板空格问题(PHP使用任何模板引擎貌似都有此问题)
  9. 虚拟机网络模式与网络配置
  10. php 响应时间计算,计算每个请求的平均响应时间
  11. 内建函数(builtins)和functools
  12. 米勒机会信托或将通过GBTC投资比特币
  13. 去掉快捷方式图标上的箭头
  14. 数据库安全之Mysql数据库安全加固
  15. Matter-JS Composites 混合材料 · 上
  16. 图像处理之matlab的取整函数round、ceil、floor和fix
  17. Unity3d场景快速烘焙【2020】
  18. python统计元音字母个数_python统计并输出字符串中小写元音字母的个数?
  19. fifa15服务器位置,FIFA15球队战术位置技巧
  20. 关于旅游景点主题的HTML网页设计——青岛民俗 7页 带登录注册

热门文章

  1. Latex同时引用多篇文献修改字体/表格/图片/参考文献颜色
  2. 一款值得使用的会议室预约软件【叮当会议小程序】
  3. 怎样“管理”你的上司?
  4. Java小农养成记第四十天
  5. 02. 数据库的选择
  6. 从来不敷面膜的人_女人一旦过了30岁,敷面膜要记住“4不要”,否则还不如不敷!...
  7. 学习笔记整理_Linux基本命令
  8. alpha值计算 qcolor_alpha指数计算
  9. html打开浏览器协议,通过私有协议在Chrome浏览器网页中打开本地程序
  10. SCOM2019创建性能视图