华容道游戏源代码

华容道游戏源代码,完全原创、可运行,并附送走法演示。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;

public class Hrd extends JFrame
{
        
	   private final int MaxStep=1000;
	   private int[][] a;           //全局数组,方块映射到些数组。
	   private int[][] recorder;    //记录走法的数组。只有当你走成功后才记录。
       private int totalStep;
       private boolean stop=false;  // to stop the thread
       private int speed=1000;
    
	   private JPanel jw = new JPanel(new GridLayout(5,1));//用于摆放LOGO标志,步数等
	   private Border border = new EtchedBorder(EtchedBorder.RAISED,Color.white,new Color(148,145,140));
      
	   AButton[] bt = new AButton[10];
	   JLabel jstep = new JLabel(" 第 0 步");
      
       MenuBar mym=new MenuBar();
       Menu play=new Menu("游戏"),
	   demo=new Menu("演示"),
       help=new Menu("帮助");
       MenuItem play_new_game=new MenuItem("重新开始"),
                 play_choose=new MenuItem("选择游戏"),
                 play_save=new MenuItem("保存游戏"),
                 play_import=new MenuItem("导入游戏"),
                 play_exit=new MenuItem("退出");
       MenuItem demo_zfgo=new MenuItem("走法演示"),		
	            demo_stop=new MenuItem("停止");
       Menu demo_shudu=new Menu("速度调节");
       CheckboxMenuItem[] mi_speed = new CheckboxMenuItem[4];
       String s[] = {
   "1","2","3","4"};      
       MenuItem help_topic=new MenuItem("相关主题"),
                help_about=new MenuItem("关于...");

  	public Hrd(){
   
               this.setSize(500,550);
	           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               creat_menu();
	           Container contentPane = getContentPane();
               contentPane.setBackground(Color.white );
  	           contentPane.setLayout(null);
               setTitle("标准华容道2004 ");
               setResizable(false);
               Toolkit  kit = Toolkit.getDefaultToolkit();
               Dimension screenSize = kit.getScreenSize();
               setLocation((screenSize.width-getSize().width)/2,(screenSize.height-getSize() .height )/2);
  	    
		
			   bt[0] = new AButton(1,"马超",1,2,0,0);
		       bt[0].setBackground(Color.BLUE);
               contentPane.add(bt[0]);

		       bt[1] = new AButton(2,"曹操",2,2,1,0);
		       bt[1].setBackground(Color.RED);
               contentPane.add(bt[1]);


		       bt[2] = new AButton(3,"赵云",1,2,3,0);
		       bt[2].setBackground(Color.BLUE);
		       contentPane.add(bt[2]);

		       bt[3] = new AButton(4,"张飞",1,2,0,2);
		       bt[3].setBackground(Color.BLUE);
               contentPane.add(bt[3]);

               bt[4] = new AButton(5,"黄忠",1,2,3,2);
		       bt[4].setBackground(Color.BLUE);
               contentPane.add(bt[4]);
                               //ID号,名称,宽,高,位置-X,Y
		       bt[5] = new AButton(6,"关羽",2,1,1,2);  
		       bt[5].setBackground(Color.BLUE);
               contentPane.add(bt[5]);

		       bt[6] = new AButton(7,"卒",1,1,0,4);
		       bt[6].setBackground(Color.YELLOW);
               contentPane.add(bt[6]);

		       bt[7] = new AButton(8,"卒",1,1,1,3);
		       bt[7].setBackground(Color.YELLOW);
               contentPane.add(bt[7]);

		       bt[8] = new AButton(9,"卒",1,1,2,3);
		       bt[8].setBackground(Color.YELLOW);
               contentPane.add(bt[8]);

		       bt[9] = new AButton(10,"卒",1,1,3,4);
		       bt[9].setBackground(Color.YELLOW);
           	   contentPane.add(bt[9]);

               showMyLogo();
               contentPane.add(jw);

               setArr(5,4);   //初始化棋盘
		}

        private void creat_menu(){
   
              mym.add(play);
	          mym.add(demo);
              mym.add(help);

              play.add(play_new_game);
              play.add(play_choose);
              play.addSeparator() ;
              play.add(play_save);
              play.add
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值