2012-10-07 93 views
-4

我想将此JavaScript代码转换为python,我还没有在JS中使用基础。将JavaScript代码转换为python

所以我不知道如何翻译上面的代码。

任何帮助或recommandation请

Packer = function(w, h) { 
    this.root = { x: 0, y: 0, w: w, h: h }; 
}; 

Packer.prototype = { 

    fit: function(blocks) { 
    var n, node, block; 
    for (n = 0; n < blocks.length; n++) { 
     block = blocks[n]; 
     if (node = this.findNode(this.root, block.w, block.h)) 
     block.fit = this.splitNode(node, block.w, block.h); 
    } 
    }, 

    findNode: function(root, w, h) { 
    if (root.used) 
     return this.findNode(root.right, w, h) || this.findNode(root.down, w, h); 
    else if ((w <= root.w) && (h <= root.h)) 
     return root; 
    else 
     return null; 
    }, 

    splitNode: function(node, w, h) { 
    node.used = true; 
    node.down = { x: node.x,  y: node.y + h, w: node.w,  h: node.h - h }; 
    node.right = { x: node.x + w, y: node.y,  w: node.w - w, h: h   }; 
    return node; 
    } 

} 
+2

所以要么你不明白你发布的代码,在这种情况下,你怎么知道它是否值得翻译。或者你知道代码的作用,所以你不应该在Python中编写它的问题。 – lqc

+1

你是否还没有坚实的Python基础?如果你有,它应该很容易转换,因为JavaScript本身没有那么多'不那么容易理解'的语言结构。阅读代码,将其写入python。就如此容易。顺便说一句,-1不是我。 – Prasanth

回答

2

的代码被称为definining Packer对象,使用构造接受wh参数。

它还定义了以下方法:

fit(blocks) 
findNode(root, w, h) 
splitNode(node, w, h) 

对象具有称为root成员变量,用来装一些状态。其余的应该可以理解,祝你好运。

+0

很好的答案,而不是让游戏离开 –