⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 numberguess.java

📁 這是一個由java寫成的猜數字遊戲!目的在猜4個數字!如果輸入的數字和位置是對的等於一個A!如果只有數字對但位置不對等於一個B!由此來推測出正確的4個數字!
💻 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 + -