




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上课程名称: JAVA课程设计 题 目: “网络象棋”游戏的设计与开发系 名: 信息工程系 专业班级: 软件工程 姓 名: 学 号: 指导教师: 2012年 6 月 18 日课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 信息工程系 设计题目:“网络象棋”游戏的设计与开发初始条件: 网络象棋,网络版的棋类游戏。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)使用JAVA开发一个网络版的象棋游戏。该游戏包括网络功能,棋盘功能和辅助功能。本系统使用JAVA SWING技术和事件处理机制进行棋盘界面的设计,开发和功能实现, 使用S
2、ocket网络编程和多线程技术进行多客户端之间的对战。系统总体架构如下:网络象棋网络管理棋盘功能辅助功能系统功能点说明如下:编号功能名功能描述1网络功能通过网络通信,实现多客户端对战2棋盘功能绘制棋盘绘制棋盘与棋子下棋功能点击棋子,可以走动下棋规则设计相应算法,控制不同棋子的走法3辅助功能悔棋通过记录走棋步骤,实现悔棋截屏关键步骤,实现截屏录制可以录制每一步下棋的视频4系统打包系统打包,制作安装程序设计报告撰写格式要求:一、课程设计说明书(或报告书)正文内容【设计题目】例如:“即时通”网络通信系统的设计与开发【开发环境】硬件环境:微机系列,内存在1G以上,软件环境:Microsoft Wind
3、ows XP【开发工具】 NetBeans IDE【完成时间】 2012.6 .4-2012.6.15【需求分析】分析阐述要实现的系统应具有什么样的功能。【系统总体设计方案】在明确了所要解决的问题后,很自然地就要提出自己解决问题的思路和方案。让读者了解方案的总体设计和关键技术。要阐述自己的设计方案,说明为什么要选择或设计这样的方案。具体包括:系统总的设计思路,体系结构, 总体架构, 功能模块图;各功能模块所要达到的设计目标的简单介绍;设计的数据字典(数据库、表的结构);使用的设计软硬件环境和开发技术和平台等。【系统详细设计】在这部分中,要将整个开发工作的内容进行详细的介绍。一般按照功能模块分成
4、几部分来介绍。每部分应包括文字叙述、界面图片、关键实现技术(操作或代码)等几个方面综合说明问题。【系统调试和测试】调试:介绍设计过程中遇到的问题和解决方法。测试:介绍如何测试系统,测试中发现的问题和解决方案。【结束语】这部分篇幅不大,对整个设计中做的工作、获得的成果、心得体会等做一个简单小结。【参考文献】罗列在设计过程中查阅的文献名称 注意:参考文献罗列的格式为 资料编号作者姓名文献或期刊名称出版社名称,文献的出版时间或期刊的期号例如:文献 1 吕凤翥,马皓. Java语言程序设计(第2版)M.北京:清华大学出版社,2010 期刊 2 石振国. 用JSP实现对Web数据库的访问J. 计算机应用
5、,2010(05):5-8.二、课程设计说明书(或报告书)正文的书写格式简介一、 正文标题层次 正文题序层次是文章结构的框架,一般采用社会通用的论文书写形式。即章条序码统一用阿拉伯数字表示,题序层次可以分为若干级,各级号码之间加小圆点,末尾一级的后面不加小圆点,层次分级一般不超过四级为宜,示例如下:第一级(章) 1 2 3 第二级(条)1.1 3.1 3.2 第三级(条).2 ..2 ..2 .2 二、表格 每个表格应有自己的表序与表题,表序与表题间空一格。例如:表1.1 X
6、XXX ,且表题与表序应写在表格的上方正中处。三、插图 插图图面要整齐、美观,插图应与正文呼应,不能脱节。每幅插图应有图序与图题,图序编号要连续,图序与图题间空一格且要放在插图下方居中处。四、公式 公式应另起一行写在稿纸的中央。时间安排:日期任务课程内容6.18-19棋盘界面的绘制Eclipse/NetBeans使用Swing技术6.19-20实现棋子的走动事件代理 6.20-21棋子规则实现Socket,Thread,JavaOOJAVA数据结构6.25辅助功能实现6.26-27网络通讯6.28系统打包 验收install4j使用 指 导 教 师 签 字: 2012 年 6 月 14 日系
7、主 任 签 字: 2012 年 6 月 15 日1 目标用JAVA开发一个象棋游戏。让我们熟悉JAVA基本事件处理,学会java面向对象的设计。以及java各种控件及图像用户的界面的设计使用,分别掌握基本工具继承抽象类 接口。输入输出,流程控制,开发环境,实现简单的功能设计,帮助熟练的掌握有关java的知识结构体系。通过实习掌握语言的语法结构,理解类和对象的概念,准确的使用各种数据类型,对面向对象中的继承和多态的概念要理解、会使用,在程序中提高代码的重用性,使设计的程序结构清晰、易于维护。2 软件开发环境与技术简介2.1 开发工具介绍EclipseEclipse 是一个开放源代码的、基于Jav
8、a的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西
9、都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+ 和 COBOL 等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。2.2 硬件环境1操作系统:Microsoft Windows XP。2内存:1G内存以上。2.3 软件环境开发工具选用Eclipse3 系统需求分析提供棋盘和棋子
10、;设定棋子的走棋规则;该哪方走棋时,旁边会有提示哪方走棋;可以悔棋; 判断胜负;4 系统总体设计4.1棋盘模板中国象棋是双方在有着9调竖线和10条横线的棋盘上对弈,竖线和横线的交叉称为棋点或对弈点。河界将棋盘分成两等份,每一边都有一块有9个点组成的九宫。4.2棋子模板利用一个二位数组,画出各个棋子。4.3棋子规则模板规定各个棋子的走法规则,使每个棋子都是在棋点上行走,而不是在方格中行走如棋子“将”,“帥”和“士”只能在九宫内移动,并且“将”和“帅”每一步只可以水平或垂直移动一个棋点;“士”只能在九宫内移动,并且它每一步只可以沿着对角线移动一个棋点;“象”必须一次沿着对角线方向走两个棋点,但它不
11、能过河也不能跳过或穿越障碍,即“象”不能别眼,“马”没一步只可以水平或垂直移动两个棋点,但必须按对角线向左或向右移动。中国象棋的“马”不能跳过障碍,即马不能别腿。“车”可以水平或垂直方向移动人一个无障碍的点。“炮”移动起来和车类似,但它必须跳过一个棋子来吃掉对方的一个棋子,被跳过的那个棋子称为桥或者屏风。“兵”每步只能向前移动一个棋子过河以后,它便增加了向左右移动的能力,并不允许向后移动。4.4悔棋模板当用户走错棋时,可以允许用户回到上一步走棋的状态,以实现悔棋的功能。5 系统详细设计5.1 棋盘的设计首先设计好画布的大小,以及标题,颜色之类的public Gui() this.add(c);
12、this.setTitle("中国象棋");this.setSize(600, 600);this.setResizable(false);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);this.c.addMouseListener(this.c); 再在设计好的画布上,画出线条,设计出棋盘,由于棋盘中间有所谓的“河”,所以并不能单纯的用两个for循环画出棋盘的格子,所以选择在中间断掉,空出河界,再在后面下方
13、继续利用fou循环画出棋盘的另外一方。这样画出来的只有上下两个部分for(int y=50;y<550;y+=50)g.drawLine(100, y,500, y);/画竖线线for(int x=100;x<=500;x+=50)g.drawLine(x,50,x,250);for(int x=100;x<=500;x+=50)g.drawLine(x,300,x,500); g.drawLine(100,250,100,300);g.drawLine(500,250,500,300);这只是单独的画出格子,由于“帥”和“士”所在的地方特殊,而且它们在一般情况下,也只能在九
14、宫格里面走动,而且“士”有斜着走的规则,所以又要当初画出斜线。 g.drawLine(250,50,350,150);g.drawLine(250,150,350,50);g.drawLine(250,400,350,500);g.drawLine(250,500,350,400);在中间的“河界”画上“楚河汉界”字样Font font0=new Font("方正舒体",Font.BOLD,40);g.setFont(font0);g.drawString("楚河", 175, 288);Font font1=new Font("方正舒体&qu
15、ot;,Font.BOLD,40);g.setFont(font1);g.drawString("漢界", 355, 288);5.2 棋子的设计设计思想,定义一个二维数组,数组的下标分别对应为棋盘里面的格子坐标,然后分别给定义的数组一个确切的值,不同的值对应不同的棋子,分配好“车”、“马”、“象”、“士”、“帥”、“炮”、“卒”。this.chessman00=1;this.chessman01=2;this.chessman02=3;this.chessman03=4;this.chessman04=5;this.chessman05=4;this.chessman06
16、=3;this.chessman07=2;this.chessman08=1;this.chessman21=6;this.chessman27=6;this.chessman30=7;this.chessman32=7;this.chessman34=7;this.chessman36=7;this.chessman38=7;/红方棋子this.chessman90=8;this.chessman91=9;this.chessman92=10;this.chessman93=11;this.chessman94=12;this.chessman95=11;this.chessman96=10
17、;this.chessman97=9;this.chessman98=8;this.chessman71=13;this.chessman77=13;this.chessman60=14;this.chessman62=14;this.chessman64=14;this.chessman66=14;this.chessman68=14;在已经分配好的棋子数组上,对各个对应棋子数组分别画出相应的棋子switch(this.chessmanrowcol) case 1:/黑方:车g.setColor(color.black);g.fillOval(x-20,y-20,40,40);g.setCo
18、lor(Color.white);g.setFont(font);g.drawString("车", x-16,y+10);break;case 2:/黑方:马g.setColor(color.black);g.fillOval(x-20,y-20,40,40);g.setColor(Color.white);g.setFont(font);g.drawString("马", x-16,y+10);break;case 3:/黑方:象g.setColor(color.black);g.fillOval(x-20,y-20,40,40);g.setColo
19、r(Color.white);g.setFont(font);g.drawString("象", x-16,y+10)break;case 4:/黑方:士g.setColor(color.black);g.fillOval(x-20,y-20,40,40);g.setColor(Color.white);g.setFont(font);g.drawString("士", x-16,y+10);break;case 5:/黑方:将g.setColor(color.black);g.fillOval(x-20,y-20,40,40);g.setColor(C
20、olor.white);g.setFont(font);g.drawString("将", x-16,y+10);break;case 6:/黑方:炮 g.setColor(color.black);g.fillOval(x-20,y-20,40,40);g.setColor(Color.white);g.setFont(font);g.drawString("炮", x-16,y+10);break;case 7:/黑方:卒 g.setColor(color.black); g.fillOval(x-20,y-20,40,40); g.setColor
21、(Color.white); g.setFont(font);g.drawString("卒", x-16,y+10);break;case 8:g.setColor(color.black);g.fillOval(x-20,y-20,40,40);g.setColor(Color.black);g.setColor(Color.red);g.setFont(font);g.drawString("車", x-16,y+10);break; case 9:g.setColor(color.black);g.fillOval(x-20,y-20,40,40
22、);g.setColor(Color.black);g.setColor(Color.red);g.setFont(font);g.drawString("馬", x-16,y+10); break;case 10:g.setColor(color.black);g.fillOval(x-20,y-20,40,40);g.setColor(Color.black);g.setColor(Color.red);g.setFont(font);g.drawString("相", x-16,y+10);break;case 11:g.setColor(colo
23、r.black);g.fillOval(x-20,y-20,40,40);g.setColor(Color.black);g.setColor(Color.red);g.setFont(font);g.drawString("仕", x-16,y+10);break;case 12:g.setColor(color.black);g.fillOval(x-20,y-20,40,40);g.setColor(Color.black);g.setColor(Color.red);g.setFont(font);g.drawString("帥", x-16,y
24、+10);break;case 13:g.setColor(color.black);g.fillOval(x-20,y-20,40,40);g.setColor(Color.black);g.setColor(Color.red);g.setFont(font);g.drawString("炮", x-16,y+10);break;case 14:g.setColor(color.black);g.fillOval(x-20,y-20,40,40);g.setColor(Color.black);g.setColor(Color.red);g.setFont(font);
25、g.drawString("兵", x-16,y+10);break; 5.3 各个棋子走法规则的设计 “车”的走法设计,车在象棋中威力最大,无论横线、竖线均可行走,只要无子阻拦,步数不受限制。因此,一车可以控制十七个点,故有“一车十子寒”之称。if(r2-r1>0) /向下走 for(int i=1;r1+i<r2;i+) if(this.chessmanr1+ic1!=0) j+; if(r1-r2>0) /向上走 for(int i=1;r1-i>r2;i+) if(this.chessmanr1-ic1!=0) j+; if(j=0&
26、&c1=c2) flag=true; if(c1-c2>0) /向左走 for(int i=1;c1-i>c2;i+) if(this.chessmanr1c1-i!=0) j+; if(c2-c1>0) /向右走 for(int i=1;c1+i<c2;i+) if(this.chessmanr1c1+i!=0) j+; if(this.chessmanr2c2<=7&&this.chessmanr2c2>0) flag=false; “炮”的走法设计。 if(r2-r1>0) /向下走 for(int i=1;r1+i<
27、;r2;i+) if(this.chessmanr1+ic1!=0) j+; if(r1-r2>0) /向上走 for(int i=1;r1-i>r2;i+) if(this.chessmanr1-ic1!=0) j+; if(j=0&&c1=c2&&this.chessmanr2c2=0) flag=true; if(j=1&&c1=c2&&this.chessmanr2c2>7) flag=true; if(c1-c2>0) /向左走 for(int i=1;c1-i>c2;i+) if(this
28、.chessmanr1c1-i!=0) j+; if(c2-c1>0) /向右走 for(int i=1;c1+i<c2;i+) if(this.chessmanr1c1+i!=0) j+; if(j=0&&r1=r2&&this.chessmanr2c2=0) flag=true; if(j=1&&r1=r2&&this.chessmanr2c2!=0) flag=true; if(this.chessmanr2c2<=7&&this.chessmanr2c2>0) flag=false;
29、 break; “马”的走法设计。马走动的方法是一直一斜,即先横着或直着走一格,然后再斜着走一个对角线,俗称“马走日”。马一次可走的选择点可以达到四周的八个点,故有“八面威风”之说。如果在要去的方向有别的棋子挡住,马就无法走过去,俗称“蹩马腿”。if(r1-r2=2&&c1-c2=1&&this.chessmanr1-1c1=0) /上左 flag=true; if(r1-r2=2&&c2-c1=1&&this.chessmanr1-1c1=0) /上右 flag=true; if(r2-r1=2&&c1-c2=1
30、&&this.chessmanr1+1c1=0) /下左 flag=true; if(r2-r1=2&&c2-c1=1&&this.chessmanr1+1c1=0) /下右 flag=true; if(r1-r2=1&&c1-c2=2&&this.chessmanr1c1-1=0) /左上 flag=true; if(r2-r1=1&&c1-c2=2&&this.chessmanr1c1-1=0) /左下 flag=true; if(r1-r2=1&&c2-c1=2
31、&&this.chessmanr1c1+1=0) /右上 flag=true; if(r2-r1=1&&c2-c1=2&&this.chessmanr1c1+1=0) /右下flag=true;if(this.chessmanr2c2<=7&&this.chessmanr2c2>0) flag=false; “象”的走法设计。相(象)的主要作用是防守,保护自己的帅(将)。它的走法是每次循对角线走两格,俗称“象走田”。相(象)的活动范围限于“河界”以内的本方阵地,不能过河,且如果它走的“田”字中央有一个棋子,就不能走,俗
32、称“塞象眼”。if(r1-r2=2&&c1-c2=2&&this.chessman(r1+r2)/2(c1+c2)/2=0) /左上 flag=true; if(r1-r2=2&&c2-c1=2&&this.chessman(r1+r2)/2(c1+c2)/2=0) /右上 flag=true; if(r2-r1=2&&c1-c2=2&&this.chessman(r1+r2)/2(c1+c2)/2=0) /左下 flag=true; if(r2-r1=2&&c2-c1=2&
33、&this.chessman(r1+r2)/2(c1+c2)/2=0) /右下 flag=true; if(r2=6) flag=false; if(t%2=0) flag=false; if(this.chessmanr2c2<=7&&this.chessmanr2c2>0) flag=false;“士”的走法设计。仕(士)是帥(将)的贴身保镖,它也只能在九宫内走动。它的行棋路径只能是九宫内的斜线。if(r2-r1=1&&c2-c1=1|r1-r2=1&&c1-c2=1|c1-c2=1&&r2-r1=1|c2
34、-c1=1&&r1-r2=1) flag=true; if (r2=3|c2=2|c2=6) flag=false; if(this.chessmanr2c2<=7&&this.chessmanr2c2>0) flag=false;“帥”的走法设计。帅和将是棋中的首脑,是双方竭力争夺的目标。它只能在“九宫”之内活动,可上可下,可左可右,每次走动只能按竖线或横线走动一格。帅与将不能在同一直线上直接对面,否则走方判负。if(r2-r1=1&&c1=c2|r1-r2=1&&c1=c2|c1-c2=1&&r1=
35、r2|c2-c1=1&&r1=r2) flag=true; if (r2=3|c2=2|c2=6) / if (r2>2|c2<3|c2>5) flag=false; if(r2-r1>0) /将对帅 for(int i=1;r1+i<r2;i+) if(this.chessmanr1+ic1!=0)j+; if(j=0&&c1=c2&&this.chessmanr2c2=12) flag=true; if(this.chessmanr2c2<=7&&this.chessmanr2c2>0
36、) flag=false; “卒”的走法设计。兵(卒)在未过河前,只能向前一步步走,过河以后,除不能后退外,允许左右移动,但也只能一次一步。if(r1=3|r1=4) if(r2-r1=1&&c1=c2) flag=true; else if(r2-r1=1&&c1=c2|c1-c2=1&&r1=r2|c2-c1=1&&r1=r2) flag=true; if(this.chessmanr2c2<=7&&this.chessmanr2c2>0) flag=false;每个棋子都有其特定的范围,当鼠标点击
37、在其范围内,触及鼠标点击事件,棋子便能走动,当鼠标点击其他区域时,对应无反应。public void mouseClicked(MouseEvent e) System.out.println(e.getX() + "t" + e.getY() + "t" + e.getButton(); int a = (e.getY() - 50) % 50; int b = (e.getX() - 50) % 50; int row = (e.getY() - 50) / 50; int col = (e.getX() - 50) / 50; this.repai
38、nt(); /重画棋盘 t-; else return; if (e.getX() < 80 | e.getX() >520 | e.getY() < 30 | e.getY() > 520) return; if (e.getY() > 70 && e.getY() < 80) | (e.getY() > 120 && e.getY() < 130) | (e.getY() > 170 && e.getY() <180) | (e.getY() > 220 &&
39、e.getY() < 230) | (e.getY() > 270 && e.getY() <280) | (e.getY() > 320 && e.getY() < 330) | (e.getY() > 370 && e.getY() < 380) | (e.getY() > 420 && e.getY() < 430) | e.getY() > 470 && e.getY() <480) return; if (e.getX() > 120
40、 && e.getX() < 130) | (e.getX() > 170 && e.getX() <180) | (e.getX() > 220 && e.getX() < 230) | (e.getX() > 270 && e.getX() <280) | (e.getX() > 320 && e.getX() < 330) | (e.getX() > 370 && e.getX() < 380) | (e.getX() >
41、 420 && e.getX() < 430) | (e.getX() > 470 && e.getX() < 480) | (e.getX() > 520 && e.getX() < 530) return; for (int i = 0; i <= 9; i+) for (int j = 0; j <= 8; j+) if (i * 50 + 80 < e.getX() && e.getX() < i * 50 + 120) col = i; /列 if (j *50 +
42、30 < e.getY() && e.getY() < j* 50 + 70) row = j; /行 System.out.println(row + "t" + col + "t"); if (this.isSelected = false) /没有选中子 if (this.chessmanrowcol = 0) return; /选中子,记录信息 this.r = row; this.c = col; this.isSelected = true; else/走子悔棋功能的设计先在画布上设计出一块悔棋的区域,当点击该区域
43、时,象棋便回到上一步象棋所走的状态,从而实现悔棋。该区域代码要放在鼠标点击事件,点击该区域时,便实现悔棋功能。 public void mouseClicked(MouseEvent e)boolean flag = this.go(this.r, this.c, row, col); if (flag = true) this.undot0=this.r; this.undot1=this.c; this.undot2=this.chessmanthis.rthis.c; this.undot3=row; this.undot4=col; this.undot5=this.chessmanr
44、owcol; int temp = this.chessmanthis.rthis.c; this.chessmanthis.rthis.c = 0; this.chessmanrowcol = temp; this.repaint();/重画棋盘 t+;5.4将军的遍历每触击一下鼠标点击事件,就会对棋盘里面的将军是否存在进行遍历,假如发现一方将军消失,则会弹出对话框,提醒对方赢棋,里面的内容为对方赢的字样for(int m=0;m<10;m+) for(int n=0;n<9;n+) if(this.chessmanmn=5|this.chessmanmn=12) w+; y=m
45、; z=n; if(w=1&&this.chessmanyz=5) JOptionPane.showMessageDialog(null, "红方输", "中国象棋", JOptionPane.INFORMATION_MESSAGE, null); if(w=1&&this.chessmanyz=12)JOptionPane.showMessageDialog(null, "白方输", "中国象棋", JOptionPane.INFORMATION_MESSAGE, null); 6
46、 系统测试以及运行结果设计出的象棋基本能按照中国的象棋的规则走法来运行,先走的一方为红方,每该哪方走的时候,棋盘的左边都有字样提醒该方下棋。该象棋还拥有悔棋的功能,以帮助用户每当不小心走错棋时,可帮助用户回到上一步。以实现悔棋的效果。7.总结设计过程及答辩回答问题记载:(至少三个问题)1刚刚开始设计出象棋,红(白)方可以随意走多少步而没有走子限制。如何实现红白两方是轮流走的?以及棋盘旁边是如何提醒该哪方走?答:首先定义一个全局变量t,当无论红白两方走动一步时,变量t都会自增加1。根据这样的变化,我们可以这么设计,当t为偶数时,我们规定红方走,当t为奇数时,我们规定白方走,所以我们可以在红方的棋
47、子后面加上这样的一条语句 if(t%2=0) flag=false;白方棋子的后面加上if(t%2=1) flag=false;这样便可实现棋子走动是两方轮流走。同理,当t为偶数时,我们在画布上显示红方字样,提醒该红方走。当t为奇数时,画布上显示白方字样,提醒白方走。2.如何实现当一方吃吃掉另外一方的将军,游戏会弹出一个对话框,提醒哪方胜利?答:在鼠标点击事件中,每当完成一个鼠标点击事件,我们都来对棋盘上剩下的子进行遍历,主要是判断两方的将军这个棋子是否存在,当一方的的将军被吃掉时,很显然可以遍历出该方的将军在棋盘上消失,所以弹出对话框提醒另外一方胜利。如何在棋盘中对将军的遍历,通过两个for
48、循环。for(int m=0;m<10;m+) for(int n=0;n<9;n+) if(this.chessmanmn=5|this.chessmanmn=12) w+;y=m; z=n;3.如何实现悔棋功能?答:每当走一步棋之前,我们把该状态的棋子状态储存起来,包括起始状态。每当触击鼠标点击事件里面的悔棋时,触发悔棋功能,把chessman数组恢复到走棋之前的状态,再重画棋盘。这样便可实现了悔棋功能。指导教师评语: 签名: 2012 年 6 月 日附录:程序核心源代码import javax.swing.JButton;import javax.swing.JFrame;public class Gui extends JFrame private JButton ok=new JButton("确定");private MyCanvas c=new MyCanvas();public Gui()this.add(c);this.setTitle("中国象棋");this.setSize(600, 600);this.setResizable(false);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CIMA 0028-2021手持式数字多用表检验规范
- T/CIMA 0021-2020谐波有功电能表检验装置
- T/CIIA 017-2022科学数据安全标准体系
- T/CHTS 20025-2022公路桥梁单元式工字形钢梳齿型伸缩装置
- T/CHINABICYCLE 1-2018电动自行车集中充电设施设备技术规范
- T/CHES 43-2020水利水电工程白蚁实时自动化监测预警系统技术规范
- T/CHC 1004.3-2023植物基食品第3部分:肉制品
- T/CGA 42-2023地下黄金矿山岩石力学数据采集技术规范
- T/CECS 10302-2023抗流挂聚氨酯防水涂料
- T/CECS 10295-2023建筑机器人地面清洁机器人
- GB/T 3277-1991花纹钢板
- 新编简明英语语言学教程 第二版 戴炜栋10 Language Acquisition课件
- 部编版六年级语文下册《送元二使安西》课件
- 玻璃钢化粪池施工方案
- msp430f6638实验指导书教学开发系统
- 桥梁行洪论证的计算与注意要点
- 讲师个人简介
- 毛坯交付标准提示方案
- 现代写作教程全套课件
- 工程造价毕业设计
- 自喷漆(环氧乙烷)化学品安全技术说明书(MSDS)
评论
0/150
提交评论