2012-10-07 142 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

很好的答案,而不是讓遊戲離開 –