首页 > 其他 > 详细

amazon 设计 10 puzzle.

时间:2014-08-12 06:51:13      阅读:280      评论:0      收藏:0      [点我收藏+]
class Edge {
    enum Type {
        inner, outer, flat
    }
 
    Piece parent;
    Type type;
 
    boolean fitsWith(Edge type) {
    }; // Inners & outer fit together.
}
 
class Piece {
    Edge left, right, top, bottom;
 
    // 90, 180, etc
    Orientation solvedOrientation = 90;
}
 
class Puzzle {
    // Remaining pieces left to put away.
    Piece[][] pieces;
    Piece[][] solution;
    Edge[] inners, outers, flats;
 
    // We‘re going to solve this by working our way
    // in-wards, starting with the corners.
    // This is a list of the inside edges.
    Edge[] exposed_edges;
 
    void sort() {
 
        // Iterate through all edges,
        // adding each to inners, outers, etc,
        // as appropriate.
        // Look for the corners—add those to solution.
        // Add each non-flat edge of the corner
        // to exposed_edges.
 
    }
 
    void solve() {
        for (Edge edge1 : exposed_edges) {
            // Look for a match to edge1
            if (edge1.type == Edge.Type.inner) {
                for (Edge edge2 : outers) {
                    if (edge1.fitsWith(edge2)) {
                        // We found a match!
                        // Remove edge1 from
                        // exposed_edges.
                        // Add edge2‘s piece
                        // to solution.
                        // Check which edges of edge2
                        // are exposed, and add
                        // those to exposed_edges.
                    }
                }
                // Do the same thing,
                // swapping inner & outer.
            }
        }
    }
}

 

amazon 设计 10 puzzle.,布布扣,bubuko.com

amazon 设计 10 puzzle.

原文:http://www.cnblogs.com/leetcode/p/3906335.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!