2048.html
changeset 66 c62a1051cef7
parent 65 b8028f3e30fb
child 67 328b3e5c0802
equal deleted inserted replaced
65:b8028f3e30fb 66:c62a1051cef7
   525         ui.game.setMessage('Select AI!');
   525         ui.game.setMessage('Select AI!');
   526         return;
   526         return;
   527       }
   527       }
   528       ui.game.beginStep();
   528       ui.game.beginStep();
   529       var step = 0;
   529       var step = 0;
       
   530       var safeBdr = board.create();
   530       var tsFrom = new Date().getTime();
   531       var tsFrom = new Date().getTime();
   531       while (!board.gameOver(ui.board.position)) {
   532       while (!board.gameOver(ui.board.position)) {
   532         var tmpBrd = board.create();
   533         board.copy(ui.board.position, safeBdr);
   533         board.copy(ui.board.position, tmpBrd);
   534         var move = ui.ai.current.analyse(safeBdr);
   534         var move = ui.ai.current.analyse(tmpBrd);
       
   535         if (typeof move === 'undefined') {
   535         if (typeof move === 'undefined') {
   536           ui.game.setMessage("I don't know how to move!");
   536           ui.game.setMessage("I don't know how to move!");
   537           return;
   537           return;
   538         }
   538         }
   539         var updated = board.move[move].call(null, ui.board.position);
   539         var updated = board.move[move].call(null, ui.board.position);
   641       var tsLimit = parseFloat(document.getElementById('stat-count-limit').value);
   641       var tsLimit = parseFloat(document.getElementById('stat-count-limit').value);
   642       if (isNaN(tsLimit) || !isFinite(tsLimit) || tsLimit < 1 || tsLimit > 60)
   642       if (isNaN(tsLimit) || !isFinite(tsLimit) || tsLimit < 1 || tsLimit > 60)
   643         tsLimit = 1000 * 10;
   643         tsLimit = 1000 * 10;
   644       else
   644       else
   645         tsLimit = 1000 * tsLimit;
   645         tsLimit = 1000 * tsLimit;
   646       var tmpBrd = board.create();
   646       var safeBdr = board.create();
   647       var tsFrom = new Date().getTime();
   647       var tsFrom = new Date().getTime();
   648       for (var i = 0; i < cnt; i++) {
   648       for (var i = 0; i < cnt; i++) {
   649         var turn = 0;
   649         var turn = 0;
   650         var brd = board.create();
   650         var brd = board.create();
   651         board.putRandom(brd);
   651         board.putRandom(brd);
   652         while (!board.gameOver(brd)) {
   652         while (!board.gameOver(brd)) {
   653           board.copy(brd, tmpBrd);
   653           board.copy(brd, safeBdr);
   654           var move = ui.ai.current.analyse(tmpBrd);
   654           var move = ui.ai.current.analyse(safeBdr);
   655           if (ui.game.dirs.indexOf(move) < 0) {
   655           if (ui.game.dirs.indexOf(move) < 0) {
   656             ui.game.setMessage("I don't know how to move!");
   656             ui.game.setMessage("I don't know how to move!");
   657             return;
   657             return;
   658           }
   658           }
   659           var updated = board.move[move].call(null, brd);
   659           var updated = board.move[move].call(null, brd);