- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学号
《》
课程设计报告
象棋游戏 专业: 计算机科学与技术 班级: 13级1班 姓名: 史杨佳 指导教师: 成绩:
计算机与信息工程系
2015年4月26日
目录
1设计内容 1
1.1设计要求 1
1.2 设计任务 1
2原理及分析 1
3 设计过程或程序代码 2
4 设计结果与分析 16
5 小结 17
致谢 17
参考文献 18
附录1:源程序核心代码 19
1设计内容
1.1设计要求
学习利用面向对象语言(java)对实际问题中国象棋游戏进行课程设计,利用软件工程中过程思想进行系统分析和设计。完成结构清晰、风格良好、数据结构适当的设计程序,提高解决综合性实际问题的能力。
提供棋盘和棋子;
设定棋子的走棋规则;
该哪方走棋时,旁边会有提示哪方走棋;
(4)可以悔棋;
(5)判断胜负;
1.2 设计任务
(1)用JAVA开发一个象棋游戏。让我们熟悉JAVA基本事件处理,学会java面向对象的设计以及java各种控件及图像用户的界面的设计使用,分别掌握基本工具继承抽象类 ,接口,输入输出,流程控制,开发环境,实现简单的功能设计,帮助熟练的掌握有关java的知识结构体系。
(2)通过实习掌握语言的语法结构,理解类和对象的概念,准确的使用各种数据类型,对面向对象中的继承和多态的概念要理解、会使用,在程序中提高代码的重用性,使设计的程序结构清晰、易于维护。
2原理及分析
(1)中国象棋是双方在有着9调竖线和10条横线的棋盘上对弈,竖线和横线的交叉称为棋点或对弈点。河界将棋盘分成两等份,每一边都有一块有9个点组成的九宫。
(2)规定各个棋子的走法规则,使每个棋子都是在棋点上行走,而不是在方格中行走,如棋子“将”,“帥”和“士”只能在九宫内移动,并且“将”和“帅”每一步只可以水平或垂直移动一个棋点;“士”只能在九宫内移动,并且它每一步只可以沿着对角线移动一个棋点;“象”必须一次沿着对角线方向走两个棋点,但它不能过河也不能跳过或穿越障碍,即“象”不能别眼,“马”没一步只可以水平或垂直移动两个棋点,但必须按对角线向左或向右移动。中国象棋的“马”不能跳过障碍,即马不能别腿。“车”可以水平或垂直方向移动人一个无障碍的点。“炮”移动起来和车类似,但它必须跳过一个棋子来吃掉对方的一个棋子,被跳过的那个棋子称为桥或者屏风。“兵”每步只能向前移动一个棋子过河以后,它便增加了向左右移动的能力,并不允许向后移动。
(3)当用户走错棋时,可以允许用户回到上一步走棋的状态,以实现悔棋的功能。
3 设计过程或程序代码
(1)添加棋子方法
public void drawChessMan(){
//流程控制
int i,k;
//图标
Icon in;
//黑色棋子
//车
in = new ImageIcon(image\\黑车.GIF);
for (i=0,k=24;i2;i++,k+=456){
play[i] = new JLabel(in);
play[i].setBounds(k,56,55,55);
play[i].setName(车1);
}
//马
in = new ImageIcon(image\\黑马.GIF);
for (i=4,k=81;i6;i++,k+=342){
play[i] = new JLabel(in);
play[i].setBounds(k,56,55,55);
play[i].setName(马1);
}
//相
in = new ImageIcon(image\\黑象.GIF);
for (i=8,k=138;i10;i++,k+=228){
play[i] = new JLabel(in);
play[i].setBounds(k,56,55,55);
play[i].setName(象1);
}
//士
in = new ImageIcon(image\\黑士.GIF);
for (i=12,k=195;i14;i++,k+=114){
play[i] = new JLabel(in);
play[i].setBounds(k,56,55,55);
play[i].setName(士1);
}
//卒
in = new ImageIcon(image\\黑卒.GIF);
for (i=16,k=24;i21;i++,k+=114){
play[i] = new JLabel(in);
play[i].set
文档评论(0)