From d8d17f6702adbceb9d79348d3d94278a304b0646 Mon Sep 17 00:00:00 2001 From: Robert Kolner Date: Fri, 23 Nov 2012 09:34:56 +0100 Subject: [PATCH] Massive speed improvments by ditching jQuery and DIY. --- tetris-ai-robertko.js | 10 ++++++++-- utils.js | 10 ++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/tetris-ai-robertko.js b/tetris-ai-robertko.js index 2806d6f..5517962 100644 --- a/tetris-ai-robertko.js +++ b/tetris-ai-robertko.js @@ -18,7 +18,7 @@ var mod_rank_shaft_ibonus = 0; var mod_rank_horizontal = 1.5; var settings_level_depth = 1; -var settings_level_precision = 20; +var settings_level_precision = 50; var bestDropLocation = null; @@ -237,7 +237,10 @@ function chooseBestRank(brickId, board, dropLocations, level) { var ranking = []; for (var i = 0; i < dropLocations.length; i++) { - var tempBoard = $.extend(true, [], board); + //var tempBoard = $.extend(true, [], board); + var tempBoard = createArray(game.width, game.height); + copyArray(board, tempBoard); + var shape = game.brickShape(brickId, dropLocations[i][2]); // prepare tempBoard: @@ -265,6 +268,9 @@ function chooseBestRank(brickId, board, dropLocations, level) { ranking.push([i, rank, tempBoard]); } + if (ranking.length == 0) { + return [-1, -100000]; + } ranking.sort(function(a,b) { return b[1] - a[1]; diff --git a/utils.js b/utils.js index d8771b3..964f628 100644 --- a/utils.js +++ b/utils.js @@ -11,6 +11,16 @@ function createArray(length) { return a; } +function copyArray(from, to) { + for (var i = 0; i < to.length; i++) { + for (var j = 0; j < to[i].length; j++) { + to[i][j] = from[i][j]; + } + } + + return; +} + function arrayContains(array, element) { for (var i = 0; i < array.length; i++) { if (array[i] == element) {