Adding trash to play arround
[hammerdown.git] / maze / maze_widget.html
blobea76a6fe4227ff7b8976702e425955d08026b4f8
1 <html>
2 <head>
3 <script type="text/javascript">
4 //maze.js
5 //vomitado por Eriiiiiic dominio público-púbico
7 //Es momento de bailar la esponja
8 var esponja = false;
10 //declaraciones pendejas globales
11 //dimensiones cabronas
12 var columnas = 40;
13 var renglones = 12;
15 //puto laberinto y sus caminos
16 var maze = new Array(renglones);
17 for (x = 0; x < maze.length; x++){
18 maze[x] = new Array(columnas);
21 //inicialización de movimientos de mierda a dibujar
22 var row = new Array(4);
23 var column = new Array(4);
24 //reglon (en x de la chingada)
25 row[0] = -1;
26 row[1] = 0;
27 row[2] = 1;
28 row[3] = 0;
29 //columna (en y de la chingada)
30 column[0] = 0;
31 column[1] = 1;
32 column[2] = 0;
33 column[3] = -1;
35 //tamaño imbecil del laberinto a dibujar idiota
36 var mazeRow = 1 + 2*renglones;
37 var mazeCol = 1 + 2*columnas;
39 //puto arreglo para dibujar un inutil laberinto con pinche ASCII
40 var mazeDraw = new Array(mazeRow);
41 for (x = 0; x < mazeDraw.length; x++){
42 mazeDraw[x] = new Array(mazeCol);
45 //puta posicion actual (x,y)
46 var posMazeX = 1;
47 var posMazeY = 0;
49 //vómito de laberinto
50 function mazeFuck(posX, posY){
51 //inicializa bandera de cagada validez
52 var flag = true;
54 //valor default de no moviemiento de mierda
55 maze[posX][posY] = new Array();
56 maze[posX][posY].push(-1);
58 //mientras hayan movimeintos de mierda válidos
59 while(flag){
60 var valido = new Array();
61 //chequeo de casillas válidas imbecil
62 for (var i = 0; i < 4; i++){
63 //verifica que este adentro del maldito arreglo
64 if ( (posX + row[i] >= 0) && (posY + column[i] >= 0) && (posX + row[i] < maze.length) && (posY + column[i] < maze[0].length) ){
65 //verifica que no este recorrida la puta posición
66 if ( maze[posX + row[i]][posY + column[i]] == undefined ){
67 //guarda movimientos de mierda válidos
68 valido.push(i);
72 // no me caso de poner comentarios de la verga
73 //si hay movimientos de mierda válidos
74 if (valido.length != 0){
75 //elige un valor de mierda válido al chile (random)
76 var movPos = valido[ Math.floor( Math.random()*4) % valido.length ];
78 //si es igual a -1 quito el valor a la chingada
79 if(maze[posX][posY][0] == -1){
80 maze[posX][posY].pop();
83 //guarda el movimeinto de mierda
84 maze[posX][posY].push(movPos);
86 //recursion!!!!
87 mazeFuck(posX + row[movPos], posY + column[movPos]);
89 }else{
90 //si no hay, bla bla dice: "FLAG! no mames, eres falso, salte del puto while
91 flag = false;
96 //dibuja perra!!!!
97 function drawMaze(){
99 //genera el laberinto y sus caminos de la chingada
100 mazeFuck(0, 0);
101 //se inicializa con algun caracter cagada
102 for (i = 0; i < mazeDraw.length; i++){
103 for (j = 0; j < mazeDraw[i].length; j++){
104 mazeDraw[i][j] = "0";
108 //pendejo color del camino
109 var colorin_road = "<font color=\"black\">::</font>";
111 //harcodea entrada y salida, que pendejo y webon
112 mazeDraw[1][0] = "<font color=\"yellow\">1</font>";
113 mazeDraw[mazeDraw.length - 2][mazeDraw[0].length - 1]= "<font color=\"green\">S</font>";
115 //recorre al arreglo lameculos para dibujar el putillo recorrido
116 for (x = 0; x < maze.length; x++){
117 for (y = 0; y < maze[x].length; y++){
118 for ( z= 0; z < maze[x][y].length; z++){
119 //si el putin valor es -1 no tumba pared
120 if(maze[x][y][z] != "-1"){
121 //guarda el mierda de valor del movimiento
122 var tempr = row[ maze[x][y][z] ];
123 var tempc = column[ maze[x][y][z] ];
124 var posR = 2*x + 1;
125 var posC = 2*y + 1;
126 //pinta caminillo hijo de puta en posicion actual, +1 y +2 en respecputamente
127 mazeDraw[posR][posC] = colorin_road;
128 mazeDraw[ posR + tempr ][ posC + tempc ] = colorin_road;
129 mazeDraw[ posR + 2*tempr ][ posC + 2*tempc ] = colorin_road;
135 //imprime el laberinto pinche cabron
136 printMaze(mazeDraw);
139 function printMaze(m){
140 //inicializo cadenilla ogt
141 var cadenilla= "";
142 //la recorro a la puta
143 for (i = 0; i < m.length; i++){
144 for (j = 0; j < m[i].length; j++){
145 cadenilla += m[i][j];
147 cadenilla += "</br>";
149 //la imprimo la chigandera a putazos hardcore id
150 document.getElementById("666").innerHTML = cadenilla;
153 //funcion para checar validez de la pinch posicion y devolver su puto estado
154 function checaPosColorea(i){
155 //usa "i" de mierda para saber a donde chingados se quiere mover
156 //valida posicion y si es difrente a puta pared harcodeada = "0" se mueve
157 if( (posMazeX + row[i] >= 0) && (posMazeY + column[i] >= 0) && (posMazeX + row[i] < mazeDraw.length) &&
158 (posMazeY + column[i] < mazeDraw[0].length) ){
159 if (mazeDraw[posMazeX + row[i]][posMazeY + column[i]] != "0"){
160 mazeDraw[posMazeX][posMazeY] = "<font color=\"red\">::</font>";
161 mazeDraw[posMazeX + row[i]][posMazeY + column[i]] = "<font color=\"yellow\">1</font>";
162 posMazeX+=row[i];
163 posMazeY+=column[i];
164 if ( ( posMazeX + row[i] == mazeDraw.length - 2) && ( posMazeY + column[i] == mazeDraw[0].length - 1) ){
165 alert("Es momento de bailar la esponja");
171 //funcion para detectar si presiona las flechas el simio,
172 //y luego mover la puta posicion
173 function handleKeyboard(e)
175 if(e.keyCode == 37){//izquierda = 3
176 checaPosColorea(3);
177 }else if(e.keyCode == 38){//arriba = 0
178 checaPosColorea(0);
179 }else if(e.keyCode == 39){//derecha = 1
180 checaPosColorea(1);
181 }else if(e.keyCode == 40){//abajo = 2
182 checaPosColorea(2);
185 printMaze(mazeDraw);
187 </script>
188 <title>3|2I6C</title>
189 </head>
190 <body id="esponja"; onload="drawMaze();" onkeydown="handleKeyboard(event);" bgcolor="#000000">
191 <font color="#FFFFFF">
192 <h2 align="center">Es momento de bailar la esponja</h2>
193 <div align="center" id="666"></div>
194 </font>
195 </body>
196 </html>