利用海明码原理编写个小游戏

                                   利用海明码原理编写个小游戏

 

 

 

    说明:海明码是网络传输中用来纠错的一种方法,这里利用这个原理随便写个简单的小程序,也是我自己做的第一个游戏程序,可吸收的地方不多,但是值得纪念。所以留下以供将来回忆用。

心中想着你想去的地方,分别在A, B, C ,D中找出带有你要去的那个地放的标号。如:
我想去东康,A中有我就点下按纽A。B中有我同样也点下B。C 中也有我再点下C。D中也有我也点下D。然后点下结果按纽,会显示出你想要去的地方。点还原可以继续这个游戏。
   这是根据网络传输中海明码纠错原理做出来的简易游戏。如果需要还可以扩展更多。这里就不多写了。怕麻烦!!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class guessplay extends JFrame
{
 private JLabel aJLabel;
 private JLabel bJLabel;
 private JLabel cJLabel;
 private JLabel dJLabel;
 private JTextField eJTextField;
 private JButton aJButton;
 private JButton bJButton;
 private JButton cJButton;
 private JButton dJButton;
 private JButton totalJButton;
 private JButton untotalJButton;
 int A=0;
 int  B=0;
 int C=0;
 int D=0;
 
 
 public guessplay()
 {
  createUserInterface();
  }
  private void createUserInterface()
  {
   Container contentPane=getContentPane();
   contentPane.setLayout(null);
  
   aJLabel=new JLabel();
   aJLabel.setText("A: 上海  北京  天津  贵州  云南  江苏  西藏  东康");
   aJLabel.setBounds(16,16,330,21);
   contentPane.add(aJLabel);
  
   bJLabel=new JLabel();
   bJLabel.setText("B: 南京  北京  郑州  贵州  甘肃  江苏  黑龙江  东康");
   bJLabel.setBounds(16,50,330,21);
   contentPane.add(bJLabel);
  
   cJLabel=new JLabel();
   cJLabel.setText("C: 安徽  天津  郑州  贵州  海南  西藏  黑龙江  东康");
   cJLabel.setBounds(16,84,330,21);
   contentPane.add(cJLabel);
  
   dJLabel=new JLabel();
   dJLabel.setText("D: 内蒙古  云南  甘肃  江苏  海南  西藏  黑龙江  东康");
   dJLabel.setBounds(16,118,330,21);
   contentPane.add(dJLabel);
  
   eJTextField=new JTextField();
   eJTextField.setText("");
   eJTextField.setBounds(16,152,110,21);
   eJTextField.setEditable(false);
   eJTextField.setHorizontalAlignment(JTextField.RIGHT);
   contentPane.add(eJTextField);
  
   aJButton=new JButton();
   aJButton.setText("A");
   aJButton.setBounds(16,186,50,25);
   contentPane.add(aJButton);
   aJButton.addActionListener(
   new ActionListener()
    {public void actionPerformed(ActionEvent event)
    {
     aJButtonActionPerformed(event);
     }
     }
     );
   
    bJButton=new JButton();
    bJButton.setText("B");
    bJButton.setBounds(76,186,50,25);
    contentPane.add(bJButton);
    bJButton.addActionListener(
    new ActionListener()
    {
     public void actionPerformed(ActionEvent event)
     {
      bJButtonActionPerformed(event);
      }
      }
      );
    
     cJButton=new JButton();
    cJButton.setText("C");
    cJButton.setBounds(16,224,50,25);
    contentPane.add(cJButton);
    cJButton.addActionListener(
    new ActionListener()
    {
     public void actionPerformed(ActionEvent event)
     {
      cJButtonActionPerformed(event);
      }
      }
      );
     
      dJButton=new JButton();
    dJButton.setText("D");
    dJButton.setBounds(76,224,50,25);
    contentPane.add(dJButton);
    dJButton.addActionListener(
    new ActionListener()
    {
     public void actionPerformed(ActionEvent event)
     {
      dJButtonActionPerformed(event);
      }
      }
      );
     
      totalJButton=new JButton();
    totalJButton.setText("结果");
    totalJButton.setBounds(146,224,100,25);
    contentPane.add(totalJButton);
    totalJButton.addActionListener(
    new ActionListener()
    {
     public void actionPerformed(ActionEvent event)
     {
      totalJButtonActionPerformed(event);
      }
      }
      );
     
      untotalJButton=new JButton();
      untotalJButton.setText("还原");
      untotalJButton.setBounds(146,186,100,25);
      contentPane.add(untotalJButton);
      untotalJButton.addActionListener(
      new ActionListener()
      {
       public void actionPerformed(ActionEvent event)
       {
        untotalJButtonActionPerformed(event);
        }
        }
        );
      
     setTitle("guessplay");
     setSize(330,300);
     setVisible(true);
     }
    
     private void aJButtonActionPerformed(ActionEvent event) 
     {
     A=1;}
    
     private void bJButtonActionPerformed(ActionEvent event)
     {
      B=2;
      }
     
      private void cJButtonActionPerformed(ActionEvent event)
      {
      C=4;
      }
     
      private void dJButtonActionPerformed(ActionEvent event)
      {
      D=8;
      }
     
      private void totalJButtonActionPerformed(ActionEvent event)
      {
       int total=0;
       total=A+B+C+D;
     switch (total)
     {
      case 1:
      eJTextField.setText("上海");
      break;
     
      case 2:
      eJTextField.setText("南京");
      break;
     
      case 3:
      eJTextField.setText("北京");
      break;
     
      case 4:
      eJTextField.setText("安徽");
      break;
     
      case 5:
      eJTextField.setText("天津");
      break;
     
      case 6:
      eJTextField.setText("郑州");
      break;
     
      case 7:
      eJTextField.setText("贵州");
      break;
     
      case 8:
      eJTextField.setText("内蒙古");
      break;
     
      case 9:
      eJTextField.setText("云南");
      break;
     
      case 10:
      eJTextField.setText("甘肃");
      break;
     
      case 11:
      eJTextField.setText("江苏");
      break;
     
      case 12:
      eJTextField.setText("海南");
      break;
     
      case 13:
      eJTextField.setText("西藏");
      break;
     
      case 14:
      eJTextField.setText("黑龙江");
      break;
     
      default:
      eJTextField.setText("东康");
       }
       }
       private void untotalJButtonActionPerformed(ActionEvent event)
       {
      
       int A=B=C=D=0;
       eJTextField.setText("");
       
        }
       
       public static void main(String[] args)
       {
        guessplay application=new guessplay();
        application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
        }
     

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值