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

📄 mc.java

📁 用JAVA实现修道士过河
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
        }catch(Exception e){
            JOptionPane.showMessageDialog(frame1,"可能输入不大合理,我们用默认值执行!","温馨提示",MessageType);
            Second="1";
        }
    }//GEN-LAST:event_ShowActionPerformed
    
    
    class MCAction extends TimerTask{
        
        public void run(){
         switch(Count){
             case 0:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 0, 0);
                 break;
             case 1:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 2, 1);
                 break;
             case 2:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 2, 2);
                 break;
             case 3:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 1, 3);
                 break;
             case 4:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 1, 0);
                 break;
             case 5:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 2, 1);
                 break;
             case 6:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 2, 2);
                 break;
             case 7:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 1, 3);
                 break;
             case 8:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 1, 0);
                 break;
             case 9:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(2, 0, 1);
                 break;
             case 10:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(2, 0, 2);
                 break;
             case 11:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(1, 1, 3);
                 break;
             case 12:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(1, 1, 0);
                 break;
             case 13:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(2, 0, 1);
                 break;
             case 14:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(2, 0, 2);
                 break;
             case 15:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 1, 3);
                 break;
             case 16:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 1, 0);
                 break;
             case 17:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 2, 1);
                 break;
             case 18:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 2, 2);
                 break;
             case 19:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 1, 3);
                 break;
             case 20:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 1, 0);
                 break;
             case 21:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 2, 1);
                 break;
             case 22:
                 Print10.setText(String.valueOf(++i));
                 MCAction_Basic(0, 2, 2);
                 break;
             case 23:
                 cancel();
                 timer=null;
                 JOptionPane.showMessageDialog(frame1,"恭喜你,演示完成了!","温馨提示",MessageType);
         }
         Count++;
         }

        private void MCAction_Basic( int M, int C, int Flag){
         boolean Result=true;
         switch(Flag){
             case 0:
                 LeftM +=M;
                 LeftC +=C;
                 BoatM=0;
                 BoatC=0;
                 if(!IsSafe()){
                     Result=false;
                     break;
                 }
                 DispLeftBank(LeftM, LeftC);
                 DispBoat(BoatM, BoatC);
                 DispRightBank(RightM, RightC);
                 Print(M,C,LeftM, LeftC,BoatM, BoatC,RightM, RightC,Flag);
                 break;
             case 1:
                 LeftM -=M;
                 LeftC -=C;
                 BoatM=M;
                 BoatC=C;
                 if(!IsSafe()){
                     Result=false;
                     break;
                 }
                 DispLeftBank(LeftM, LeftC);
                 DispBoat(BoatM, BoatC);
                 Print(M,C,LeftM, LeftC,BoatM, BoatC,RightM, RightC,Flag);
                 break;
             case 2:
                 RightM +=M;
                 RightC +=C;
                 BoatM=0;
                 BoatC=0;
                 if(!IsSafe()){
                     Result=false;
                     break;
                 }
                 DispRightBank(RightM, RightC);
                 DispBoat(BoatM, BoatC);
                 Print(M,C,LeftM, LeftC,BoatM, BoatC,RightM, RightC,Flag);
                 break;
             case 3:
                 RightM -=M;
                 RightC -=C;
                 BoatM=M;
                 BoatC=C;
                 if(!IsSafe()){
                     Result=false;
                     break;
                 }
                 DispRightBank(RightM, RightC);
                 DispBoat(BoatM, BoatC);
                 Print(M,C,LeftM, LeftC,BoatM, BoatC,RightM, RightC,Flag);
                 break;
              default:
                 JOptionPane.showMessageDialog(frame1,"很抱歉,出错了!","错误提示",MessageType);
         }
         
     }
     private boolean IsSafe(){
        boolean Result=true;
        if(LeftM>0&&LeftM<LeftC){
            Result=false;
        }
        if(RightM>0&&RightM<RightC){
            Result=false;
        }
        return Result;
    }
     private void Print(int M,int C,int LeftM,int LeftC,int BoatM,int BoatC,int RightM,int RightC,int Flag){
         String s1="",s2="",s3="",s4="";
         switch(Flag){
             case 0:
                  s1="从船登陆到左岸.";
                  break;
             case 1:
                  s1="从左岸上到船.";
                  break;
             case 2:
                  s1="从船登陆到右岸.";
                  break;
             case 3:
                  s1="从右岸上到船.";
                  break;
             default:
                 JOptionPane.showMessageDialog(frame1,"很抱歉,出错了!","错误提示",MessageType);
         }
        
         s2="现在船上有" + BoatM + "个修道士和" + BoatC+"个野人.";
         s3="现在左岸有" + LeftM + "个修道士和" +LeftC+"个野人.";
         s4="现在右岸有" + RightM + "个修道士和" +RightC+"个野人.";
         Print1.setText(String.valueOf(LeftM));
         Print2.setText(String.valueOf(LeftC));
         Print3.setText(String.valueOf(BoatM));
         Print4.setText(String.valueOf(BoatC));
         Print5.setText(String.valueOf(RightM));
         Print6.setText(String.valueOf(RightC));
         Print7.setText(String.valueOf(M));
         Print8.setText(String.valueOf(C));
         Print9.setText(s1);
     }
     
     private void DispLeftBank(int M, int C){
             switch(M){
             case 0:
                 LeftMis1.setText("");
                 LeftMis1.setVisible(false);
                 LeftMis2.setText("");
                 LeftMis2.setVisible(false);
                 LeftMis3.setText("");
                 LeftMis3.setVisible(false);
                 break;
             case 1:
                 LeftMis1.setText("修");
                 LeftMis1.setVisible(true);
                 LeftMis2.setText("");
                 LeftMis2.setVisible(false);
                 LeftMis3.setText("");
                 LeftMis3.setVisible(false);
                 break;
             case 2:
                 LeftMis1.setText("修");
                 LeftMis1.setVisible(true);
                 LeftMis2.setText("修");
                 LeftMis2.setVisible(true);
                 LeftMis3.setText("");
                 LeftMis3.setVisible(false);
                 break;
              case 3:

⌨️ 快捷键说明

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