Java编写窗体版 国际象棋程序、界面漂亮 完整代码

   前段时间公司的事情太忙,CSDN博客停止更新快两个月。今天为大家分享一个java窗体的国际象棋小程序,在之前的系列博客中,我们分享过中国象棋的开发和制作,今天我们讨论的主要是国际象棋。国际象棋共有6种不同的棋子,分别为王(King)、后(Queen)、车(Rook)、(Bishop)、马(Knight)、兵(Pawn)。国际象棋中棋子共三十二个,分为黑白两组,各十六个,由对弈双方各执一组,兵种是一样的,分为六种。下面对这六种棋子进行一下简单的介绍:

1、王(King),英文原意“国王”,英文简称“K”,棋子数量1个。

2、后(Queen),英文原意“皇后”,英文简称“Q”,棋子数量1个。

3、车(Rook),英文原意“战车”,英文简称“R”,棋子数量2个。

4、象(Bishop),英文原意“主教”,英文简称“B”,棋子数量2个。

5、马(Knight),英文原意“骑士”,英文简称“N”,棋子数量2个。

6、兵(Pawn),英文原意“禁卫军”,英文简称“P”,棋子数量8个。

和中国象棋的不同

1 的棋盘不一样。国际象棋的棋盘是由8*8个黑白相间的格组成的;中国象棋棋盘是由九道直线和十道横线交叉组成的,中间以“楚河汉界”相隔,淋漓地再现了当时两军对垒的场景。

2 国际象棋和中国象棋的棋子不一样。国际象棋的棋子包括1个王,1个后,2个车,2个马(骑士),2个象(教士),以及8个兵;中国象棋的棋子包括1个帅(或将),2个车,2个马,2个炮,2个仕,2个象,以及5个兵(卒)。国际象棋和中国象棋总体棋子数量一样,但是中国象棋中无后,国际象棋中无炮。

3 国际象棋的对局目的是把对方的王将死。比赛规定:一方的王受到对方棋子攻击时,王被照将,攻击方称为“将军”,此时被攻击方必须立即“应将”,如果无法避开将军,王即被将死(长将除外),“将军”方赢得比赛。除“将死”外,还有“超时判权负”与“和棋”。

4 中国象棋是由两人轮流走子,在战法上遵循古代孙子兵法中的“不战而屈人之兵,善之善者也”的作战思想,以“将死”或“困毙”对方将(帅)为胜的一种二人对抗性游戏。<对局时,由执红棋的一方先走,双方轮流各走一招,直至分出胜、负、和,对局即终了。在棋战中,人们可以从攻与防、虚与实、整体与局部等复杂关系的变化中提升思维能力。

系统框架

  利用JDK自带的SWING框架开发,不需要安装第三方JAR包。不需要数据库,纯窗体模式,直接运行Main文件即可以。运行方法直接可以run as appliaiton或者JAR --.jar

主要功能

   本次分享的基于Java窗体的国际象棋程序,界面漂亮、具有人人对战对战、用户名设置、查看游戏时间、查看游戏结果、保存游戏结果等功能。本系统功能模块图如下所示:

运行效果

1 主界面

 2 游戏开始界面

3 游戏运行界面

关键代码

  

public void changechance()
	{
		if (boardState[getKing(chance).getx()][getKing(chance).gety()].ischeck())
		{
			chance^=1;
			gameend();
		}
		if(destinationlist.isEmpty()==false)
			cleandestinations(destinationlist);
		if(previous!=null)
			previous.deselect();
		previous=null;
		chance^=1;
		if(!end && timer!=null)
		{
			timer.reset();
			timer.start();
			showPlayer.remove(CHNC);
			if(Main.move=="White")
				Main.move="Black";
			else
				Main.move="White";
			CHNC.setText(Main.move);
			showPlayer.add(CHNC);
		}
	}

项目总结

(1)在写代码之前,在大脑里一定要把思路理清楚,不能模模糊糊,一定要把功能图和流程图画出来,然后根据它去实现每一个功能块,要多分析,培养一种良好的逻辑思维能力。

(2)在写代码的过程中,一定要采取就近原则,同一个功能,或者对同一个组件的设置一般要写在一块,这样写的程序比较清晰,不容易出错,也便于查找。

(3)要养成良好的注释习惯,一是有利于别人阅读你的程序,同时也有利于自己以后再看,就能很快的读懂程序,提高效率。

(4)把功能模块化,即把实现相同功能的代码段封装成一到一个类或者一个方法中,实现的时候调用即可,这样能提高代码的可读性

(5)养成创建包来存放不同功能的类,使系统的结构更加模块化和规范化。

(6)在编写代码的时候,一定要边写边调试,要适时的设置断点,或者把某些变量的值输出到控制台,通过观察和分析变量的值,便于判断问题所在,同时,需要捕获异常的一定要把异常信息打印出来,便于分析问题。

猜你喜欢

转载自blog.csdn.net/bangxiecode/article/details/131905390