前回の続き。
さすがに総当たりだと単純すぎるので、いわゆる枝刈りして余計な試行を削っていく。
var colors = ['red', 'blue', 'green', 'yellow'];
colors.forEach(function(tile1) {
colors.forEach(function(tile2) {
if(tile1 != tile2) {
colors.forEach(function(tile3) {
if(tile1 != tile3 && tile2 != tile3) {
colors.forEach(function(tile4) {
if(tile1 != tile4 && tile3 != tile4) {
colors.forEach(function(tile5) {
if(tile1 != tile5 && tile4 != tile5 && tile2 != tile5) {
document.write(tile1+', '
+tile2+', '
+tile3+', '
+tile4+', '
+tile5+'<br>');
}
});
}
});
}
});
}
});
});
たしかにこれで速くはなるのだが、いかんせんメンテナンス性がすこぶる悪い。
タイルを一枚増やしたり、条件を変更しようとするとあっちゃこっちゃ変えなくちゃならない。
0 件のコメント:
コメントを投稿