| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 769 人关注过本帖
标题:新手求找个错误
只看楼主 加入收藏
叼着奶嘴
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-3-21
结帖率:66.67%
收藏
 问题点数:0 回复次数:6 
新手求找个错误
import javax.swing.JOptionPane;

public class FindWay extends MakeLabyrinth{
    public int [][] labyr = new int[8][8];
    public String put = new String();
    public static void main(String[] args) {
        //创建一个迷宫
        MakeLabyrinth laby = new MakeLabyrinth();
        laby.make();
        JOptionPane.showMessageDialog(null, "   迷宫为: \n" + laby.output);
        
        FindWay findLa = new FindWay();
        for(int a = 0;a < 8;a++)
            for(int b = 0;b < 8;b++)
                findLa.labyr[a][b] = laby.labyrinth[a][b];
        int i = 1;
        int j = 1;
        if(findLa.find(i , j) == 1) {
            for(int a = 0;a < 8;a++){
                for(int b = 0;b < 8;b++) {
                    findLa.put += findLa.labyr[a][b];
                    findLa.put += "    ";
                }
            findLa.put += "\n";
            }
            
            JOptionPane.showMessageDialog(null, "   迷宫为: \n" + findLa.put);
        }
        else {
            
        }
        
    }
   
    public int find(int i ,int j) {
        if(i == 6 && j == 6) {
            return 1;
        }
        else{
            this.labyr[i][j] = 2;
            
            if(this.find(i + 1 , j) == 0 || this.find(i - 1 , j) == 0 || this.find(i , j + 1) == 0 ||this.find(i , j - 1) == 0) {
                return 1;
            }
            else {
                this.labyr[i][j] = 0;
                return 0;
            }
        }
        
    }
}

class MakeLabyrinth {
    public int [][] labyrinth = new int[8][8];
    String output = new String();
    //随机一个迷宫
    //1代表墙,0代表通路。最后找到的路用2表示。边界为1;
    public void make() {
        for(int i = 0 ; i < 8 ;i++) {
            for(int j = 0; j < 8;j++) {
                int number = (int)(Math.random() * 11);
                if(i == 0 || i == 7 || j == 0 || j ==7) {
                    this.labyrinth[i][j] = 1;
                }
                else if(number > 7) {  //墙少一点
                    this.labyrinth[i][j] = 1;
                }
                else {
                    this.labyrinth[i][j] = 0;
                }
                output += this.labyrinth[i][j] + "   ";
            }
            output += "\n";
        }   
    }
搜索更多相关主题的帖子: static void public import null 
2013-04-04 10:51
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
什么意思?啥都没有,迷宫求解?

JAVA你放到C版,难怪没人回复了


[fly]存在即是合理[/fly]
2013-04-04 20:37
面朝大海1994
Rank: 2
等 级:论坛游民
威 望:1
帖 子:27
专家分:38
注 册:2012-12-31
收藏
得分:0 
你的编译系统就通不过去吧,不要乱抄代码。

吃得苦中苦,方为人上人!
2013-04-04 23:30
尹金魁2031
Rank: 3Rank: 3
来 自:河南省南阳市
等 级:论坛游侠
帖 子:156
专家分:162
注 册:2012-12-29
收藏
得分:0 
版主说的对,不要有病乱投医
2013-04-05 10:18
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
兄弟,你看清所在地啊!

Maybe
2013-04-05 10:49
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
首先,语法上,你最后少一个右花括号

第二,逻辑上,你的find函数根本不对,一定会溢出。其它地方也写的不好,逻辑冗余

第三,对象关系上,FindWay与MakeLabyrinth只是调用关系,你继承它干什么,还嫌自己的代码不够乱

第四,对象设计上,变量都是暴露给外界,完全没把OO的封装性放在心上

总结,欲速则不达,好好把基础打扎实了

重剑无锋,大巧不工
2013-04-05 14:16
czzdcn123
Rank: 7Rank: 7Rank: 7
来 自:江西
等 级:黑侠
威 望:3
帖 子:258
专家分:510
注 册:2013-3-7
收藏
得分:0 
路过
2013-04-05 16:25
快速回复:新手求找个错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012572 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved