用java编写国际象棋

Hello!大家好!我又做出来了一个国际象棋游戏,跟之前的斗兽棋比起来国际象棋无异要更大众化一些,所以还是希望各位编程爱好者和国际象棋爱好者支持一下啊!

其实看过我之前写的五子棋和斗兽棋的朋友们应该已经了解到,写棋类游戏都是有一定的框架可以搭建的,只是在游戏的规则上有不同的复杂程度。而国际象棋在我看来时规则最复杂的棋类游戏之一了,我用java写了有足足一千多行的代码(当然,有可能是我的代码不够简便),这次分两次肯定是解释不清楚了,我打算分四次来写。第一步是设计棋盘以及实现基本的走棋功能;第二步是棋子的走法与吃法;第三步是加入将军的概念;第四步是判断输赢与和棋的方法,以及实现自定义棋盘的功能。

我们先进行第一步——设计棋盘以及基本的走棋功能
在这一步我们将把国际象棋的棋盘呈现出来,并实现初步的走棋功能,之后我们再来介绍规则的写法。这一步的方法可以应用到各种棋类游戏上去。

这些是国际象棋需要的类库,跟五子棋和斗兽棋差不多。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
public class 国际象棋 extends JPanel{、、还是JPanel的子类

国际象棋里的变量是真的很多了,我在这一次要用到的变量后面会加上横线。

 private static long serialVersionUID=1l;————
 private static int rows=8,cols=8;————一共8行8列
 private int BLOCKWIDTH=55,BLOCKHEIGHT=55;————
 private int SMALLERWIDTH=15,SMALLERHEIGHT=15;————
 private static int clickcount;————记录点击次数
 private static MyIcon movingpiece;————要走的棋子
 private static String sidetomove;————轮到哪一方走棋
 private static boolean ischecking;
 private static MyIcon capturedpiece;————上一步被吃掉的棋子(可以为空)
 private static MyIcon capturedpiece2;
 private static boolean justcastled;
 private static MyLabel movinglabel;————要走的棋子所在的格子
 private static Color[] colors= {Color.WHITE,Color.GRAY};————格子的背景颜色
 private static ArrayList<MyLabel[]> recordedmove;————走过的棋进行记录
 private Strin
  • 20
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值