Juego de sapos y ranas javascript
En este ejemplo de programación mostrare el juego de sapos y ranas hecho en javascript, describiendo es un juego en el cual se dispone de seis fichas sobre la mesa en una hilera. Se agrupan tres de un color a la izquierda y tres del otro color a la derecha, y se deja un espacio entre ambos grupos, en el que cabría una ficha. Ver el diagrama:
Objetivo
El objetivo de este rompecabezas es intercambiar las posiciones entre ambos grupos de fichas. Se pide realizar la tarea con el menor número posible de movimientos, y calcular de cuantos se trata.
Movimientos permitidos
Existen dos tipos de movimientos validos:
a) Desplazamiento: una ficha pasa a ocupar una casilla vacía, vecina a donde se encuentra.
b) Salto: una ficha salta sobre otra en una casilla vecina, para caer en la posición siguiente, que debe estar vacía. Fichas de igual color no pueden saltarse.
Nota: Puedes mover las fichas asía cualquier lado siempre y cuando haya espacio.
Se ocuparía definir 7 imágenes con un id para intercambiar sus colores cada vez que demos click, además de definir los movimientos permitidos como ser el desplazamiento y salto que se nos describen.
Aquí el código:
Objetivo
El objetivo de este rompecabezas es intercambiar las posiciones entre ambos grupos de fichas. Se pide realizar la tarea con el menor número posible de movimientos, y calcular de cuantos se trata.
Movimientos permitidos
Existen dos tipos de movimientos validos:
a) Desplazamiento: una ficha pasa a ocupar una casilla vacía, vecina a donde se encuentra.
b) Salto: una ficha salta sobre otra en una casilla vecina, para caer en la posición siguiente, que debe estar vacía. Fichas de igual color no pueden saltarse.
Nota: Puedes mover las fichas asía cualquier lado siempre y cuando haya espacio.
Se ocuparía definir 7 imágenes con un id para intercambiar sus colores cada vez que demos click, además de definir los movimientos permitidos como ser el desplazamiento y salto que se nos describen.
Aquí el código:
#include <!DOCTYPE html> <html> <head><meta charset="UTF-8"> <style type="text/css"> body{margin:0px; background-size: cover;} .caja { position: absolute; } img{ border: solid #666; } </style> <script type="text/javascript"> var cont="",CONTT=0; var posiciones = { i1: 'negro.png', i2: 'negro.png', i3: 'negro.png', i4: 'blanco.png', i5: 'rojo.png', i6: 'rojo.png', i7: 'rojo.png' }; var z=""; </script> </head> <body> <h4>Sapos y ranas</h4> <div class="caja"> <img src="negro.png" id="i1"/> <img src="negro.png" id="i2"/> <img src="negro.png" id="i3"/> <img src="blanco.png" id="i4"/> <img src="rojo.png" id="i5"/> <img src="rojo.png" id="i6"/> <img src="rojo.png" id="i7"/> </div> <script type="text/javascript"> var echo12=false,echo34=false,echo56=false,echo78=false,echo910=false,echo1112=false; //opteniendo id de las img var i=document.getElementById('i1'); var i2=document.getElementById('i2'); var i3=document.getElementById('i3'); var i4=document.getElementById('i4'); var i5=document.getElementById('i5'); var i6=document.getElementById('i6'); var i7=document.getElementById('i7'); //comienzo onclick y function i i.onclick = function(){ /*alert(posiciones[z]) ;*/ (cont==""?cont="i1":cambiando(cont,"i1")); };//fin onclick y funtion i
//comienzo onclick y function i2 i2.onclick = function(){ (cont==""?cont="i2":cambiando(cont,"i2")); };//fin onclick y funtion i2
//comienzo onclick y function i3 i3.onclick = function(){ (cont==""?cont="i3":cambiando(cont,"i3")); };//fin onclick y funtion i3
//comienzo onclick y function i4 i4.onclick = function(){ (cont==""?cont="i4":cambiando(cont,"i4")); };//fin onclick y funtion i4
//comienzo onclick y function i5 i5.onclick = function(){ (cont==""?cont="i5":cambiando(cont,"i5")); };//fin onclick y funtion i5
//comienzo onclick y function i6 i6.onclick = function(){ (cont==""?cont="i6":cambiando(cont,"i6")); };//fin onclick y funtion i6
//comienzo onclick y function i7 i7.onclick = function(){ (cont==""?cont="i7":cambiando(cont,"i7")); };//fin onclick y funtion i7 //la funcion cambiando servira para poder mover cada imagen function cambiando(con,im) { CONTT=CONTT+1; //comprobando si es un movimiendo correcto $comp=comprobando(con,im); if(posiciones[con]=='blanco.png' || posiciones[im]=='blanco.png') { if($comp==true){ document.getElementById(con).src=posiciones[im]; document.getElementById(im).src=posiciones[con]; z=posiciones[im]; posiciones[im]=posiciones[con]; posiciones[con]=z; z=""; cont=""; triunfo(); } } cont=""; }; //la funcion triunfo es para ver si ya as ganado function triunfo() { if(posiciones.i1=='rojo.png' && posiciones.i1==posiciones.i2 &&posiciones.i2==posiciones.i3 && posiciones.i5=='negro.png' &&posiciones.i5==posiciones.i6&&posiciones.i6==posiciones.i7) { alert('Felicidades as ganado!');//CONTT alert('Total de movimientos: '+CONTT+' sabias que en tan solo 15 movimientos lo podrias haber terminado') } }; //la funcion comprobando es para comprobar que el movimiento se acorrecto function comprobando(e1,e2)
{ $vecino=""; $comprobante=false; if(e1=="i1" && e2=="i3" || e1=="i3" && e2=="i1"){$vecino="i2";} if(e1=="i2" && e2=="i4" || e1=="i4" && e2=="i2"){$vecino="i3";} if(e1=="i3" && e2=="i5" || e1=="i5" && e2=="i3"){$vecino="i4";} if(e1=="i4" && e2=="i6" || e1=="i6" && e2=="i4"){$vecino="i5";} if(e1=="i5" && e2=="i7" || e1=="i7" && e2=="i5"){$vecino="i6";} if(posiciones[e1]=='blanco.png') { if($vecino!=""){ if(posiciones[e2]!=posiciones[$vecino]) { $comprobante=true; } } //comparacion a if(e1=="i1"&&e2=="i2"||e1=="i2"&&e2=="i1"||e1=="i2"&&e2=="i3"||e1=="i3"&&e2=="i2"||e1=="i3"&&e2=="i4"||e1=="i4"&&e2=="i3"||e1=="i4"&&e2=="i5"||e1=="i5"&&e2=="i4"||e1=="i5"&&e2=="i6"||e1=="i6"&&e2=="i5"||e1=="i6"&&e2=="i7"||e1=="i7"&&e2=="i6") { if($comprobante==false) { $comprobante=true; } }//fin if }///-----fin comprobacion e1 else if(posiciones[e2]=='blanco.png') { ///-----comprobacion e2 if($vecino!=""){ if(posiciones[e1]!=posiciones[$vecino]) { $comprobante=true; } } //comparacion movimiwntos a if(e1=="i1"&&e2=="i2"||e1=="i2"&&e2=="i1"||e1=="i2"&&e2=="i3"||e1=="i3"&&e2=="i2"||e1=="i3"&&e2=="i4"||e1=="i4"&&e2=="i3"||e1=="i4"&&e2=="i5"||e1=="i5"&&e2=="i4"||e1=="i5"&&e2=="i6"||e1=="i6"&&e2=="i5"||e1=="i6"&&e2=="i7"||e1=="i7"&&e2=="i6") { if($comprobante==false) { $comprobante=true; } }//fin if ///-----fin comprobacion e2 } return $comprobante; };//fin funcion comprobando </script> </body> </html>
Un juego muy divertido encontrar la manera más rápida de
hacerla es un reto.
Comentarios
Publicar un comentario