JavaScript - código no funciona con window onload en juego

   
Vista:
Imágen de perfil de carlina

código no funciona con window onload en juego

Publicado por carlina (30 intervenciones) el 15/12/2013 23:50:53
Hola señores, estoy haciendo un juego de gato, escogí éste código en la web, pero lo que pasa es que cuando en el documento logica.js pongo window onload el código no me sirve y en el html no me reconoce la función de marcar celda, habrá alguna forma de mejorar para que me sirva con window onload, tengo que usar window onload en la hoja logica.js

html
Así viene en el html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<body>
		<div class="cat clearfix" >
			<div class="wrapper clearfix">
				<div class="table clearfix">
				   <div>
					   <div id="c1" onclick="Marcar(1)"></div>
					   <div id="c2" onclick="Marcar(2)"></div>
					   <div id="c3" onclick="Marcar(3)"></div>
				   </div>
				   <div>
					   <div id="c4" onclick="Marcar(4)"></div>
					   <div id="c5" onclick="Marcar(5)"></div>
					   <div id="c6" onclick="Marcar(6)"></div>
				   </div>
				   <div>
					   <div id="c7" onclick="Marcar(7)"></div>
					   <div id="c8" onclick="Marcar(8)"></div>
					   <div id="c9" onclick="Marcar(9)"></div>
				   </div>
				</div>
			</div>
		</div>
		<div id="mensaje">
			Turno del jugador 'X'
		</div>
		<input id="btnNuevo" type="button" value="Nuevo juego"
		style="visibility:hidden" onclick="window.location.reload( false)"/>
 
    </body>

Así en el javascript , onload y window onload es lo mismo, no me reconoce marcar celda en el html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
onload = function(){
var turno = "X";
var hayGanador = false;
var matriz = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
 
 
	function Marcar(i) {
		var casilla = document.getElementById("c" + i);
		var mensaje = document.getElementById("mensaje");
 
		if (casilla.innerText == "" && !hayGanador) {
			casilla.innerHTML = turno;
			BuscarGane(i, turno);
 
			if (!hayGanador) {
               if (turno == "X")
                   turno = "0";
               else
                   turno = "X";
               mensaje.innerHTML = "Turno del jugador '" + turno + "'";
           }
 
		   else {
               var msg = "Gano el jugador '" + turno + "'";
               mensaje.innerHTML = msg;
               alert(msg);
               document.getElementById("btnNuevo")
               .style.visibility = "visible";
           }
		}
	}
 
	function BuscarGane(i, v) {
       var j = 0;
 
	   if (i > 3 && i < 7){
           j = 1;
		}
       else if (i > 6 && i < 10){
           j = 2;
		}
 
	   i = (i - 1) % 3;
       matriz[i][j] = v;
 
       //busqueda vertical
       for (var k = 0; k < 3; k++) {
           if (matriz[k][0] == matriz[k][1] && matriz[k][1] == matriz[k][2]){
               hayGanador = true;
			   }
       }
 
       //busqueda horizontal
       for (var k = 0; k < 3; k++) {
           if (matriz[0][k] == matriz[1][k] && matriz[1][k] == matriz[2][k]){
               hayGanador = true;}
       }
 
       //busqueda diagonal
       if ((matriz[0][0] == matriz[1][1] && matriz[1][1] == matriz[2][2]) ||
       (matriz[0][2] == matriz[1][1] && matriz[1][1] == matriz[2][0])) {
           hayGanador = true;
       }
   }
 
}

hojala me ayuden, gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

código no funciona con window onload en juego

Publicado por xve (1594 intervenciones) el 16/12/2013 07:38:27
Hola Carlina, si simplemente sacas la función Marcar() Marcar fuera del onload te funcionara perfectamente!!!

Cuando carga el dom de la página, la función Marcar() no existe, ya que la cargas una vez cargado el contenido de la página...

Únicamente tienes que utilizar el onload para cargar el contenido que hace referencia al código html, no las funciones que utiliza el código html... por ejemplo, si quieres detectar una pulsación sobre un objeto html... en este caso, tienes que cargar primero el html y luego el javascript.

Espero que me haya sabido explicar... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar