En este Tip crearemos un programa en el cual deberás averiguar un número que es generado aleatoriamente.
Para hacerlo, se te darán dos simples pistas: si el numero que tu escribes es mayor o menor al pensado por el código.
Primeramente crearemos nuestra interface, yo he creado una así:

Donde al primer campo de texto de arriba hacia abajo le daremos el nombre de advisor, este campo se encargará de avisar si el número introducido por el usuario es mayor o menor así como de dar a conocer si se ha ganado o perdido.
Al segundo campo lo llamaremos triesField, que se encargara de contar los intentos que hemos utilizado.
El tercer campo es un campo de entrada al que le daremos el nombre de inputFIeld.
Por último creamos un botón y lo nombramos checkButton.
Ahora vamos con el código, el cual he colocado en un archivo .as:
Código :
/* Creamos variables de inicio */
var generatedNumber:int = generateNumber(); //El número generado por la función
var tries:int = 10; //Los intentos al iniciar
var game:Boolean = true; //Indica que el juego está ejecutandose
inputField.restrict = "0-9"; //Restringimos el campo de entrada a sólo números
checkButton.addEventListener(MouseEvent.CLICK, compareNumbers); //Le asignamos al botón la función para comparar los números
/* Esta es la función que generará un número entre el 0 y 100 */
function generateNumber():int
{
return Math.floor(Math.random() * 101);
}
/*Esta función compara los numeros para probar si son mayores menores o iguales*/
function compareNumbers(event:MouseEvent):void
{
/* Primero checamos que se haya escrito en el campo de entrada y que el número escrito no sea mayor a 100 */
if(inputField.text == "" || new int(inputField.text) > 100)
{
advisor.text = "Introduce un número desde 0 hasta 100.";
return;
}
/* Guardamos el número introducido por el usuario */
var userInput:int = new int(inputField.text);
/* Checamos el número introducido con el generado */
if(userInput < generatedNumber)
{
advisor.text = "El número introducido es menor.";
tries--;
checkTries();
}
else if(userInput > generatedNumber)
{
advisor.text = "El número introducido es mayor.";
tries--;
checkTries();
}
else if(userInput == generatedNumber)
{
gameOver();
tries--;
checkTries();
advisor.text = "Ganaste! el número es " + generatedNumber + " pulsa Espacio para jugar.";
triesField.text = "Utilizaste " + (10 - tries) + " oportunidades.";
}
}
/* Esta función se encarga de manejar las oportunidades */
function checkTries():void
{
triesField.text = "Tienes " + tries + " oportunidades.";
if(tries == 1)
{
triesField.text = "Tienes " + tries + " oportunidad.";
}
else if(tries == 0)
{
advisor.text = "Perdiste! el número era " + generatedNumber + " pulsa Espacio para jugar.";
gameOver();
}
}
/* Retiramos el evento al botón cuando se ha perdido y establecemos que el juego ha terminado */
function gameOver():void
{
game = false;
checkButton.removeEventListener(MouseEvent.CLICK, compareNumbers);
}
/* Si se presiona Espacio y el juego ha terminado ( ya sea por ganar o perder ) se inicializan las variables y se borran los campos dinamicos */
function restart(event:KeyboardEvent):void
{
if(event.keyCode == Keyboard.SPACE && !game)
{
tries = 10;
generatedNumber = generateNumber();
checkTries();
advisor.text = "";
inputField.text = "";
checkButton.addEventListener(MouseEvent.CLICK, compareNumbers);
game = true;
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, restart);
Este es el programa funcionando:

Felicidades Carlos.Yanez !!!...
Por Rafa el 03 de Enero de 2008
Rafa_blog :
El juego trata de adivinar el numero que a "elegido" la máquina aleatoriamente...
Has de ir cambiando el número introducido en función de que te diga si es mayor o menor, hasta acertar con el correcto.
Rafa_blog :
Pues quizá tenga algún bug, porque yo he puesto un 100 y me dice que tiene que ser mayor
llops :
Creo que te confundes... El mensaje que sale hace referencia al número introducido, es decir si pones 100 te dice que 100 es mayor al número correcto con lo que has de poner un número menor...
Por Rafa_blog el 03 de Enero de 2008
Genial...
Por Nominal el 07 de Enero de 2008
Gracias
Por cards el 08 de Enero de 2008
Como maximo se necesitan 7 intentos siguiendo una simple estrategia(8 si se trata del 0)
Por adriana el 01 de Febrero de 2008
adriana_blog :
cual maquina?
Por HernanRivas el 03 de Febrero de 2008
Por cierto, eligiendo los números inteligentemente se puede lograr en 7 (es más, a menos que adivinemos, ese es el número exacto de preguntas que necesitamos).
Además, aunque parezca mentira, con las 10 oportunidades que tenemos podemos adivinar un número aleatorio entre 0 y 1024.
Háganlo ustedes mismos:
Espero sus comentarios.
Por Luis Orellana el 21 de Mayo de 2008
Por carlos843275 el 07 de Junio de 2008
ALguien me puede mandar el archivo *.fla por favor?
Gracias de anremano
carlos_sanz77@hotmail.com
Por dolly el 11 de Junio de 2008
Por fredybg el 18 de Julio de 2008
ahora que jugaba se me ocurre que para darle un mejor manejo se puede añadir la entrada de la tecla intro para verificar el numero. para hacer un aporte al codigo, agregue algunas lineas de programacion para añadir el evento que llamara la tecla intro.
Código :
/* Creamos variables de inicio */ var generatedNumber:int = generateNumber(); //El número generado por la función// var tries:int = 10; //Los intentos al iniciar// var game:Boolean = true; //Indica que el juego está ejecutandose// inputField.restrict = "0-9"; //Restringimos el campo de entrada a sólo numeros// checkButton.addEventListener(MouseEvent.CLICK, compareNumbers);//Le asignamos al botón la función para comparar los números/* //Esta es la función que generará un número entre el 0 y 100 */ function generateNumber():int { return Math.floor(Math.random() * 101); } /*Esta función compara los numeros para probar si son mayores menores o iguales*/ function compareNumbers(event:Event):void { stage.focus = inputField; inputField.setSelection(0,2); /* Primero checamos que se haya escrito en el campo de entrada y que el número escrito no sea mayor a 100 */ if (inputField.text == "" || new int(inputField.text) > 100) { advisor.text = "Introduce un número desde 0 hasta 100."; return; } /* Guardamos el número introducido por el usuario */ var userInput:int = new int(inputField.text); /* Checamos el número introducido con el generado */ if (userInput < generatedNumber) { advisor.text = "El número introducido es menor."; tries--; checkTries(); } else if (userInput > generatedNumber) { advisor.text = "El número introducido es mayor."; tries--; checkTries(); } else if (userInput == generatedNumber) { gameOver(); tries--; checkTries(); advisor.text = "Ganaste! el número es " + generatedNumber + " pulsa Espacio para jugar."; triesField.text = "Utilizaste " + (10 - tries) + " oportunidades."; inputField.setSelection(0,0); inputField.selectable = false; } } /* Esta función se encarga de manejar las oportunidades */ function checkTries():void { triesField.text = "Tienes " + tries + " oportunidades."; if (tries == 1) { triesField.text = "Tienes " + tries + " oportunidad."; } else if (tries == 0) { advisor.text = "Perdiste! el número era " + generatedNumber + " pulsa Espacio para jugar."; gameOver(); inputField.setSelection(0,0); inputField.selectable = false; } } function keyPressed(evt:KeyboardEvent) { if (evt.keyCode == Keyboard.ENTER) { compareNumbers(evt); } } stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed); /* Retiramos el evento al botón cuando se ha perdido y establecemos que el juego ha terminado */ function gameOver():void { game = false; checkButton.removeEventListener(MouseEvent.CLICK, compareNumbers); stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyPressed); } /* Si se presiona Espacio y el juego ha terminado ( ya sea por ganar o perder ) se inicializan las variables y se borran los campos dinamicos */ function restart(event:KeyboardEvent):void { if (event.keyCode == Keyboard.SPACE && !game) { tries = 10; generatedNumber = generateNumber(); checkTries(); advisor.text = ""; inputField.text = ""; checkButton.addEventListener(MouseEvent.CLICK, compareNumbers); stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed); game = true; inputField.selectable = true; } } stage.addEventListener(KeyboardEvent.KEY_DOWN, restart);Por fredybg el 18 de Julio de 2008
fredybg :
disculpa Carlos. Yanez !
Por Julio el 10 de Octubre de 2008
Por peter el 06 de Noviembre de 2008
elnum._visible=false;
intentos.text = 10;
_global.numerogen = Math.floor(Math.random()*(100-0+1))+0;
trace(numerogen);
function chequeo() {
if ((numero.text>100) or (numero.text<0)) {
aviso.text = "El número tiene que estar entre 0 y 100";
} else if (numero.text>numerogen) {
aviso.text = "El número que has escrito es mayor";
if (intentos.text>0) {
intentos.text = intentos.text-1;
}
} else if (numero.text<numerogen) {
aviso.text = "El número que has escrito es menor";
if (intentos.text>0) {
intentos.text = intentos.text-1;
}
} else if (numero.text == numerogen) {
aviso.text = "Has adivinado. ¡Felicidades!";
}
}
boton.onRelease = function() {
if (intentos.text>0) {
chequeo();
} else {
aviso.text = "Ya no te quedan intentos";
num.text = numerogen;
elnum._visible=true;
}
};
je seguiré comprando boletos de lotería
*NOTA: no hice ningún tipo de trampa solo fue pura suerte o coincidencia
Por chacha el 05 de Febrero de 2009
Por Raldcsffgbv el 15 de Febrero de 2009
Por trini el 27 de Marzo de 2009
Por kate el 16 de Septiembre de 2009
Por evelin el 20 de Octubre de 2009
Por win2048 el 24 de Mayo de 2010
por cierto sta chido l juego
ayuda!!!!
Por Wanbee el 23 de Junio de 2010
Por angel torres el 16 de Julio de 2010