精华内容
下载资源
问答
  • java 走迷宫

    2021-04-05 14:32:56
    java 走迷宫 ```import java.util.*; public class MiGong{ public static void main(String [] args){ int[][] array = { {1,1,1,1,1,1,1,1,1}, {0,1,0,0,0,0,0,1,0}, {1,1,1,0,0,0,0,1,0}, {1,1,0,...

    java 走迷宫

    ```import java.util.*;
    public class MiGong{
    	public static void main(String [] args){
    		int[][] array = {
    			{1,1,1,1,1,1,1,1,1},
    			{0,1,0,0,0,0,0,1,0},
    			{1,1,1,0,0,0,0,1,0},
    			{1,1,0,0,0,0,0,1,0},
    			{1,1,0,0,0,0,0,1,0},
    			{0,1,1,1,1,0,0,1,0},
    			{0,1,0,0,1,1,0,1,0},
    			{0,1,1,1,1,1,0,1,0},
    			{0,1,0,0,1,1,1,1,1}
    		};
    		boolean isSuccess =false;
    		int row = 0;
    		int col = 0;
    		array[row][col]=2;
    		while(!isSuccess){
    			System.out.println("**********************");
    			for (int i = 0;i<array.length;i++){
    				for(int j = 0;j<array[i].length;j++){
    					System.out.print(array[i][j]+" ");
    				}
    				System.out.println();
    			}
    			System.out.println("**********************");
    
    			System.out.println("**********************");
    			Scanner scanner = new Scanner(System.in);
    			System.out.println("输入 W A S D 控制方向");
    			System.out.println("**********************");
    			String  str = scanner.next();
    			switch(str){
    				case "W" :
    					if((row-1>=0)&&(array[row-1][col]!=0)){
    						array[row][col]=1;
    						row-=1;
    						
    					}else{
    						System.out.println("输入超出地图或前方有障碍,请重新输入");
    					}
    					break;
    				case "A" :
    					if((col-1>=0)&&(array[row][col-1]!=0)){
    						array[row][col]=1;
    						col-=1;
    					}else{
    						System.out.println("输入超出地图或前方有障碍,请重新输入");
    					}
    					break;
    				
    				case "S" :
    					if((row+1<array.length)&&(array[row+1][col]!=0)){
    						array[row][col]=1;
    						row+=1;
    					}else{
    						System.out.println("输入超出地图或前方有障碍,请重新输入");
    					}
    					break;
    				case "D" :
    					if((col+1<array[row].length)&&(array[row][col+1]!=0)){
    						array[row][col]=1;
    						col+=1;
    					}else{
    						System.out.println("输入超出地图或前方有障碍,请重新输入");
    					}
    					break;
    				default:
    					System.out.println("输入无效,请重新输入:");
    					break;
    			}
    			array[row][col]=2;
    			if(array[8][8]==2){
    				isSuccess = true;
    				//最后成功,遍历一遍
    				System.out.println("**********************");
    			    for (int i = 0;i<array.length;i++){
    					for(int j = 0;j<array[i].length;j++){
    						System.out.print(array[i][j]+" ");
    					}
    					System.out.println();
    				}
    				System.out.println("**********************");
    				System.out.println("恭喜您,挑战成功!");
    			}
    		}
    	}
    }
    
    
    展开全文
  • Java 走迷宫

    2011-11-06 15:49:28
    Java写的一个走迷宫的小游戏~ 有图形界面撒~ 可以用键盘控制撒~ 完全可行撒~
  • java走迷宫

    千次阅读 2016-01-05 17:29:57
    // 迷宫定义 int[][] maze = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 0, 1, 1, 1, 0, 1, 1, 1, 1 }, { 1, 1, 0, 1, 0, 1, 1, 1, 1, 1 }, { 1, 0, 1, 0, 0, 0, 0, 0, 1, 1 }, { 1, 0, 1, 1, 1...
    public class Step {
    		int x, y, d;
    
    		public Step(int x, int y, int d) {
    			this.x = x;// 横坐标
    			this.y = y;// 纵坐标
    			this.d = d;// 方向
    		}
    
    
    		public boolean equals(Step obj) {
    			if (x != obj.x)
    				return false;
    			if (y != obj.y)
    				return false;
    			return true;
    		}
    
    
    
    	public static void main(String[] args) {
    		// 迷宫定义
    		int[][] maze = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
    				{ 1, 0, 1, 1, 1, 0, 1, 1, 1, 1 },
    				{ 1, 1, 0, 1, 0, 1, 1, 1, 1, 1 },
    				{ 1, 0, 1, 0, 0, 0, 0, 0, 1, 1 },
    				{ 1, 0, 1, 1, 1, 0, 1, 1, 1, 1 },
    				{ 1, 1, 0, 0, 1, 1, 0, 0, 0, 1 },
    				{ 1, 0, 1, 1, 0, 0, 1, 1, 0, 1 },
    				{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } };
    		int[][] move = { { 0, 1 }, { 1, 1 }, { 1, 0 }, { 1, -1 }, { 0, -1 },
    				{ -1, -1 }, { -1, 0 }, { -1, 1 } };
    
    		Stack<Step> s = new Stack<Step>();
    		
    		int i=path(s, new Step(1,1,-1), new Step(6,8,1), maze, move);
    		System.out.println(i);
    		
    		while (!s.isEmpty()) {
    			Step a = s.pop();
    			System.out.println("step.x=" + a.x + ",step.y=" + a.y);
    		}
    
    	}
    
    	public static int path(Stack<Step> s, Step beg, Step end, int[][] maze,
    			int[][] move) {
    		s.push(beg);
    		while (!s.isEmpty()) {
    			Step tmp = s.pop();
    			int x = tmp.x;
    			int y = tmp.y;
    			int d = tmp.d + 1;
    			while (d < 8) {
    				int i = x + move[d][0];
    				int j = y + move[d][1];
    				if (maze[i][j] == 0) {
    					tmp = new Step(i, j, d); // 到达新点
    					s.push(tmp);
    					x = i;
                        y = j;
    					maze[x][y] = -1; // 到达新点,标志已经到达
    					if(tmp.equals(end)){
    						return 1;
    					}else{
    						d=0;
    					}
    				}else{
    					d++;
    				}
    			}
    		}
    		return 0;
    	}
    }

    展开全文
  • java走迷宫.docx

    2020-06-15 19:07:35
    import java.util.Scanner; public class Shuzi{ public static void main(String[] args){ rule rule1=new rule(); player player1=new player(); computer computer1=new computer(); System.out....
  • java走迷宫小游戏

    2021-06-21 11:30:28
    设置m*n大小的区域,m和n由程序输入。 随机放置敌人x个,x由程序输入。 随机设置玩家初始位置,及出口位置。 玩家可以上下左右移动,有3次遭遇敌人的机会,超过3次判输。 玩家到出口算赢。
  • java 走迷宫 maze

    2009-11-02 21:06:53
    自己java写的迷宫游戏,提供两种随机生成地图的方式:随机布点法和图的深度优先遍历法两种. 可自动查找路劲并显示...
  • java走迷宫求指教

    2018-03-17 11:53:29
    import java.util.Stack;class Step{ int x,y,d; public Step(int x,int y,int d) { this.x = x;//横坐标 this.y = y;//纵坐标 this.d = d;//方向 }}public class Maze {public static void m...
    import java.util.Stack;
    
    class Step{
        int x,y,d;
        public Step(int x,int y,int d) {
            this.x = x;//横坐标
            this.y = y;//纵坐标
            this.d = d;//方向
        }
    }
    public class Maze {
    public static void main(String[] args) {
        // 迷宫定义
    int[][] maze={{1,1,1,1,1,1,1,1},  
                  {1,0,1,1,0,0,0,1},  
                  {1,0,0,0,0,1,0,1},  
                  {1,0,1,0,0,0,0,1},  
                  {1,0,1,1,1,0,1,1},  
                  {1,1,1,1,1,1,1,1}};
    //int[][] maze={{1,1,1,1,1,1,1,1},  
                //{1,0,0,0,0,0,0,1},  
                //{1,0,0,1,1,1,1,1},  
                //{1,0,1,0,0,0,1,1},  
                //{1,0,0,0,1,0,0,1},  
                //{1,1,1,1,1,1,1,1}};
    //行走的方向东南西北四个方向,与原坐标相加构成下一坐标
    int[][] move = {{0,1},{1,0},{0,-1},{-1,0}};
    Stack s = new Stack();  
    //Stack s1 = new Stack();  
    //int a = 
    path(maze, move, s);  
    //Step aa = null;  
    //反转堆栈里面的元素  
    Stack s1 = new Stack();  
    //将s堆栈里面的元素出栈,并且将元素压到s2的堆栈里面,这样就能保证是按行走的顺序输出坐标,否则是倒序输出的坐标  
    while(!s.isEmpty()){  
        Step step = (Step) s.pop();  
        s1.push(step);  
    }  
    //打印出最后的坐标顺序  
    //StringBuffer aaa = new StringBuffer() ;  
    while(!s1.isEmpty()){  
        Step step = (Step) s1.pop();  
        //aaa.append("("+step.x+","+step.y+")"+"→");  
        System.out.print("("+step.x+","+step.y+")");}
    }  
    //String str = aaa.toString();  
    //System.out.print(str.substring(0, str.length()-1)); } 
    //System.out.println("\r");  }


    //打印出走过的所有坐标位置  


      


    //计算路径  
    public static boolean path(int[][] maze,int[][] move,Stack s){  
    Step temp = new Step(1,1,0); //起点  
    s.push(temp);  
    while(!s.isEmpty()){  
        temp = (Step) s.pop();  
        int x = temp.x;  
        int y = temp.y;  
        int d = temp.d;
            //如果d大于4也就是说当前坐标的无路可走,只能后退一步,找后一坐标的下一个方向,在继续寻找坐标  
        while(d<4){  
            int i = x + move[d][0];  
            int j = y + move[d][1];  
            if(maze[i][j] == 0){    //该点可达  
                temp = new Step(i,j,d); //到达新点  
                s.push(temp);
                x = i;  
                y = j;
                maze[x][y] = 1;  //到达新点,标志已经到达
            if(x == 4 && y == 5){  
                    return true; } //到达出口,迷宫有路,返回true  
                else{  
                   d = 0;  //重新初始化新点方向  
                }
                
            }else{  
                d++; //改变当前点方向方向  
               } 
           }   
        }  
      return false;  
      }  

    }

    代码大概就这样,但结构最后一步从(3.4)直接到(4.5)了,为什么啊?出栈的问题到底在哪里?


    展开全文
  • 寻找迷宫通路并且在窗口中显示,窗口简单美观,(虽然没有监听器),数据结构的作业, 找通路用的是深度优先回溯法
  • 说是走迷宫其实就是之前打印字,然后把白色的都走遍,有木有? jiuji

    说是走迷宫其实就是之前打印字,然后把白色的都走遍,有木有?

    纠结就纠结在怎么把标准输出显示在jTextArea中,这个,先卖关子,看完源代码和解释之后再和你们说,说不定你们看完源代码就自己就会了,什么重定向转发的都弱爆了!

    废话不多说,来上源代码:

    因为在培养我们的MVC模式,所以明明一个源代码可以搞掂的,被拆分成了三个:分别是model、control和view,其中view是用netbeans自动生成的Jframe文件,netbeans就是我心中的痛,每次开都要半小时啊,有木有?

    有解决办法的亲,告诉一下我怎么解决呗!一直就卡在“正在启动模块...”

    首先是Model层的代码(解释照样是写在源代码中,顺着看,还可以熟悉代码...)

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package maze;
    
    import java.io.PrintStream;
    
    /**
     * 这就是模型层,只要是实现的功能,都在这里能找到
     *
     * @author Janeness
     */
    public class Name {
    
        int x1 = 1; //设置运行的初始位置的x为1
        int y1 = 1;    //初始的y位置为1
        final String s1 = " □ ";
        //这里是定义你需要的字符串,一个为空心方,一个是实心方
        final String s2 = " ■ ";
        final String roolback = " @ ";
        //回滚的符号
        final int x = 40;
        //这里定义的是行数和列数,用来实现对应的字符的排列
        final int y = 40;
        String a[][] = new String[x][y];
        //这里就是正式定义数组,数组的大小就通过上面的x和y决定
        final String down = " ↓ ";
        final String up = " ↑ ";
        final String left = " ←";
        final String right = " →";
        //分别对应向下、向上、向左、向右走
        PrintStream ps = new PrintStream(System.out);
        //用来实验重定向,没有成功,留着也没事,以后记起来再做也能行
    
    //-------------------------设置笔画----------------------------------------------
        private void setE() {
            //用来初始化所有的数组元素为空心方
            //值得注意的是,一般都是i在外围,j在内围,但是为了元素的不变,必须i在里面
            //因为最里面每次循环的是一行,一行中,只有y不变,x一直在变
            for (int j = 0; j < y; j++) {
                for (int i = 0; i < x; i++) {
                    a[i][j] = s1;
                    //初始化整个图形,为二维数组的每个元素进行设值
                }
            }
        }
    
        private void setB() {
            //用来设置边框,把四条边都变成实心方
            for (int i = 0; i < a.length; i++) {
                a[i][0] = s2;
                //四条边都是设置成s2也就是实心方
                a[i][a.length - 1] = s2;
                a[0][i] = s2;
                a[a.length - 1][i] = s2;
            }
        }
    
        private void setX(int y, int beginX, int endX) {
            //这个是用来画一横
            for (int i = beginX - 1; i < endX - 1; i++) {
                //y轴不变,x有范围,提供起始的x和结束的x就可以画一横了
                a[i][y - 1] = s2;
            }
        }
    
        private void setY(int x, int beginY, int endY) {//这个是用来画一竖
            for (int i = beginY - 1; i < endY - 1; i++) {
                //x轴不变,y有范围,提供起始的y和结束的y就可以画一横了
                a[x - 1][i] = s2;
            }
        }
    
        private void setW(int x, int y) {//这个是用来画一撇
            for (int i = x; i < x + 3; i++) {
                a[i][y] = s2;
                //因为撇和捺从左往右x都是增加的,有区别的就是y轴
                //撇从左往右y是减少的,所以y--;
                y--;
            }
        }
    
        private void setV(int x, int y) {
            for (int i = x; i < x + 3; i++) {
                a[i][y] = s2;
                //而这个从左往右y是增加的,所以y++;
                y++;
            }
        }
    
    //---------------------设置名字笔画-------------------------------------------------    
        public void printName() {
            // TODO code application logic here
            //创建一个封装好的类的对象来调用
            setE();
            setB();
            //初始化对象,并且画出边框
            setX(6, 4, 17);
            setY(4, 12, 34);
            setX(12, 4, 16);
            setY(16, 12, 34);
            setY(8, 7, 24);
            setY(11, 7, 24);
            setX(24, 5, 9);
            setX(24, 11, 17);
            setX(29, 5, 16);
            setX(34, 4, 17);
            //画出左边的偏旁
            setY(23, 6, 12);
            setW(19, 13);
            setX(10, 23, 37);
            setX(18, 19, 38);
            setY(29, 6, 18);
            //画出右边的上面部分
            setX(22, 20, 37);
            setX(34, 20, 37);
            setY(20, 22, 35);
            setY(37, 22, 35);
            //画出右边的下面部分
            printOut();
            //调用打印方法,打印出我们的二维数组对象   
    //        view.jTextArea1.setText(ps.toString());同样是测试用的
    
        }
    //---------------------------打印出来(测试)---------------------------------------
    
        public String printOut() {
            String str = "";
            //这里是输出这个数组,因为是一行一行的输出,所以x的循环再里面,先循环
            for (int j = 0; j < y; j++) {
                //这个是y的循环,在x循环完一次之后,y加1
                for (int i = 0; i < x; i++) {
                    //在y每加1的时候,循环一整个x的元素
                    str += a[i][j];
                    //把循环的值都赋值给str
                }
                str += "\n";
                //让str加上 "\n",这样可以实现jTextArea显示的换行
            }
            return str;
            //返回一个String,赋值给jTextArea
        }
    
    //---------------------------------------------------------------------------------
        public void moving() {
            if (a[x1][y1 + 1].equals(s1)) {
                down();
                //如果下面一格是白色,向下走
            } else if (a[x1 + 1][y1].equals(s1)) {
                right();
                //如果右边一格式白色,向右走
            } else if (a[x1][y1 - 1].equals(s1)) {
                up();
                //如果上边一格式白色,向上走
            } else if (a[x1 - 1][y1].equals(s1)) {
                left();
                //如果左边一格式白色,向左走
            } else {
                roolback();
                //回滚,走法和上一步的方向相反
            }
        }
    //------------------------上下左右的方法--------------------------------------------
        private void down() {
            a[x1][y1] = down;
            y1++;
        }
    
        private void up() {
            a[x1][y1] = up;
            y1--;
        }
    
        private void left() {
            a[x1][y1] = left;
            x1--;
        }
    
        private void right() {
            a[x1][y1] = right;
            x1++;
        }
    
        private void roolback() {
            a[x1][y1] = roolback;
            if (a[x1][y1 - 1].equals(down)) {
                //如果上面一格是向下,那么向上走
                y1--;
            } else if (a[x1][y1 + 1].equals(up)) {
                 //如果下面一格是向上,那么向下走
                y1++;
            } else if (a[x1 - 1][y1].equals(right)) {
                //如果左边一格是向右,那么向左走
                x1--;
            } else if (a[x1 + 1][y1].equals(left)) {
                //如果右边一格是向左,那么向右走
                x1++;
            }
        }
    }
    
    下面是Control中的源代码:

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package maze;
    
    /**
     *
     * @author Janeness
     */
    public class Control extends Thread {
    
        Name model = new Name();
        //在这里定义model并创建实例
        View v;
        //这里只用声明,如果创建实例的话,会出此案初始化错误
        //因为在view中也有创建control实例
    
        public Control(View v) {
            this.v = v;
            //初始化的时候把view的值赋值给control,指定view为当前的view
            //而不是新创建并实例化的任何其他view
        }
    
        public void printLn() {
            model.printName();
            //调用model中的打印图片的方法进行打印
            v.jTextArea1.setText(model.printOut());
            //对view中的jTextArea进行赋值,才能显示出打印的图片
        }
    
        @Override
        public void run() {//调用thread的start()方法时,执行control线程
            while (!(model.a.equals("#"))) {
                //设置终点为该数组元素等于字符串"#",因为没设置,所以默认是走到a[1][1]就不走了
                try {
                    model.moving();
                    //实现走动方法,不到终点就一直运行
                    Thread.sleep(100);
                    //继承自thread,所以没走一步,休眠100毫秒
                    //这里要对线程进行异常的捕获
                    v.jTextArea1.setText(model.printOut());
                    //修改之后,打印出修改之后的图片
                } catch (InterruptedException ex) {
                }
            }
    
        }
    }
    
    最后是view层的源代码:

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package maze;
    
    
    /**
     *
     * @author Janeness
     */
    public class View extends javax.swing.JFrame {
        Control control=new Control(this);
        //创建并实例化control类,并把当前的view复制给在control类中声明的view
    
        /**
         * Creates new form View
         */
        public View() {
            initComponents();
        }
    
        /**
         * This method is called from within the constructor to initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is always
         * regenerated by the Form Editor.
         */
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {
    
            jScrollPane1 = new javax.swing.JScrollPane();
            jTextArea1 = new javax.swing.JTextArea();
            jButton1 = new javax.swing.JButton();
            jButton2 = new javax.swing.JButton();
    
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    
            jTextArea1.setColumns(20);
            jTextArea1.setRows(5);
            jScrollPane1.setViewportView(jTextArea1);
    
            jButton1.setText("打印图案");
            jButton1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    PrintPicture(evt);
                }
            });
    
            jButton2.setText("开始运行");
            jButton2.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jButton2ActionPerformed(evt);
                }
            });
    
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 633, Short.MAX_VALUE)
                    .addGap(18, 18, 18)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jButton1)
                        .addComponent(jButton2))
                    .addGap(27, 27, 27))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jScrollPane1)
                    .addContainerGap())
                .addGroup(layout.createSequentialGroup()
                    .addGap(118, 118, 118)
                    .addComponent(jButton1)
                    .addGap(75, 75, 75)
                    .addComponent(jButton2)
                    .addContainerGap(295, Short.MAX_VALUE))
            );
    
            pack();
        }// </editor-fold>                        
    
        private void PrintPicture(java.awt.event.ActionEvent evt) {                              
            // TODO add your handling code here:
            control.printLn();//实现打印名字方法
        }                             
    
        private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            // TODO add your handling code here:
            control.start();//启动线程
        }                                        
    
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            /* Set the Nimbus look and feel */
            //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
            /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
             * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
             */
            try {
                for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                    if ("Nimbus".equals(info.getName())) {
                        javax.swing.UIManager.setLookAndFeel(info.getClassName());
                        break;
                    }
                }
            } catch (ClassNotFoundException ex) {
                java.util.logging.Logger.getLogger(View.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                java.util.logging.Logger.getLogger(View.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                java.util.logging.Logger.getLogger(View.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (javax.swing.UnsupportedLookAndFeelException ex) {
                java.util.logging.Logger.getLogger(View.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            }
            //</editor-fold>
    
            /* Create and display the form */
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new View().setVisible(true);
                }
            });
        }
        // Variables declaration - do not modify                     
        public javax.swing.JButton jButton1;
        public javax.swing.JButton jButton2;
        public javax.swing.JScrollPane jScrollPane1;
        public javax.swing.JTextArea jTextArea1;
        // End of variables declaration                   
        //在这里,如果jScrollPane1和jTextArea1不是public修饰的话
        //那么要设置到为public的才行,要不control无法调用该属性
    }
    

    其实关键的是control的实现和使用,大部分代码都没什么用,在创建jFrame的时候就已经生成了那些代码,所以,也就不去深究了,有时间再深究。

    对了,标准输出要在jTextArea输出的代码就是,创建一个返回值为String类型的方法,遍历出String二位数组,然后给jTextArea赋值就可以了,详细代码:

        public String printOut() {
            String str = "";
            //这里是输出这个数组,因为是一行一行的输出,所以x的循环再里面,先循环
            for (int j = 0; j < y; j++) {
                //这个是y的循环,在x循环完一次之后,y加1
                for (int i = 0; i < x; i++) {
                    //在y每加1的时候,循环一整个x的元素
                    str += a[i][j];
                    //把循环的值都赋值给str
                }
                str += "\n";
                //让str加上 "\n",这样可以实现jTextArea显示的换行
            }
            return str;
            //返回一个String,赋值给jTextArea
        }
    这样就简单的解决了,我绞尽脑汁辛苦那么久都没有做出来的功能了!

    好了,下次分析其他代码

    现在在做简易俄罗斯方块,所以,下次的blog也许就是俄罗斯方块的讲解了!!!

    展开全文
  • //每一步,输出迷宫当前状态 } if(p.row==MAX_ROW-5 && p.col==MAX_COL-1) { printf("(%d, %d)\n", p.row, p.col); while(predecessor[p.row][p.col].row!=-1) { p=predecessor[p.row][p.col]; printf("(%d,%d)\n...
  • java实现走迷宫

    2016-03-14 21:12:19
    java实现走迷宫
  • 数学科学学院信息与计算科学专业毕业论文走迷宫游戏的Java实现 PAGE 15 目录 TOC \o "1-3" \h \z \u 内容摘要 2 Abstract 2 第1章 绪论 3 第2章 走迷宫游戏的描述 3 2.1 游戏规则描述 3 2.2 游戏设计的目的 3 2.3 ...
  • 主要为大家详细介绍了Java实现走迷宫回溯算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • JAVA实现走迷宫.doc

    2021-10-03 12:06:36
    JAVA实现走迷宫.doc
  • import java.util.Random; import java.util.Scanner; /** * 输入迷宫的大小和高度打印出迷宫 * @author SongErrors * */ public class Tect { public static void main(String[] args) { Scanner in = new ...
  • Java走迷宫

    2019-09-28 14:41:56
    Java语言实现的走迷宫问题
  • java走迷宫、源码

    2011-04-12 20:37:12
    java走迷宫源码、、、对于初学java、有很好的研究价值、、、
  • Java课设走迷宫.zip

    2020-06-20 15:19:23
    该资源是本人学习Java课程时的课程设计源代码,走迷宫图形用户界面实现良好,验收通过,可供学习和参考
  • JAVA实现走迷宫

    2014-06-18 22:18:12
    menuImage=new JMenu("选择墙和路的图像"); wallImage=new JMenuItem("墙的图像");//创建菜单项对象 roadImage=new JMenuItem("路的图像"); playerImage1=new JMenuItem("玩家图像"); defaultImage=new ...
  • JAVA算法:走迷宫

    2019-05-08 19:57:43
    JAVA算法:走迷宫 如图所示:二维矩阵,0代表通路,1代表障碍,形成一个迷宫。 求走迷宫的路线。 { 0, 1, 0, 0, 0 }, { 0, 1, 0, 1, 0 }, { 0, 0, 0, 0, 0 }, { 0, 1, 1, 1, 0 }, { 0, 0, 0...
  • import java.awt.*; import java.awt.geom.Ellipse2D; public class AlgoVisHelper { private AlgoVisHelper() { } public static void setColor(Graphics2D g2d,Color color){ g2d.setColor(color); } ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,732
精华内容 2,692
关键字:

java走迷宫

java 订阅