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); |