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

📄 guessnumber.java

📁 猜数字游戏 游戏说明: 1、游戏开始
💻 JAVA
字号:
/*猜数字游戏,受到以前玩过文曲星中的启发,编写完成,在游戏过程中通过鼠标就能完成
  不会带来繁琐的从键盘输入数字.
  此程序编写简单易读.
 *由于初学JAVA,很多思路采用C中算法,希望在以后的学习中加以改进*/

import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 

public class GuessNumber implements ActionListener{
	int a[]=new int[4];                 //生成四位不同的随机数
	int b[]=new int[4];                 //存入输入的数 
	int flag[]=new int[10];             //用来保证产生的随机数不同
	int flag1[]=new int[10];            //用来保证输入的四个数不同
	int i=0,n=0;
	
	
	JFrame f;
	JMenuBar mainMenu;
    JButton  oneJButton, twoJButton, threeJButton, fourJButton, fiveJButton, sixJButton, 
      sevenJButton, eightJButton, nineJButton, zeroJButton, okJButton,returnJButton; 
    JTextField number; 
    JTextArea ta;
    JLabel Label1,Label2,Label3,Label4,Label5,Label6;
    JMenu gameMenu, helpMenu;
    JMenuItem mi1,mi2,mi3,mi4;
    JPanel p1,p2,p3,p4;
    public static void main(String args[]){

    	GuessNumber be=new GuessNumber();
    	be.go();
    	
    	}
    	
    public void go(){
      f=new JFrame("猜数字");

      Container contentPane=f.getContentPane();
      contentPane.setLayout(null);
      
      //菜单设定
      
      mainMenu = new JMenuBar(); 
      gameMenu = new JMenu("游戏"); 
      helpMenu = new JMenu("帮助");
      mi1=new JMenuItem("开始");
      mi2=new JMenuItem("结束");
      mi3=new JMenuItem("游戏介绍");
      mi4=new JMenuItem("关于");
      gameMenu.add(mi1);
      gameMenu.add(mi2);
      helpMenu.add(mi3);
      helpMenu.add(mi4); 
      mainMenu.add(gameMenu);  
      mainMenu.add(helpMenu);
      f.setJMenuBar(mainMenu); 
      mi1.addActionListener(this);       //添加菜单行为
      mi2.addActionListener(this);
      mi3.addActionListener(this);
      mi4.addActionListener(this);


      //游戏区设定
      
      Label1=new JLabel("欢迎进入猜数字游戏");
      Label1.setBounds(200,0,200,20);
      Label1.setForeground(Color.blue);
      Font font=new Font("Dialog",Font.PLAIN,16);
      Label1.setFont(font);
      contentPane.add(Label1);
      
      Label2=new JLabel("请输入你要猜的四个不同的数:");
      number=new JTextField(10);
      Label2.setBounds(0,30,195,20);
      number.setBounds(200,30,60,20);
      Label2.setForeground(new Color(200, 0, 210));
      number.setForeground(Color.red);
      Font font1=new Font("Dialog",Font.PLAIN,14);
      Label2.setFont(font1);
      contentPane.add(Label2);
      contentPane.add(number);
      
      ImageIcon icon1=new ImageIcon("24.gif");
      ImageIcon icon2=new ImageIcon("22.gif");
      ImageIcon icon3=new ImageIcon("23.gif");
      ImageIcon icon4=new ImageIcon("25.gif");
      Label3=new JLabel(icon1);
      Label4=new JLabel(icon2);
      Label5=new JLabel(icon3);
      Label6=new JLabel(icon4);

      Label3.setBounds(380,230,60,60);
      Label4.setBounds(380,230,60,60);
      Label5.setBounds(380,230,60,60);
      Label6.setBounds(380,230,60,60); 
      contentPane.add(Label3);
      contentPane.add(Label4);
      contentPane.add(Label5);
      contentPane.add(Label6);
      Label4.setVisible(false);               //添加图像显示,不同结果有不同显示
      Label5.setVisible(false);
      Label6.setVisible(false);
      

      ta=new JTextArea(300,250);
      ta.setBounds(10,140,300,200);
      ta.setForeground(new Color(20, 20, 200));
      ta.setBackground(new Color(149,254,99));
      contentPane.add(ta);
      
      
      oneJButton = new JButton();
      oneJButton.setText("1");
      oneJButton.setBounds( 0, 60, 50,50 );
      oneJButton.setBackground(new Color(150, 255, 255));
      contentPane.add( oneJButton );
      oneJButton.addActionListener(this);
  

      // set up twoJButton
      twoJButton = new JButton( "2" );
      twoJButton.setBounds( 50, 60, 50,50 );
      twoJButton.setBackground(new Color(150, 255, 255));
      contentPane.add( twoJButton );
      twoJButton.addActionListener(this);
  

      // set up threeJButton
      threeJButton = new JButton( "3" );
      threeJButton.setBounds( 100, 60, 50,50 );
      threeJButton.setBackground(new Color(150, 255, 255));
      contentPane.add( threeJButton );
      threeJButton.addActionListener(this);


      // set up fourJButton
      fourJButton = new JButton( "4" );
      fourJButton.setBounds(150, 60, 50,50 );
      fourJButton.setBackground(new Color(150, 255, 255));
      contentPane.add( fourJButton );
      fourJButton.addActionListener(this);
   

      // set up fiveJButton
      fiveJButton = new JButton( "5" );
      fiveJButton.setBounds( 200, 60, 50,50 );
      fiveJButton.setBackground(new Color(150, 255, 255));
      contentPane.add( fiveJButton );
      fiveJButton.addActionListener(this);


      // set up sixJButton
      sixJButton = new JButton( "6" );
      sixJButton.setBounds( 250, 60, 50,50 );
      sixJButton.setBackground(new Color(150, 255, 255));
      contentPane.add( sixJButton );
      sixJButton.addActionListener(this);
  

      // set up sevenJButton
      sevenJButton = new JButton( "7" );
      sevenJButton.setBounds( 300, 60, 50,50 );
      sevenJButton.setBackground(new Color(150, 255, 255));
      contentPane.add( sevenJButton );
      sevenJButton.addActionListener(this);


      // set up eightJButton
      eightJButton = new JButton( "8" );
      eightJButton.setBounds( 350, 60, 50,50 );
      eightJButton.setBackground(new Color(150, 255, 255));
      contentPane.add( eightJButton );
      eightJButton.addActionListener(this);
    

      // set up nineJButton
      nineJButton = new JButton( "9" );
      nineJButton.setBounds(400, 60, 50,50 );
      nineJButton.setBackground(new Color(150, 255, 255));
      contentPane.add( nineJButton );
      nineJButton.addActionListener(this);


      // set up zeroJButton
      zeroJButton = new JButton( "0" );
      zeroJButton.setBounds( 450, 60, 50,50 );
      zeroJButton.setBackground(new Color(150, 255, 255));
      contentPane.add( zeroJButton );
      zeroJButton.addActionListener(this);
      
      // set up okJButton
      okJButton = new JButton( "OK" );
      okJButton.setBounds( 350, 120, 75,75 );
      okJButton.setForeground(new Color(20, 20, 200));
      okJButton.setBackground(new Color(255, 255, 100));
      contentPane.add(okJButton );
      okJButton.addActionListener(this);
      
      //set up returnJBtton
      returnJButton = new JButton( "返回" );
      returnJButton.setBounds( 425, 120, 75,75 );
      returnJButton.setForeground(new Color(0, 128, 64));
      returnJButton.setBackground(new Color(255, 255,100));
      contentPane.add(returnJButton );
      returnJButton.addActionListener(this);
  
        
      f.setSize(530,420);
      f.setVisible(true);

    }	
    	
   	public void actionPerformed(ActionEvent event) { 
   	         Object temp = event.getSource();
   	         
   	    int x=0,y=0;

   	         
   	         //菜单行为
   	         
   	         //开始菜单,用来产生随机数,并清零
   	         if(temp==mi1){
   	         	number.setText("");
   	         	ta.setText("");
   	         	n=0; i=0;
   	         	for(int i=0;i<10;i++){
   	         		flag1[i]=0;flag[i]=0;
   	         		}
   	            
		        for(int i=0;i<4;i++){
			      int r=(int)(Math.random()*10);      //产生0-9的随机数
			       if(flag[r]==0){
				         a[i]=r;
				         flag[r]=1;
				         }
			       else{                       //相同则重新产生
				              i--;
				       }
			      }
			    Label6.setVisible(false);
			    Label5.setVisible(false);
			    Label4.setVisible(false);  
				Label3.setVisible(true);
   	         	
   	         	}
   	         if(temp==mi2){
   	         	System.exit(0);           //退出
   	         	}
   	         if(temp==mi3){
   	         	JOptionPane.showMessageDialog(f,"猜数字游戏介绍:\n从0~9猜出四个不同数,结果中A表示所猜的数位置和数值都对,B表示数值对,位置不对.\n当猜出的数大小和位置都正确时,游戏结束.\n有十次机会\n操作说明:\n先在游戏菜单选项中点击开始\n然后直接点击0~9数字键,按OK键确认,按返回键重新输入..","帮助",JOptionPane.WARNING_MESSAGE); 
   	         	}
   	         if(temp==mi4){
   	         	JOptionPane.showMessageDialog(f,"制作者:\n莆田学院电子信息工程系计教052 叶超\n制作完成时间:\n2007.11.20","关于作品",JOptionPane.WARNING_MESSAGE);
   	         	}	
   	         //数字键行为 
   	         if(temp==oneJButton&&i<4&&flag1[1]==0){
   	               number.setText(number.getText()+"1");
   	               b[i]=1;i++;flag1[1]=1;
   	               
   	         	}	
   	         	
   	         if(temp==twoJButton&&i<4&&flag1[2]==0){
   	               number.setText(number.getText()+"2");
   	               b[i]=2;i++;flag1[2]=1;
   	         	}	
   	         if(temp==threeJButton&&i<4&&flag1[3]==0){
   	               number.setText(number.getText()+"3");
   	               b[i]=3;i++;flag1[3]=1;
   	         	}	
   	         if(temp==fourJButton&&i<4&&flag1[4]==0){
   	               number.setText(number.getText()+"4");
   	               b[i]=4;i++;flag1[4]=1;
   	         	}	
   	         if(temp==fiveJButton&&i<4&&flag1[5]==0){
   	               number.setText(number.getText()+"5");
   	               b[i]=5;i++;flag1[5]=1;
   	         	}	
   	         if(temp==sixJButton&&i<4&&flag1[6]==0){
   	               number.setText(number.getText()+"6");
   	               b[i]=6;i++;flag1[6]=1;
   	         	}	
   	         if(temp==sevenJButton&&i<4&&flag1[7]==0){
   	               number.setText(number.getText()+"7");
   	               b[i]=7;i++;flag1[7]=1;
   	         	}	
   	         if(temp==eightJButton&&i<4&&flag1[8]==0){
   	               number.setText(number.getText()+"8");
   	               b[i]=8;i++;flag1[8]=1;
   	         	}	
   	         if(temp==nineJButton&&i<4&&flag1[9]==0){
   	               number.setText(number.getText()+"9");
   	               b[i]=9;i++;flag1[9]=1;
   	         	}		
   	         if(temp==zeroJButton&&i<4&&flag1[0]==0){
   	               number.setText(number.getText()+"0");
   	               b[i]=0;i++;flag1[0]=1;
   	         	}	
   	         //返回按钮	
   	         if(temp==returnJButton){
   	         	   number.setText("");
   	         	   i=0;flag1[0]=flag1[1]=flag1[2]=flag1[3]=flag1[4]=flag1[5]=flag1[6]
   	         	   =flag1[7]=flag1[8]=flag1[9]=0;
   	         	}
   	         //确认按钮,进行所猜数字 的判断,并在文本区中显示出来	
   	         if(temp==okJButton&&a[0]!=a[1]&&i==4){
   	         	n++;
   	         	for(int i=0;i<4;i++){
			     for (int j=0;j<4;j++){
			     	if(b[i]==a[j]){
					  if(i==j){
						x++;
						}
					  else{
					    y++;
				    	}
				 	
					}
				}
			 }
   	         	String text1="         你得努力啊,再猜!";
   	         	String text2="         还不错,继续!";
   	         	String text3="         恭喜你,猜对了!";
   	         	String text4="没机会了,按开始键重新开始吧!";
   	         	String text5="你很聪明,欢迎下次再来!!!";
   	         	String number1=number.getText();
   	      //   	进行判断分析
   	         	if(x<=1&&n!=10){
   	         		   Label3.setVisible(false);
   	         		   Label4.setVisible(false);
   	         		   Label6.setVisible(false);
                       Label5.setVisible(true);
                       

                        
   	         		ta.append(n+":      "+number1+"    "+x+" A "+y+" B"+text1+"\n");
   	         		}
   	         	if(x>1&&x<4&&n!=10){
   	         		Label5.setVisible(false);
   	         		Label4.setVisible(false);
   	         		Label6.setVisible(false);
   	         		Label3.setVisible(true);
   	         		ta.append(n+":      "+number1+"    "+x+" A "+y+" B"+text2+"\n");
   	         		}	
   	         	if(x==4){
   	         		Label3.setVisible(false);
   	         		Label5.setVisible(false);
   	         		Label6.setVisible(false);
   	         		Label4.setVisible(true);
   	         		ta.append(n+":      "+number1+"    "+x+" A "+y+" B"+text3+"\n");
   	         		ta.append(text5+"\n");
   	         		return;
   	         		}	
   	         	if(n==10){
   	         		Label5.setVisible(false);
   	         		Label4.setVisible(false);
   	         		Label3.setVisible(false);
   	         		Label6.setVisible(true);
   	         		ta.append(n+":      "+number1+"    "+x+" A "+y+" B"+"\n");
   	         		ta.append("答案是: "+a[0]+a[1]+a[2]+a[3]+"     "+text4+"\n");
   	         		return;
   	         		}	
   	         //	ta.append(n+":      "+number1+"   "+x+"A"+y+"B"+a[0]+a[1]+"\n");
   	         	number.setText("");
   	         	   i=0;flag1[0]=flag1[1]=flag1[2]=flag1[3]=flag1[4]=flag1[5]=flag1[6]
   	         	   =flag1[7]=flag1[8]=flag1[9]=0;
   	       }	
   	       										
   	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -