Working seeding of rng's.
This commit is contained in:
1 parent
d834c1cca4
commit
30a434f78d
3 files changed
+19
-7
No files matched your search
+5
-4
@@ -1,11 +1,12 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src=http://davidbau.com/encode/seedrandom-min.js></script>
|
||||
<script src="jquery-1.7.1.js"></script>
|
||||
<script src="utils.js"></script>
|
||||
<script src="tetris-stats.js"></script>
|
||||
<script src="tetris-canvas.js"></script>
|
||||
<script src="tetris.js"></script>
|
||||
|
||||
|
||||
<style>
|
||||
body {
|
||||
font-family: Courier, "Courier New", monospace;
|
||||
@@ -64,15 +65,15 @@
|
||||
var aiRight = QueryString.ai2;
|
||||
|
||||
include('tetris-ai-'+aiLeft+'.js');
|
||||
include('tetris-ai-'+airight+'.js');
|
||||
include('tetris-ai-'+aiRight+'.js');
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script>
|
||||
window.onload = function() {
|
||||
eval('new '+aiLeft+'("tetris-board-left")');
|
||||
eval('new '+aiRight+'("tetris-board-right")');
|
||||
eval('new '+aiLeft+'("tetris-board-left", 1337)');
|
||||
eval('new '+aiRight+'("tetris-board-right", 1337)');
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
+4
-2
@@ -1,4 +1,6 @@
|
||||
function test(elementId) {
|
||||
function test(elementId, randomseed) {
|
||||
if (typeof randomseed === 'undefined') randomseed = Math.floor(1337 * Math.random());
|
||||
|
||||
var ACTION_LEFT = 1;
|
||||
var ACTION_RIGHT = 2;
|
||||
var ACTION_ROTATE = 3;
|
||||
@@ -90,7 +92,7 @@ function test(elementId) {
|
||||
}
|
||||
|
||||
this.init = function() {
|
||||
this.game = new TetrisGame(elementId);
|
||||
this.game = new TetrisGame(elementId, undefined, undefined, randomseed);
|
||||
this.game.startGame();
|
||||
this.startAI();
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
function TetrisGame(canvasId, linesCounterId, nextBricksCanvasId) {
|
||||
function TetrisGame(canvasId, linesCounterId, nextBricksCanvasId, seed) {
|
||||
if (typeof seed === 'undefined') seed = Math.floor(1337 * Math.random());
|
||||
Math.seedrandom(seed);
|
||||
|
||||
/*********/
|
||||
/* Enum: */
|
||||
/*********/
|
||||
@@ -47,6 +50,8 @@ function TetrisGame(canvasId, linesCounterId, nextBricksCanvasId) {
|
||||
this.nextBrickArray = Array(5);
|
||||
this.nextBrickArrayIndex = 0;
|
||||
|
||||
this.rng = Math.random;
|
||||
|
||||
/**************/
|
||||
/* Functions: */
|
||||
/**************/
|
||||
@@ -110,7 +115,11 @@ function TetrisGame(canvasId, linesCounterId, nextBricksCanvasId) {
|
||||
}
|
||||
|
||||
this.getRandomBrick = function() {
|
||||
var oldRandom = Math.random;
|
||||
Math.random = this.rng;
|
||||
return 1 + Math.floor(Math.random() * 7);
|
||||
this.rng = Math.random;
|
||||
Math.random = oldRandom;
|
||||
}
|
||||
|
||||
this.getNextBrick = function() {
|
||||
|
||||
Reference in new issue
Block a user