编程之美1.14连连看游戏设计-----广度优先算法Java版

原创 2016年05月31日 09:28:07
代码从网上找的,稍微改了改。
第一遍学习先学到这些吧
public class BFS {

    public static class Queue {

        public int Depth;
        public int Dot;

        Queue() {
            Depth = -1;
            Dot = -1;
        }

        public void enterQueue(int dot, int dep) {
            Dot = dot;
            Depth = dep;
            System.out.println(Dot + " " + "The Depth is:" + Depth);
        }

        public int depDate() {
            return Depth;
        }

        public int dotdate() {
            return Dot;
        }
    };

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[][] Graph = {{0, 1, 0, 0, 1, 0, 0, 0, 0, 0},
        {1, 0, 1, 1, 0, 0, 0, 0, 0, 0},
        {0, 1, 0, 0, 0, 0, 1, 0, 0, 0},
        {0, 1, 0, 0, 1, 1, 0, 0, 0, 0},
        {1, 0, 0, 1, 0, 0, 0, 0, 1, 0},
        {0, 0, 0, 1, 0, 0, 1, 1, 0, 0},
        {0, 0, 1, 0, 0, 1, 0, 0, 0, 1},
        {0, 0, 0, 0, 0, 1, 0, 0, 1, 1},
        {0, 0, 0, 0, 1, 0, 0, 1, 0, 0},
        {0, 0, 0, 0, 0, 0, 1, 1, 0, 0},};
        boolean[] vis = new boolean[Graph.length];
        Arrays.fill(vis, false);

        Queue[] queue = new Queue[Graph.length];
        for (int i = 0; i < 10; i++) {
            queue[i] = new Queue();
        }
       BFS1(queue, Graph, vis);
        
    }

    /*
     可以实现一个起点无法遍历全部节点时的情况
     */

    public static void BFS1(Queue[] queue, int[][] Graph, boolean[] vis) {
        int base = 0;
        int top = 0;
        for (int i = 0; i < Graph.length; i++) {
            if (vis[i] == false) {
                queue[top].enterQueue(i, 1);
                top++;
                vis[i] = true;
                while (top != base) {
                   int dep = queue[base].depDate() + 1;
                   int dot = queue[base].dotdate();
                    for (int j = 0; j < 10; j++) {
                        if (Graph[dot][j] == 1 && vis[j] == false) {
                            queue[top].enterQueue(j, dep);
                            top++;
                            vis[j] = true;
                        }
                    }
                    base++;
                }
            }
        }
    }
}

编程之美1.14——连连看工程(含全部代码,伪哈希+BFS)

编程之美迄今为止最为详细的讲解,包含连连看游戏的C++所有代码片段 伪哈希+BFS+动态规划 绝对值得收藏,绝对值得浏览 我是不是该开个竖屏的专栏了 其余的扩展问题还在思索,会不定期的更新...
  • ltyqljhwcm
  • ltyqljhwcm
  • 2016年08月16日 10:20
  • 690

编程之美:第一章 1.14连连看游戏设计

/* 连连看游戏设计: 主要包含游戏局面的状态描述,游戏规则的描述:状态的合法转移(哪些操作满足规则,经过这些操作,达到哪些状态)。自动机模型适合描述游戏设计。 如何求出相同图形之间的最短路径,最短路...
  • qingyuanluofeng
  • qingyuanluofeng
  • 2014年09月14日 21:07
  • 1127

java编程之美(一)

实践编程已经有足足6年多时间,也算是有一定经验,经常在工作中遇到各种让人不爽的代码编写方式,今天忍不住要来唠叨下。 为什么叫编程之美? 在我看来,代码有丑陋难看和赏心悦目两类,当然还有介于两者之...
  • tang9140
  • tang9140
  • 2015年11月01日 18:28
  • 1028

《编程之美》1.6 饮料供货——贪心解法证明

向世界分享科学之美,让科学流行起来 问题描述:      在微软亚洲研究院上班,大家早上来的第一件事是干啥呢?查看邮件? No, 是去水房拿饮料:酸奶,豆浆,绿茶、王老吉、咖啡、可口可乐……(当然...
  • MathThinker
  • MathThinker
  • 2015年08月15日 11:37
  • 1180

[编程之美-10]面试当中的智力题(不定期更新)

[版权说明]  编程之美系列算法题集参考:  左程云 著《程序员代码面试指南IT名企算法与数据结构题目最优解》  July 著《编程之法面试和算法心得》  何海涛 著《剑指offer》  微软编程之美...
  • caicaiatnbu
  • caicaiatnbu
  • 2017年06月07日 23:44
  • 381

《编程之美》- 3.3 - 计算字符串相似度 即 最小编辑距离问题

题目 3.3计算字符串的相似度 许多程序会大量使用字符串,对于不同的字符串,我们希望能够有办法判断其相似程度。定义下列操作方法使得两个不同的字符串变得相同: 修改一个字符(如把‘a’改为...
  • fly_yr
  • fly_yr
  • 2016年05月24日 20:07
  • 713

1的数目(编程之美 java版)

int count=0;//需注意越界 int number=1;//操作数 int lower=0;//个位1个数 int mid=0;//十位1个数 int high=0;//百位1个数 ...
  • lv836735240
  • lv836735240
  • 2014年09月29日 10:01
  • 1201

编程之美之买书问题

这个问题来自《编程之美》这本书,应该在微软面试中出现过。是一个典型的动态规划问题。 问题描述 《哈利波特》系列一共有五卷,每一卷售价均8欧元。同时买不同的卷(各一本)有折扣,具体如下表所示。 ...
  • segen_jaa
  • segen_jaa
  • 2014年05月20日 19:46
  • 3219

编程之美之扩展问题

参考链接:http://blog.csdn.net/wuyuegb2312/article/details/9896831 1.1 让CPU占用率曲线听你指挥 参考: http://blog.csd...
  • jerryzcx
  • jerryzcx
  • 2014年03月06日 23:33
  • 2514

编程之美2.18—数组分割

题目: 有一个没有排序,元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组,并使两个子数组的和最接近。 基本思想: 假设数组A[1..2N]所有元素的和是SUM。模仿动...
  • wtyvhreal
  • wtyvhreal
  • 2015年04月28日 11:37
  • 678
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编程之美1.14连连看游戏设计-----广度优先算法Java版
举报原因:
原因补充:

(最多只允许输入30个字)