77范文网 - 专业文章范例文档资料分享平台

中国象棋人人对战(4)

来源:网络收集 时间:2018-12-19 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

图16 游戏主界面

7.1测试进入主界面后工具栏的各功能

进入游戏主界面,在主界面的工具栏中,分别有“悔棋”、”退出”“新游戏”功能按钮。可以点击“退出”结束游戏系统。在游戏过程中点击“悔棋”实现棋子返回上一步的位置。在游戏过程中点击“新游戏”结束当前的游戏,开始新的游戏。

7.2对“车”、“马”、“象”、“士”、“卒”、“炮”、“将”走法的测试

“车”的测试,拖动“车”使其隔棋子或按斜角线走动,结果“车”不能被移动,拖动其按直线在界面范围内上下左右移动,结果可以移动,但中间隔了棋子,其不能被移动。

“马”的测试,拖动“马”使其按上下左右方向在主界面中移动,结果不可能移动“马”。按向左或右走一格,再向上或下走二格时,其中上下左右没有棋子挡着时,可以移动,按向左或右走二格,再向上或下走二格时,其中上下左右没有棋子挡着时,可以移动,中间有棋子时,则移动不了。

“象”、“相”的测试,在主界面范围内,移动象、相向左或右走二格再向上

16

或下行两格(“田”字格),如果在“田”字中间的十字上有棋子,则象或相,移动不了。相反则可以移。拖动“象”、“相”按其它任意方向或方式走,棋子无法移动。

“士”、“仕”的测试,拖动“士”、“仕”“九宫”中斜向走一格,结果可以移动,相反,使其按上下左右移动则不可动,向“九宫”外走则棋子不动。

“炮”的测试,拖动“炮”纵、横行,若在纵、横行中,前方有一个棋子,在这个棋子前方有对方的棋子,则可以行走,吃掉对方的棋子。若纵、横方向没有棋子挡住,则可以纵、横走。拖动“炮”斜着走,则其不可移动。

“将”的测试,拖其在“九宫”中行走,当其不在“九宫”中行走时,将会停在原处,不能移动。在“九宫”中其可以纵、横、斜着行走。

“卒”、“兵”的测试,当其没有过河时,拖其向后、左、右行时,则其停在原处,不能移动,拖其向前行时,其可以移动。当其过的楚河汉界后,可以向前左、右行,当拖其向后行时,棋子无法向后移动。

通过对软件各功能的测试发现,该软件各功能都能实现,性能可靠!

附件:源代码(以上的设计思想是根据下面的代码分析的) import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import java.io.*;

public class Chess{ } class

ChessMainFrame

extends

JFrame

implements

public static void main(String args[]){ }

new ChessMainFrame(\中国象棋:\

ActionListener,MouseListener,Runnable{

17

//玩家

JLabel play[] = new JLabel[32]; //棋盘 JLabel image;

//窗格 Container con; //工具栏 JToolBar jmain; //重新开始 JButton anew; //悔棋 JButton repent; //退出 JButton exit; //当前信息 JLabel text;

//保存当前操作 Vector Var;

//规则类对象(使于调用方法) ChessRule rule; /**

** 单击棋子

** chessManClick = true 闪烁棋子 并给线程响应

** chessManClick = false 吃棋子 停止闪烁 并给线程响应*/

boolean chessManClick;

18

/**

** 控制玩家走棋

** chessPlayClick=1 黑棋走棋

** chessPlayClick=2 红棋走棋 默认红棋 ** chessPlayClick=3 双方都不能走棋 */

int chessPlayClick=2;

//控制棋子闪烁的线程 Thread tmain;

//把第一次的单击棋子给线程响应 static int Man,i;

ChessMainFrame(){ new ChessMainFrame(\中国象棋\

} /**

** 构造函数

** 初始化图形用户界面 */

ChessMainFrame(String Title){ //获行客格引用

con = this.getContentPane(); con.setLayout(null); //实例化规则类 rule = new ChessRule(); Var = new Vector();

19

//创建工具栏

jmain = new JToolBar();

text = new JLabel(\欢迎使用象棋对弈系统\//当鼠标放上显示信息 text.setToolTipText(\信息提示\anew = new JButton(\新 游 戏 \anew.setToolTipText(\重新开始新的一局\exit = new JButton(\退 出 \

exit.setToolTipText(\退出象棋程序程序\repent = new JButton(\悔 棋 \

repent.setToolTipText(\返回到上次走棋的位置\

//把组件添加到工具栏

jmain.setLayout(new GridLayout(0,4)); jmain.add(anew); jmain.add(repent); jmain.add(exit); jmain.add(text);

jmain.setBounds(0,0,558,30); con.add(jmain);

//添加棋子标签 drawChessMan();

//注册按扭监听

anew.addActionListener(this); repent.addActionListener(this); exit.addActionListener(this);

20

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库中国象棋人人对战(4)在线全文阅读。

中国象棋人人对战(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/374521.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: