首页 > 代码库 > amazon 设计 10 puzzle.
amazon 设计 10 puzzle.
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. } } }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。