我正在製作一個涉及大量邏輯的2人棋牌遊戲。這是我第一次編寫一個涉及大量邏輯,繼承和代碼組織的程序。我發現自己遇到了很多意大利麪條代碼和功能,這些代碼和功能並沒有限制自己做一件事,就像我所知道的那樣是一種很好的做法。我試圖想出想法來限制我的意大利麪條代碼,但我不確定最好的方式去實現它。這是我遇到很多問題的例子。Javascript,與意大利麪代碼和組織的問題
if (that.selected && that.selected != target) {
if (that.positions[target] && that.positions[target].color == piece.color) {
...
} else {
var ind = xyz...;
if (piece.type == "king" && ind != -1) {
} else {
...
}
}
我最好的想法迄今減少,這是移動的條件語句爲單獨的功能(例如,而不是我貼的第一行代碼,我可以做這樣的事情......
var selected_non_target = selectedNonTarget(that.selected, target);
if (selected_non_target) {
continue above code;
}
function selectedNonTarget(selected, target){
if (selected && selected != target) {
... maybe do some stuff ...
return true;
}
}
但我真的不知道這將如何幫助和更多的代碼...這裏是存儲庫,我會喜歡任何建議https://github.com/natecraft1/javascript_chess/blob/master/index.html
因此,即使只是做一個簡單的布爾檢查,做一個函數是值得的嗎? – natecraft1
我會說它只有在它是一個複合條件時才值得,你可以很好地命名它,也可能複合條件被用在多個位置。當複合條件具有三個或更多條件時,回報更好。 –