📄 numberguess.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class NumberGuess extends JFrame implements ActionListener{
//Una area del texto donde muestra los numeros que has adivinado
JTextArea guessed=new JTextArea("Aqui estan los resultados:\n",9,15);
//Un Label donde muestra el titulo
JLabel title=new JLabel("Adivinanza del numero");
//Un Label donde muestra la introduccion
JLabel prompt=new JLabel("Introduzca 4 numeros del 0 al 9");
//Un campo del texto donde vas a entrar los numeros para adivinar
JTextField input=new JTextField(10);
//Un boton enviar para aceptar
JButton send=new JButton("enviar");
//Un boton nuevojuego para
JButton newGame=new JButton("Nuevo juego");
//Un boton para los brutos para ver el numero de inmediato
JButton answer=new JButton("Un boton para los brutos.....");
int[] num1=new int[4]; //4 numeros para adivinar
int[] num2=new int[4]; //4 numeros que adivinas
public NumberGuess(){
super("Number Guess");
Container c=getContentPane(); //Un container
//Agrega todos los elementos necesarios en un orden correspondiente
c.setLayout(new FlowLayout());
c.add(title);
c.add(prompt);
c.add(input);
c.add(send);
c.add(newGame);
c.add(answer);
c.add(guessed);
//Poner el titulo en un fomato especifico y del colo azul
title.setFont(new Font("Serif",Font.BOLD+Font.ITALIC,24));
title.setForeground(Color.blue);
//Poner los botones en funcion de action
send.addActionListener(this);
newGame.addActionListener(this);
answer.addActionListener(this);
//Poner el area del texto en funcion editable
guessed.setEditable(false);
this.changeNum(); //Una llamada de la funcion changeNume
//Las funciones necesarias para establecer un cuadro
this.setSize(280,360);
this.setLocation(372,164);
this.setResizable(false);
this.setVisible(true);
}
//Una funcion changeNum para generar aleatoriamente los
//numeros a adivinar y los numeros que no sean repetidos
public void changeNum(){
int i=0,j=0,a=0,tmp;
for(;i<4;a=0){
tmp=(int)(Math.random()*10);
for(j=0;j<i;j++){
if(tmp!=num1[j])
a++;
}
if (a==i){
num1[i]=tmp;
i++;
}
}
}
//Una funcion Arithmetic para realizar la comparacion de los numeros
public int Arithmetic(int a){
//Convertir los numeros en digitos para asignar a cada posicion
//de la variable num2
num2[0]=a/1000;
num2[1]=a/100-num2[0]*10;
num2[2]=a/10-num2[0]*100-num2[1]*10;
num2[3]=a-num2[0]*1000-num2[1]*100-num2[2]*10;
int A=0,B=0,i=0,j=0;
//para ver si los numeros introducidos son repetidos
for(;i<4;i++)
for(j=0;j<4;j++)
if(i!=j)
if (num2[i]==num2[j])
return 0;
//para verificar que si los digitos de los numeros que
//adivina lo tiene igual y misma posicion
//que el resultado de la adivinanza
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if (num1[i]==num2[i]){
//Incrementa A si el numero son igaul y de misma posicion
A+=1;
break;
}
//para verificar que si los digitos de los numeros que
//adivina lo tiene igual que el resultado de la adivinanza
else if (num2[i]==num1[j])
//Incrementa B si el son igual
B+=1;
//Una condicion que verifica que si los numeros son
//exactamente iguales que el resultado de la adivinanza
//y muestre un mensaje de pregunta
if(A==4){
JOptionPane.showMessageDialog(this,"Por fin~ Adivinaste el numero!!",
"Buen trabajo!!",JOptionPane.INFORMATION_MESSAGE);
int choose = JOptionPane.showConfirmDialog(this,"Yes-Nuevo juego\nNo-Salir",
"Continuar?",JOptionPane.YES_NO_OPTION);
//Cuando pulsa el boton Yes, vuelve a la condicion inicial
if (choose == JOptionPane.YES_OPTION){
this.changeNum();
guessed.setText("Here is the record:\n");
}
//Cuando pulsa el boton No, sale el programa
else if (choose == JOptionPane.NO_OPTION){
System.exit(0);
}
}
//Si no son exactamente iguales, entonces manda el
//al area del texto los resultados de cuantos
//digitos y cuantos posiciones tiene bueno
else
guessed.setText(guessed.getText()+a+" "+A+"A"+B+"B\n");
return 1;
}
//Una funcion para reiniciar el juego cunado pulsa el boton Nuevo Juego
public void gameNew(){
int choose=JOptionPane.showConfirmDialog(this,"Esta seguro de abandonar este juego?",
"No sabe nada...",JOptionPane.YES_NO_OPTION);
if (choose==JOptionPane.YES_OPTION){
//Cuando pulsa el boton Yes, vuelve a la condicion inicial
this.changeNum();
guessed.setText("Aqui estan los resultados:\n");
}
else if(choose==JOptionPane.NO_OPTION){
//Cuando pulsa el boton No, muestra el siguiente mensaje
//y limpia el campo del texto
JOptionPane.showMessageDialog(this,"Muy bien, sique intentando","Animo!!!",
JOptionPane.INFORMATION_MESSAGE);
input.setText("");
}
}
//Una funcion donde realiza las acciones correspondientes
public void actionPerformed(ActionEvent e){
//Cuando pulsa el boton send realiza las funciones siguientes
if(e.getSource().equals(send)){
try{
String s=input.getText();
//Convierte los introducidos en un numero entero
int b=Integer.parseInt(s);
//Una condicion que si los numeros introducidos no son 4
//muestra un mensaje de error
if (s.length()!=4)
JOptionPane.showMessageDialog(this,"Debe ser 4 numeros!!",
"No sabe leer introduccion?",JOptionPane.INFORMATION_MESSAGE);
//Si son 4 numero entonces realiza los siguientes
else
//Una llamada de la funcion Arithmetic con el valor introducido
//Y el resultado asigna en la variable b
b=Arithmetic(b);
//Si el resultado enviado por la funcion Arithmetic es 0
//indica que hay numeros repetidos, por lo tanto
//muestra un mensaje de error, y limpia el campo del texto
if (b==0)
JOptionPane.showMessageDialog(this,"Hay numeros repetidos",
"No se puede repetir los numeros",JOptionPane.INFORMATION_MESSAGE);
input.setText("");
}
//Si no son todos anteriores, muestra un mensaje de error
//y limpia el campo del texto
catch(Exception b){
JOptionPane.showMessageDialog(this,"Debe ser numeros......",
"No sabe leer introduccion?",JOptionPane.INFORMATION_MESSAGE);
input.setText("");
}
}
//Cuando pulsa el boton newGame, llama la funcion gameNew
//para reiniciar el juego
else if (e.getSource().equals(newGame)){
this.gameNew();
}
//Cuando pulsa el boton answer, muestra un mensaje
//con el resultado de la adivinanza
else if (e.getSource() == answer){
String out="Bruto!! aqui esta su respuesta
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -