Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] No se como resolver esta consigna!!

Estas en el tema de No se como resolver esta consigna!! en el foro de Javascript en Foros del Web. Por favor nececito que me guíen den luz al pozo oscuro que veo en mi materia! Es la primera vez que empiezo a programar con ...
  #1 (permalink)  
Antiguo 01/08/2013, 05:46
 
Fecha de Ingreso: agosto-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 0
No se como resolver esta consigna!!

Por favor nececito que me guíen den luz al pozo oscuro que veo en mi materia!
Es la primera vez que empiezo a programar con javascript x lo cual mucho aun no entiendo de simplificar código... Bueno les cuento que me mandaron a realizar un trabajo práctico complejo y me han bochado en la primer instancia x q no pude hacer mas simple el código de esta consigna:

"Realizar un programa que emule un juego de generala simplificado.
Funcionamiento básico del juego: el usuario tira 5 dados, si lo desea puede
bloquear los dados o volver a tirarlos. Por turno son tres tiradas, pero se pueden
volver a tirar sólo los dados que no han sido bloqueados. El programa otorga
premios si se obtiene generala (5 dados iguales), poker (4 dados iguales) o full (3
dados iguales y 2 dados iguales).
Nota: una vez resuelto el funcionamiento básico pueden incluir más opciones de
premios, de jugadores o del partido."



Pd: los dados pueden ser imágenes con los numeros q salgan o lo puedo hacer como en mi caso intente solo con números random


Desde ya muchas gracias a todos!
  #2 (permalink)  
Antiguo 01/08/2013, 06:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: No se como resolver esta consigna!!

La norma en este foro, ya que sos nuevo, es que no se resulven tareas, si publicas lo que hes hecho se te puede orientar sobre que se puede cambiar y si haces preguntas concretas de como resolver algo que quede justificado tambien te ayudaremos...

Con el enunciado no.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 01/08/2013, 07:04
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años, 6 meses
Puntos: 155
Respuesta: No se como resolver esta consigna!!

...ajajajja acá están los profesionales del futuro..unas luminarias!!!...
  #4 (permalink)  
Antiguo 01/08/2013, 07:16
 
Fecha de Ingreso: agosto-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: No se como resolver esta consigna!!

Bueno basicamente tengo armado un formulario
asi

Código:
<body>
<div id="apDiv1">
  <form id="form1" name="form1" method="post" action="">
    <p>
      <label for="dado1"><br />
        Dado 1</label>
      <input type="text" name="dado1" id="dado1" />
      <label for="dado1">
        <input type="submit" name="BLOQUEAR1" id="BLOQUEAR1" value="BLOQUEAR DADO" />
        <br />
        Dado 2</label>
      <input type="text" name="dado2" id="dado2" />
      <label for="dado2">
        <input type="submit" name="BLOQUEAR2" id="BLOQUEAR2" value="BLOQUEAR DADO" />
        <br />
        Dado 3</label>
      <input type="text" name="dado3" id="dado3" />
      <label for="dado3">
        <input type="submit" name="BLOQUEAR3" id="BLOQUEAR3" value="BLOQUEAR DADO" />
        <br />
        Dado 4</label>
      <input type="text" name="dado4" id="dado4" />
      <label for="dado4">
        <input type="submit" name="BLOQUEAR4" id="BLOQUEAR4" value="BLOQUEAR DADO" />
        <br />
        Dado 5</label>
      <input type="text" name="dado5" id="dado5" />
      <input type="submit" name="BLOQUEAR5" id="BLOQUEAR5" value="BLOQUEAR DADO" />
    </p>
    <p>
      <input type="submit" name="Tirar" id="Tirar" value="Tirar Dados" />
    </p>
    <p>&nbsp;</p>
  </form>

<script type="text/javascript">

var dado1=0;
var dado2;
var dado3;
var dado4;
var dado5;
var tirardados;
var bloquear1;
var bloquear2;
var bloquear3;
var bloquear4;
var bloquear5;
var generala;
var poker;

dado1 = parseInt(Math.random()*6+1);
"dado1" = dado1;




</script>
</div>
</body>
</html>
Yo venia haciendo todo con prompts y puros alert para que el usuario elija que dados tirar y cuales bloquear.. basicamente un lio barbaro pero funcionaba..., es la primera vez que voy a usar formularios x lo cual no entiendo casi nada de como relacionarlos con el código de javascript... Mi pregunta seria para ir aprendiendo
¿como le envio un resultado del Math Random a la casilla del formulario?
¿como hago que el boton bloquear/desbloquear haga eso con la respectiva casilla que quiero que mantenga el valor que salio?

Muchas gracias!
  #5 (permalink)  
Antiguo 01/08/2013, 07:52
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: No se como resolver esta consigna!!

buenas,
te recomiendo que busques referencias acerca del DOM. básicamente el DOM es una interfaz (API) en la que javascript puede acceder y manipular el documento (html). https://developer.mozilla.org/en-US/...M_Level_1_Core
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 01/08/2013, 08:54
 
Fecha de Ingreso: agosto-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: No se como resolver esta consigna!!

No puedo usar otra cosa q no sea javascript, tengo q hacerlo todo usando este lenguaje nada mas :/

Ahora estoy peleando para saber como se manda un resultado al cuadro blanco del formulario ¬¬
  #7 (permalink)  
Antiguo 01/08/2013, 09:12
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: No se como resolver esta consigna!!

una API no es necesariamente algo que tengas que descargar e instalar. el DOM es una API que ya viene integrado en el navegador (en su gran mayoría de navegadores) listo para ser utilizado por el lenguaje de scripting, en este caso javascript. javascript es un lenguaje bien simplista, es decir, el núcleo de javascript de lo único que se compone son de varios objetos predefinidods, sentencias, y la sintaxis que lo gobierna. de modo que con javascript por si solito es un lenguaje con el que no puedes hacer práctiamente nada. cuando javascript se implementa a un producto, en este caso un navegador, el fabricante implementa otras funciones adicionales para que el lenguaje sea utilizable en su entorno. un ejemplo de ello es el DOM. a ojos de cualquier principiante, todo parece como si fuera javascript. esto porque el usuario no tiene que absolutamente encargarse de nada para poner a funcionar todos los componentes que se integra en el producto. para que te hagas una idea de como luce el DOM en javascript:

Código:
// elemento BODY de un html ;
document.body;

// el valor del primer campo en el primer formulario del documento ;
document.forms[0].elements[0].value;

// capturar un elemento por el ID nav ;
document.getElementById('nav');
en conclusión, si o si tienes que utilizar el DOM para poder interactuar con el formulario. otra forma no hay.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 01/08/2013, 11:26
 
Fecha de Ingreso: agosto-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: No se como resolver esta consigna!!

Estoy intentando comprender esto de devolver datos... pero hasta acá lo q hize no me devuelve nada a los campos ¬¬

Código:
<head>
<script type="text/javascript">

function tirardado()
{
d1 = document.getElementById("dado1").value;
d1 = parseInt(Math.random()*6+1);
dado1 = document.getElementById("dado1").value;
dado2 = parseInt(Math.random()*6+1);

dado3 = parseInt(Math.random()*6+1);

dado4 = parseInt(Math.random()*6+1);

dado5 = parseInt(Math.random()*6+1);

}
</script> 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<style type="text/css">
#apDiv1 {
	position: absolute;
	width: 694px;
	height: 904px;
	z-index: 1;
	left: 105px;
	top: 2px;
}
</style>
</head>

<body>
<div id="apDiv1">
  
<form id="tirar">
  <p>
    <input type="text" id="dado1" value=1> 
    Dado 1</p>
  <p>
  <input type="text" id="dado2" value=1> Dado 2</p>
  <p>
  <input type="text" id="dado3" value=1> Dado 3
  </p>
  <p>
    <input type="text" id="dado4" value="1" />
Dado 4</p>
  <p>
    <input type="text" id="dado5" value="1" />
Dado 5 </p>
</form>
<input name="Tirar Dados" type="button" onclick="tirardado()" value="Tirar Dados"/>

  
 

</div>
</body>
</html>
  #9 (permalink)  
Antiguo 01/08/2013, 12:50
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: No se como resolver esta consigna!!

te pongo un ejemplo, más que nada porque quiero estrenar una nueva herramienta del foro y que mejor oportunidad que esta. así que eres afortunado.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #10 (permalink)  
Antiguo 01/08/2013, 13:08
 
Fecha de Ingreso: agosto-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: No se como resolver esta consigna!!

Cita:
Iniciado por zerokilled Ver Mensaje
te pongo un ejemplo, más que nada porque quiero estrenar una nueva herramienta del foro y que mejor oportunidad que esta. así que eres afortunado.

El que sabe sabe... muchas gracias me has mostrado que simple se pueden hacer las cosas, de los nervios no me di cuenta que podia usar un ciclo for para resolver todas las operaciones...

Ahora es muy dificil bloquear / desbloquear las celdas segun el usuario desee?

por ejemplo si tiro los dados y ahora quiero tirar solo 2 (tendria q darle clic a un boton que sea para bloquear campo imagino)

existe alguna funcion para ello?
  #11 (permalink)  
Antiguo 01/08/2013, 14:11
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: No se como resolver esta consigna!!

Podes usar un checkbox por cada dado, y comprobar si está checkeado o no.
__________________
blog | @aijoona
  #12 (permalink)  
Antiguo 02/08/2013, 03:07
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: No se como resolver esta consigna!!

Venga que te lo han puesto fácil!!!

@Aijoona te da la solución para los bloqueos, mételo en el bucle...

Luego te falta un contador de tiradas (una variable que se incrementa en cada click al botón de tirar).... y compararlo con el numero máximo permitido (una constante).

Después el tema de los premios... comparar dados y decidir si tiene o no premio.

Si lo atacas por partes no es difícil...

Por cierto @zerokilled como se hace para usar jsFiddle? Todos tenemos permiso?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 02/08/2013 a las 05:42
  #13 (permalink)  
Antiguo 02/08/2013, 05:20
 
Fecha de Ingreso: agosto-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: No se como resolver esta consigna!!

Cita:
Iniciado por quimfv Ver Mensaje
Venga que te lo han puesto fácil!!!

@Aijoona te da la solución para los bloqueos, mételo en el bucle...

Luego te falta un contador de tiradas (una variable que se incrementa en cada click al botón de tirar).... y compararlo con el numero máximo permitido (una constante).

Después el tema de los premios... comparar dados y decidir si tiene o no premio.

Si lo atacas por partes no es difícil...

[SOLUCIONADO] Por cierto @[URL="http://www.forosdelweb.com/miembros/zerokilled/"]zerokilled[/URL] como se hace para usar jsFiddle?
[URL="http://doc.jsfiddle.net/use/embedding.html"]Embedding the fiddle[/URL]
Vale hombre! es que esta profesora es graciosa se lo he hecho a todo el programa con lo q ha enseñado LES CUENTO que como dije estoy aprendiendo a programar y aun ella no ha explicado formularios al nivel que pide este problema...
El programa en si se lo hize con puros prompt y alert x si ganabas... y ella al correjirlo no le ha gustado x q dice q es muy complicado de usar ¬¬ otros compañeros q trabajan de programación le han entregado los trabajos hecho con formularios y fotitos bien lindo pero... Repito como quiere q programe a ese nivel si al resto de la clase no lo ha enseñado al detalle ¬¬ para q se den una idea de 30 alumnos solo aprobaron en la primer instancia 8 en el Tp!! todos los demas al recuperatorio... y cabe destacar que el parcial lo aprobamos 27 alumnos!

Como docente me sentiria un fracaso o q opinan???

Gracias por ir ayudandome a armar esto a todos! voy aprender mas de ustedes q de esa señora q solo va y pasa un power point...
  #14 (permalink)  
Antiguo 02/08/2013, 08:31
 
Fecha de Ingreso: agosto-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: No se como resolver esta consigna!!

Gente estoy mas contento! :D investigando un poco mas y a prueba y error ya pude hacer que
el juego termine a las 3 rondas, que vuelvas a jugar si deseas, y bloquear los dados que desees! :D gracias x los consejos!

Lo que me gustaria que me aconsejen o den ejemplos es como puedo hacer para el tema de que busque los premios? se me ocurre que es comparando dado x dado logicamente y para ello usando un for pero como se haria para encontrar 3 dados iguales y 2 que no lo son?

de nuevo GRACIAS gracias :D
  #15 (permalink)  
Antiguo 02/08/2013, 08:31
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: No se como resolver esta consigna!!

en mi opinión personal, si tu estás pagando por una preparación, estás en el derecho de reclamarle sobre lo que esta enseñando y lo que está pidiendo. ahora bien, yo no te puedo dar la razón ni te la puedo quitar porque YO no estoy presente en ese curso como para determinar cuan cierto es lo que dices. ¿le han dado material para leer? ¿los has leído? ¿han repasado en grupo? ¿es un curso a distancia o presencial? no hay duda que puedas aprender con la comunidad o por tu propia cuenta, pero puede ser un proceso más extenso y quizás el tiempo requerido no valga la pena como para poder cumplir con el curso.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #16 (permalink)  
Antiguo 02/08/2013, 08:37
 
Fecha de Ingreso: agosto-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: No se como resolver esta consigna!!

Cita:
Iniciado por zerokilled Ver Mensaje
en mi opinión personal, si tu estás pagando por una preparación, estás en el derecho de reclamarle sobre lo que esta enseñando y lo que está pidiendo. ahora bien, yo no te puedo dar la razón ni te la puedo quitar porque YO no estoy presente en ese curso como para determinar cuan cierto es lo que dices. ¿le han dado material para leer? ¿los has leído? ¿han repasado en grupo? ¿es un curso a distancia o presencial? no hay duda que puedas aprender con la comunidad o por tu propia cuenta, pero puede ser un proceso más extenso y quizás el tiempo requerido no valga la pena como para poder cumplir con el curso.
claro que he leido hasta donde me han enseñado, la lógica la comprendo mi problema acá pasa porque desconosco como interpretar lo q pienso en código ya que al no haber tenido práctica del uso de formularios ovbiamente todo me resulta complicado para hacerlo rápido y simplificado :/ x darte un ejemplo sé como resolver la consigna pero no se como escribirla ya que hasta el momento solo me manejaba con puros prompt y alert :/ de formularios 0! :/
  #17 (permalink)  
Antiguo 02/08/2013, 09:05
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: No se como resolver esta consigna!!

buscando por la web encuentras tutoriales de como trabajar con formularios en javascript. un par de enlaces:
http://librosweb.es/javascript/ (capítulo 7, formularios)
http://www.webestilo.com/javascript/js26.phtml
http://www.desarrolloweb.com/manuales/50/
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #18 (permalink)  
Antiguo 02/08/2013, 10:55
 
Fecha de Ingreso: agosto-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: No se como resolver esta consigna!!

Tengo casi todo resuelto pero cuando llamo a la funcion "premios" no me funciona bien el programa... no se a q se debe :/ si saco esa linea vuelve a funcionar normal pero ovbiamente sin buscar los premios ¬¬.

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">


function tirardado()
{
var maximo = 3; // numero máximo de rondas o tiradas de dados

if (maximo != document.getElementById("ronda").value) // verifico que no hayan 3 tiradas en total
	{
	for(var i = 1; i < 6; i++)
 	{
 		if(document.getElementById("bloquear"+i).checked) // chekeo si hay dados bloqueados
		{
		}
		else	
		{
		document.getElementById("dado"+i).value = Math.ceil(Math.random()*6); // tiro los dados libres
		premios(); // busco el premio con los dados actuales
		}
 	}
document.getElementById("ronda").value ++; // le sumo 1 a la ronda actual
}
else 
{
	if(document.getElementById("ronda").value == 3) 
	{alert ("Se acabo el juego, si deseas jugar nuevamente haz clic en 'Volver a jugar' ")
 	document.getElementsByName("Tirar Dados()").disabled;
	}
}

}
function resetear()
{
document.getElementById("tirar").reset();
document.getElementById("ronda").value = 0;
}

function premios() //aca buscamos los premios
{
var uno = 0;
var dos = 0 ;
var tres = 0;
var cuatro = 0;
var cinco = 0;
var seis = 0;
var puntaje = 0;
for (j=1;j<6;j++) 
{
	numero = Number(document.getElementById("dado").elements[k].value); //guardo el dato del dado para recorrerlo con el for buscando que numero cae, 
 			switch (numero)
			{
				case 1 : uno++;
				break;
				case 2 : dos++;
				break;
				case 3 : tres++;
				break;
				case 4 : cuatro++;
				break;
				case 5 : cinco++;
				break;
				case 6 : seis++;
				break;
				}
if ((uno==5)||(dos==5)||(tres==5)||(cuatro==5)||(cinco==5)||(seis==5))	// si hay 5 iguales d algun numero es generala
{ 	
	alert("Generala!!!");
	Number(document.getElementById("puntos").value)= Number(document.getElementById("puntos").value) +50;
} // le sumo 50 puntos x sacar generala
else if ((uno==4)||(dos==4)||(tres==4)||(cuatro==4)||(cinco==4)||(seis==4))	
{ 	
	alert= ("Poker!!");
	Number(document.getElementById("puntos").value)= Number(document.getElementById("puntos").value) +40;}		 
else if (((uno==3)||(dos==3)||(tres==3)||(cuatro==3)||(cinco==3)||(seis==3))&&((uno==2)||(dos==2)||(tres==2)||(cuatro==2)||(cinco==2)||(seis==2)))	
 	{ 
	alert("Full!!");
 	Number(document.getElementById("puntos").value)= Number(document.getElementById("puntos").value) +30;
	}
}
}
</script> 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<style type="text/css">
#apDiv1 {
	position: absolute;
	width: 694px;
	height: 904px;
	z-index: 1;
	left: 105px;
	top: 2px;
}
</style>
</head>

<body>
<div id="apDiv1">
  
<form id="tirar">
  <p>
    <input type="text" id="dado1" value=0 readonly="readonly"> 
    Dado 1    
    <input type="checkbox" name="dado1" id="bloquear1" />
    <label for="dado1">Bloquear</label> 
    1
  </p>
  <p>
  <input type="text" id="dado2" value=0 readonly="readonly"> 
  Dado 2 
  <input type="checkbox" name="dado2" id="bloquear2" />
  <label for="dado2">Bloquear</label>
  2
  </p>
  <p>
  <input type="text" id="dado3" value=0 readonly="readonly"> 
  Dado 3  
  <input type="checkbox" name="dado3" id="bloquear3" />
  <label for="dado3">Bloquear</label>
  3
  </p>
  <p>
  <input type="text" id="dado4" value=0 readonly="readonly" /> 
  Dado 4  
  <input type="checkbox" name="dado4" id="bloquear4" />
  <label for="dado4">Bloquear</label>
  4
  </p>
  <p>
  <input type="text" id="dado5" value=0 readonly="readonly" /> 
  Dado 5 
  <input type="checkbox" name="dado5" id="bloquear5" />
  <label for="dado5">Bloquear</label> 
  5
  </p>
</form>

<p>
  <input name="Tirar Dados" type="button" onclick="tirardado()" value="Tirar Dados"/> 
  <label for="Tiradas">Ronda N°</label>
  <input name="Tiradas" type="text" id="ronda" value=0 readonly="readonly" />
  Puntaje Actual
  <label for="puntos"></label>
  <input name="puntos" type="text" id="puntos" value=0 readonly="readonly" />
</p>
<input type="reset" name="resetear" id="resetear" value="Volver a Jugar"  onclick="resetear()"/>
</form>
<p>&nbsp;</p>
</div>
</body>
</html>

Etiquetas: funcion, resolver
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:01.