You are on page 1of 6

package UnidadIII;

import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.util.Random; import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.JLabel; import javax.swing.JButton; public class AdivinaNumero extends JFrame implements ActionListener { Container contenedor; private static Random generador = new Random(); private int numero; // numero escogido por la aplicacion private int cuentaIntentos; // numero de intentos private int distanciaActual, distanciaAnterior; // distancia entre el ultimo intento y el numero, y el intento anterior y el numero private JTextField txtentrada; // para adivinar private JLabel lblet1; // primer mensaje al usuario private JLabel lblet2; // segundo mensaje al usuario private JLabel lblmensaje; // mustra mensaje de estado del juego private JLabel nointentos,numerov; private JButton btnInicia; // inicia nuevamente juego

private Color colorFondo; // color de fondo

// constructor public AdivinaNumero(String t) { super(t); contenedor=this.getContentPane(); this.setTitle("Adivina Numero"); cuentaIntentos = 0; // inicializa variable que cuenta intentos colorFondo = Color.LIGHT_GRAY; // establece color de fondo lblet1 = new JLabel( "Tengo un numero entre 1 y 1000."); // describe el juego lblet2 = new JLabel( "Puedes adivinar mi numero? dame tu numero:"); txtentrada = new JTextField(5); // para introducir intentos txtentrada.addActionListener(this); lblmensaje = new JLabel("El Resultado del intento aparece aqui."); btnInicia=new JButton("Inicia Juego"); nointentos=new JLabel(); numerov=new JLabel(); numerov.setVisible(false); nointentos.setText("El numero de intentos es: "+ cuentaIntentos); btnInicia.addActionListener(this); this.setLayout(new FlowLayout());

contenedor.add(lblet1); contenedor.add(lblet2);

contenedor.add(txtentrada); contenedor.add(lblmensaje); contenedor.add(btnInicia); contenedor.add(nointentos); contenedor.add(numerov);

elJuego(); // inicia el juego } // end constructor AdivinaNumero public void actionPerformed(ActionEvent e) { if(e.getSource()==btnInicia){ elJuego(); contenedor.setBackground(Color.LIGHT_GRAY); txtentrada.setText(null); cuentaIntentos=0; numerov.setVisible(false); nointentos.setText("El numero de intentos es: "+ 0); lblmensaje.setText("El resultado del intento aparece aqui.");

}else if(e.getSource()==txtentrada){ cuentaIntentos++; reaccion(Integer.parseInt(txtentrada.getText()));

} }

public void elJuego() {

numero=generador.nextInt(1000);// genera un nmero del uno al 1000 System.out.println(numero);

} // cambia color de fondo public void paint(Graphics g) { super.paint(g); getContentPane().setBackground(colorFondo); } // reaccion a nuevo intento public void reaccion(int intento) {

//

cuentaIntentos++; // incrementa intento nointentos.setText("El numero de intentos es: "+cuentaIntentos); distanciaActual=1000;

//if (cuentaIntentos == 1) { distanciaAnterior=Math.abs(intento-numero); // //if (intento > numero) { //lblmensaje.setText("Demasiado alto. Intente con un numero menor"); //} else { //lblmensaje.setText("Demasiado bajo. Intente con un numero mayor"); //} //} else { // distanciaAnterior=Math.abs(intento-numero);

if (intento > numero) { lblmensaje.setText("Demasiado alto. Intente con un numero menor"); colorFondo = (distanciaActual <= distanciaAnterior) ? Color.BLUE : Color.RED; distanciaActual=distanciaAnterior;} else if (intento < numero) // intento muy bajo { lblmensaje.setText("Demasiado bajo. Intente con un numero mayor"); colorFondo = (distanciaActual <= distanciaAnterior) ? Color.RED : Color.BLUE; distanciaAnterior = distanciaActual; } else // intento correcto { lblmensaje.setText("Correcto!"); numerov.setText(" El numero es: "+numero); numerov.setVisible(true); colorFondo=Color.LIGHT_GRAY;

} repaint();

} // termina metodo reaccion public static void main(String args[]) { AdivinaNumero AdivinaNumero = new AdivinaNumero(""); AdivinaNumero.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); AdivinaNumero.setSize(300, 160); // establece tamanio de la ventana

AdivinaNumero.setVisible(true); // muestra ventana }

} // termina clase AdivinaNumero

You might also like