版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南 开 大 学中文题目: 五子棋游戏报告 外文题目: The Report of Gobang 学 号:08990167 08990171姓 名: 吴凡 武泽伟年 级: 08级专 业: 影视动画系 别: 计算机科学系学 院: 滨海学院指导教师: 刘嘉新完成日期: 2010 1 5关于论文声明本人郑重声明:所呈交的论文,是本人在指导教师指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文的研究成果不包含任何他人创作的、已公开发表或没有公开发表的作品内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本论文原创性声明的法律责任由本人承担。 论文作者签名
2、:吴凡 武泽伟2010年 1月 5日摘 要此报告主要探讨的是Java语言的具体实现,其目的是将这一学期所学到的Java知识运用到具体项目上,通过刘嘉新老师教授的知识加以运用做出了这个简单的五子棋的小游戏AbstractThis reports major data is The language of java and how to create .The poject ismade successfully Because we are use the knowledge of java in this term. This is our aim .And we are use the kn
3、owledge that teacher liu teached . The simple game of gobang also is made successfully.目 录第一章 引言1.1设计目的及意义:本次研究的目的是为了实践使用java语言编程并检验一个学期以来学习java语言的成果,通过编写一个简单的五子棋游戏实践,检验自己在学习java语言的过程中的特点及不足,更好的熟练掌握java语言的特点并及时反省和提高自己的知识和技术。1.2研究目标:该五子棋游戏应主要包括下述方面: 1.初始化界面时棋盘的规格; 2.响应鼠标点击并在相应位置画出棋子; 3.有一定的智能(可以判断胜负)
4、; 4.利用java语言中的panel放置棋盘显示棋子(注:其内包含鼠标响应); 5.尽可能实现网络对战功能。注:1.检验java语言的简单画图(具体为画线)操作; 2.检验响应鼠标事件并检验简单画图(具体为画填充圆); 3.检验处理具体问题的能力以及检查不同的编程方法和想法; 4.检验视图功能的实现的具体掌握情况; 5.检验使用java访问网络并进行操作的能力。1.3环境介绍:1.3.1计算机介绍:早期计算机公元前5世纪,中国人发明了算盘,广泛应用于商业贸易中,算盘被认为是最早的计算机,并一直使用至今。算盘在某些方面的运算能力要超过目前的计算机,算盘的方面体现了中国人民的智慧。直到17世纪,
5、计算设备才有了第二次重要的进步。1642年,法国人Blaise Pascal(1623-1662)发明了自动进位加法器,称为Pascalene。1694年,德国数学家Gottfried Wilhemvon Leibniz(1646-1716)改进了Pascaline,使之可以计算乘法。后来,法国人Charles Xavier Thomas de Colmar发明了可以进行四则运算的计算器。现代计算机的真正起源来自英国数学教授Charles Babbage。Charles Babbage发现通常的计算设备中有许多错误,在剑桥学习时,他认为可以利用蒸汽机进行运算。起先他设计差分机用于计算导航表,后
6、来,他发现差分机只是专门用途的机器,于是放弃了原来的研究,开始设计包含现代计算机基本组成部分的分析机。(Analytical Engine)Babbage的蒸汽动力计算机虽然最终没有完成,以今天的标准看也是非常原始的,然而,它勾画出现代通用计算机的基本功能部分,在概念上是一个突破。在接下来的若干年中,许多工程师在另一些方面取得了重要的进步,美国人Herman Hollerith(1860-1929),根据提花织布机的原理发明了穿孔片计算机,并带入商业领域建立公司。现代计算机发展历程第一代电子管计算机 (1946-1957) 1946年2月15日,标志现代计算机诞生的ENIAC(Electron
7、ic Numerical Integrator and Computer)在费城公诸于世。ENIAC代表了计算机发展史上的里程碑,它通过不同部分之间的重新接线编程,还拥有并行计算能力。ENIAC由美国政府和宾夕法尼亚大学合作开发,使用了18000个电子管,70000个电阻器,有5百万个焊接点,耗电160千瓦,其运算速度为每秒5000次。 第一代计算机的特点是操作指令是为特定任务而编制的,每种机器有各自不同的机器语言,功能受到限制,速度也慢。另一个明显特征是使用真空电子管和磁鼓储存数据 . 第二代晶体管计算机 (1957-1964) 1948年,晶体管发明代替了体积庞大电子管,电子设备的体积不断
8、减小。1956年,晶体管在计算机中使用,晶体管和磁芯存储器导致了第二代计算机的产生。第二代计算机体积小、速度快、功耗低、性能更稳定。1960年,出现了一些成功地用在商业领域、大学和政府部门的第二代计算机。第二代计算机用晶体管代替电子管,还有现代计算机的一些部件:打印机、磁带、磁盘、内存、操作系统等。计算机中存储的程序使得计算机有很好的适应性,可以更有效地用于商业用途。在这一时期出现了更高级的COBOL和FORTRAN等语言,使计算机编程更容易。新的职业(程序员、分析员和计算机系统专家)和整个软件产业由此诞生。 第三代集成电路计算机 (1964-1972) 1958年德州仪器的工程师Jack K
9、ilby发明了集成电路(IC),将三种电子元件结合到一片小小的硅片上。更多的元件集成到单一的半导体芯片上,计算机变得更小,功耗更低,速度更快。这一时期的发展还包括使用了操作系统,使得计算机在中心程序的控制协调下可以同时运行许多不同的程序。 第四代大规模集成电路计算机 (1972-现在) 大规模集成电路 (LSI) 可以在一个芯片上容纳几百个元件。到了 80 年代,超大规模集成电路 (VLSI) 在芯片上容纳了几十万个元件,后来的 (ULSI) 将数字扩充到百万级。可以在硬币大小的芯片上容纳如此数量的元件使得计算机的体积和价格不断下降,而功能和可靠性不断增强。 70 年代中期,计算机制造商开始将
10、计算机带给普通消费者,这时的小型机带有友好界面的软件包,供非专业人员使用的程序和最受欢迎的字处理和电子表格程序。 1981 年, IBM 推出个人计算机 (PC) 用于家庭、办公室和学校。 80 年代个人计算机的竞争使得价格不断下跌,微机的拥有量不断增加,计算机继续缩小体积。与 IBM PC 竞争的 Apple Macintosh 系列于 1984 年推出, Macintosh 提供了友好的图形界面,用户可以用鼠标方便地操作。 现代计算机发展史纪年1666年,在英国Samuel Morland发明了一部可以计算加数及减数的机械计数机。1673年, Gottfried Leibniz 制造了一部
11、踏式(stepped)圆柱形转轮的计数机,叫“Stepped Reckoner”,这部计算器可以把重复的数字相乘,并自动地加入加数器里。1694年,德国数学家,Gottfried Leibniz ,把巴斯卡的Pascalene 改良,制造了一部可以计算乘数的机器,它仍然是用齿轮及刻度盘操作。1773年, Philipp-Matthaus 制造及卖出了少量精确至12位的计算机器。1775年,The third Earl of Stanhope 发明了一部与Leibniz相似的乘法计算器。1786年,J.H.Mueller 设计了一部差分机,可惜没有拨款去制造。1801年, Joseph-Mari
12、e Jacquard 的织布机是用连接按序的打孔卡控制编织的样式。1854年,George Boole 出版 An Investigation of the Laws of Thought”,是讲述符号及逻辑理由,它后来成为计算机设计的基本概念。 1858年,一条电报线第一次跨越大西洋,并且提供了几日的服务。1861年,一条跨越大陆的电报线把大西洋和太平洋沿岸连接起来。1876年,Alexander Graham Bell 发明了电话并取得专利权。1876至1878年,Baron Kelvin 制造了一部泛音分析机及潮汐预测机。 1882年,William S. Burroughs 辞去在银行
13、文员的工作,并专注于加数器的发明。 1889年,Herman Hollerith 的电动制表机在比赛中有出色的表现,并被用于 1890 中的人口调查。Herman Hollerith 采用了Jacquard 织布机的概念用来计算,他用咭贮存资料,然后注入机器内编译结果。这机器使本来需要十年时间才能得到的人口调查结果,在短短六星期内做到。1893年,第一部四功能计算器被发明。 1895年,Guglielmo Marconi 传送广播讯号。 1896年,Hollerith 成立制表机器公司(Tabulating Machine Company)。 1901年,打孔键出现,之后的半个世纪只有很少的改
14、变。 1904年,John A.Fleming 取得真空二极管的专利权,为无线电通讯建立基础。 1906年,Lee de Foredt 加了一个第三活门在Felming 的二极管, 创制了三电极真空管。 1907年,唱片音乐在纽约组成第一间正式的电台。 1908年,英国科学家 Campbell Swinton 述了电子扫描方法及预示用阴极射线管制造电视。 1911年,Hollerith 的表机公司与其它两间公司合并,组成 Computer Tabulating Recording Company (C-T-R),制表及录制公司。但在1924年,改名为International Business
15、 Machine Corporation (IBM)。 1911年,荷兰物理学家 Kamerlingh Onnes 在 Leiden Unversity 发现超导电。 1931年,Vannever Bush 发明了一部可以解决差分程序的计数机,这机器可以解决一些令数学家,科学家头痛的复杂差分程序。 1935年,IBM (International Business Machine Corporation) 引入 IBM 601”,它是一部有算术部件及可在1秒钟内计算乘数的穿孔咭机器。 它对科学及商业的计算起很大的作用。总共制造了1500 部。 1937年,Alan Turing 想出了一个 通
16、用机器(Universal Machine)” 的概念,可以执行任何的算法,形成了一个可计算(computability)”的基本概念。Turing 的概念比其它同类型的发明为好,因为他用了符号处理(symbol processing) 的概念。 1939年11月,John Vincent Atannsoff 与 John Berry 制造了一部16位加数器。它是第一部用真空管计算的机器。 1939年,Zuse 与 Schreyer 开鈶制造了V2”后来叫Z2,这机器沿用 Z1的机械贮存器,加上一个用断电器逻辑(Relay Logic)的新算术部件。但当 Zuse完成草稿后,这计划被中断一年。
17、 1939-40年,Schreyer 完成了用真空管的10位加数器,以及用氖气灯(霓虹灯)的存贮器。 1940年1月,在 Bell Labs, Samuel Williams 及Stibitz 完成了一部可以计算复杂数字的机器, 叫“复杂数字计数机(Complex Number Calculator)”,后来改称为“断电器计数机型号I (Model I Relay Calculator)” 。它用电话开关部份做逻辑部件:145个断电器,10个横杠开关。数字用“Plus 3BCD”代表。在同年9月,电传打字 etype 安装在一个数学会议里,由New Hampshire 连接去纽约。 1940年
18、, Zuse 终于完成Z2,它比运作得更好,但不是太可靠。 1941年夏季,Atanasoff及Berry完成了一部专为解决联立线性方程系统(system of simultaneous linear equations) 的计算器,后来叫做ABC (Atanasoff-Berry Computer)”,它有60个50位的存贮器,以电容器(capacitories)的形式安装在2个旋转的鼓上,时钟速度是60Hz。 1941年2月,Zuse 完成V3”(后来叫Z3),是第一部操作中可编写程序的计数机。它亦是用浮点操作,有7个位的指数,14位的尾数,以及一个正负号。存贮器可以贮存64个字,所以需要
19、1400个断电器。它有多于1200个的算术及控制部件,而程序编写,输入,输出的与 Z1 相同。 1943年1月 Howard H. Aiken完成ASCC Mark I”(自动按序控制计算器 Mark I ,Automatic Sequence - Controlled Calculator Mark I),亦称“Haward Mark I”。这部机器有51尺长,重5顿,由750,000部份合并而成。它有72个累加器,每一个有自己的算术部件,及23位数的寄存器。 1943年12月, Tommy Flowers与他的队伍,完成第一部“Colossus”,它有2400个真空管用作逻辑部件,5 个纸
20、带圈读取器(reader),每个可以每秒工作5000字符。 1943年,由 John Brainered领导,ENIAC开始研究。而 John Mauchly 及J. Presper Eckert负责这计划的执行。 1946v第一台电子数字积分计算器(ENIAC)在美国建造完成。 1947年,美国计算器协会(ACM)成立。 1947年,英国完成了第一个存储真空管O 1948贝尔电话公司研制成半导体。1949年,英国建造完成延迟存储电子自动计算器(EDSAC) 1950年,自动化一词第一次用于汽车工业。1951年,美国麻省理工学院制成磁心 1952年,第一台储存程序计算器诞生。 1952年,第一
21、台大型计算机系统IBM701宣布建造完成。 1952年,第一台符号语言翻译机发明成功。 1954年,第一台半导体计算机由贝尔电话公司研制成功。 1954年,第一台通用数据处理机IBM650诞生。 1955年,第一台利用磁心的大型计算机IBM705建造完成。 1956年,IBM公司推出科学704计算机。 1957年,程序设计语言FORTRAN问世。 1959年,第一台小型科学计算器IBM620研制成功。 1960年,数据处理系统IBM1401研制成功。 1961年,程序设计语言COBOL问世。 1961年,第一台分系统计算机由麻省理工学院设计完成。1963年,BASIC语言问世。 1964年,第
22、三代计算机IBM360系列制成。 1965年,美国数字设备公司推出第一台小型机PDP-8。 1969年,IBM公司研制成功90列卡片机和系统-3计算机系统。 1970年,IBM系统1370计算机系列制成。 1971年,伊利诺大学设计完成伊利阿克IV巨型计算机。 1971年,第一台微处理机4004由英特尔公司研制成功。 1972年,微处理机基片开始大量生产销售。 1973年,第一片软磁盘由IBM公司研制成功。 1975年,ATARI-8800微电脑问世。 1977年,柯莫道尔公司宣称全组合微电脑PET-2001研制成功。 1977年,TRS-80微电脑诞生。 1977年,苹果-II型微电脑诞生。
23、 1978年,超大规模集成电路开始应用。 1978年,磁泡存储器第二次用于商用计算机。 1979年,夏普公司宣布制成第一台手提式微电脑。 1982年,微电脑开始普及,大量进入学校和家庭。 1984年,日本计算机产业着手研制第五代计算机-具有人工智能的计算机。1.3 Java语言介绍:(资料来自于网络)Java,是一种可以编写跨平台应用软件的面向对象的程序设计语言,由Sun(太阳微电子,Sun Microsystems)公司的James Gosling等人于1990年代初开发。它最初被命名为Oak,作为一种小家用电器的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由
24、于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近夭折之时,随着Internet的发展,Sun看到了 Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月以Java的名称正式发布了。Java伴随着Internet的迅猛发展而发展,逐渐成为重要的Internet编程语言。Java编程语言的风格十分接近C+语言。Java继承了C+语言面向对象技术的核心,舍弃了C+语言中的指针(以引用取代)、运算符重载、多重继承(以接口取代)等成分,增加了自动垃圾收集功能用于回收不再被引用的对象所占据的内存空间。在J2SE1.5版本中Java又引入了泛型编程、类型安全的枚
25、举、不定长参数和自动装/拆箱等语言特性。Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,这同时也在一定程度上降低了Java程序的运行效率。Sun公司对Java编程语言的解释是:Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java平台是基于Java语言的平台。这样的平台目前非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。Java的历史:1995年5月23日,Jav
26、a语言诞生1996年1月,第一个JDK-JDK1.0诞生1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术1996年9月,约8.3万个网页应用了JAVA技术来制作1997年2月18日,JDK1.1发布1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录1997年9月,JavaDeveloperConnection社区成员超过十万1998年2月,JDK1.1被下载超过2,000,000次1998年12月8日,JAVA2企业平台J2EE发布1999年6月,SUN公司发布Java的三个版本:标准版、企业版和微型版(J2SE、J2EE、J2
27、ME)2000年5月8日,JDK1.3发布2000年5月29日,JDK1.4发布2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机2001年9月24日,J2EE1.3发布1.4研究主要目的:利用java语言编写的五子棋游戏应具有以下几个功能:1.运行程序后即刻出现棋盘并可以开始下棋。2.可以实现简单的图形立体效果。3.先手为黑棋后手为白棋。4.可以正确判断出局面的胜负情况并适时报出结果终止棋局给出玩家选择。5.带有智能单击效果。1.5研究方法: 我们小组在指导老师刘嘉新老师的帮助下,和通过一学期对Java的学习和认识,不断的完善这个游戏程序通过知识的不断更新对此程序
28、的不断更进从而使这个棋子越来越来人性化。第二章 研究要点与核心问题介绍2.1要点介绍:1. 数据类;2. 试图类;3. 控制类;2.2指导老师引导方向:1. 简单图像立体效果的实现方面由指导老师刘嘉新辅导理由错位画出灰色填充圆实现视觉误差从而达到目的;2. 实现简单智能(即判断胜负情况)时利用数组的概念将棋盘上的各个可能落子点看成不同的数据并用四种不同的方法将横向/竖向/左斜向/右斜向四个方向上的点抠出并利用不同的自定义函数予以计算判断是否出现一方胜利进而给出结果;3. 实现利用可视化编程方法实现用鼠标点击来下棋;注:1.具体为使用视觉误差法在落子时先画一个略微错位的灰色填充圆与后画的黑白填充
29、圆一起成为了有立体效果的棋子;2. 使用解析几何是常用的方法将具体的物体问题化成一只的数学问题并给予解决根据此方法将棋盘的四种方向上的格子看成不同的数组将棋盘上的不同的填充圆(包括空白)看成数组中的数据然后分别用计数累加的方法找出每次判断时是否有胜负并进行后续操作如此既实现了简单的智能;3. 使用可视化编程方法可以设置panel中的事件添加一个鼠标监听和响应便可以实现用鼠标点击的方法来下棋。2.3具体代码显示:2.3.1数据类: 1.创建棋盘存储空间public class ChessModel private Point panel;/*棋盘大小*/public static final i
30、nt WIDTH = 19;public static final int HEIGHT = 19;/* * 棋子数字表示 */public static final int WHITE = -1;public static final int BLACK = 1;public static final int SPACE = 0;private LinkedList history = new LinkedList();/* * 构造棋盘数组 */private int curRow;private int curCol;/* * 棋盘数组的构造函数 */public ChessModel(
31、)panel = new PointHEIGHTWIDTH;2.落子和反回当前位置棋子信息/* * 围棋盘数组复值(落子) * param row行数 * param col列数 * param Qizi所赋值(所下的棋子) */public boolean set(int row, int col,int color)if(row=0&row=0&col=0&row=0&col 0)for (i = 1; curCol - i = 0; i+) Point temp = panelcurRowcurCol - i;if (temp = null | temp.getColor() != co
32、lor) break;count = count + (i - 1);if(curCol WIDTH-1)for (i = 1; curCol + i = 5) return color;count = 0;if(curRow 0)for (i = 1; curRow - i = 0; i+) Point temp = panelcurRow - icurCol;if (temp = null | temp.getColor() != color) break;count = count + (i - 1);if(curRow HEIGHT - 1)for (i = 1; curRow + i
33、 = 5) return color;count = 0;if(curCol 0 & curRow = 0 & curCol - i = 0; i+) Point temp = panelcurRow + icurCol - i;if (temp = null | temp.getColor() != color) break;count = count + (i - 1);if(curRow 0 & curCol WIDTH - 1 )for (i = 1; curRow + i HEIGHT & curCol + i = 5) return color;count = 0;if(curRo
34、w 0 & curCol 0)for (i = 1; curRow - i = 0 & curCol - i = 0; i+) Point temp = panelcurRow - icurCol - i;if (temp = null | temp.getColor() != color) break;count = count + (i - 1);if(curRow HEIGHT - 1 & curCol WIDTH - 1)for (i = 1; curRow + i HEIGHT & curCol + i = 5) return color;return SPACE;2.3.2视图类:
35、1.棋盘布局类public class ChessPanel extends JPanel /* * */private static final long serialVersionUID = 3310279575637839512L;/* * 定义棋盘起始位置 */int x1 = 20;int y1 = 20;/* * 定义棋盘间距 */int unit = 30;int gap = 10;ChessModel cm; / jve:decl-index=0:Five ctrl = null; / jve:decl-index=0:public void setCtrl(Five f) c
36、trl = f;/ jve:decl-index=0:/* * This is the default constructor */public ChessPanel() super();initialize();/* * 棋盘设置 * */private void initialize() this.setSize(new Dimension(265, 168);this.setBackground(new Color(204, 102, 0);/* * 响应鼠标点击事件,根据鼠标的点击下棋。 */this.addMouseListener(new java.awt.event.MouseA
37、dapter() public void mousePressed(java.awt.event.MouseEvent e) if(e.getButton() = MouseEvent.BUTTON1)int x = e.getX();int y = e.getY();computeRowCol(x, y);elsepopupMenu(e););/* * 鼠标右键点击 * param e */protected void popupMenu(MouseEvent e) JPopupMenu pm = new JPopupMenu();JMenuItem item = new JMenuItem
38、(悔棋);item.addActionListener(new ActionListener()public void actionPerformed(ActionEvent arg0) / TODO 自动生成方法存根JOptionPane.showMessageDialog(null, 落地生根,不能悔棋啊!););pm.add(item);pm.show(Component) e.getSource(), e.getX(), e.getY();/* * 判断输赢并给出信息 * param x * param y */private void computeRowCol(int x, int
39、 y) int row = (y - y1) / unit;int col = (x - x1) / unit;int temp = (y - y1) % unit;if (temp unit / 2)row+;temp = (x - x1) % unit;if (temp unit / 2) col+;if (ctrl != null) ctrl.putChess(row, col);if(cm.whoWin()=1)JOptionPane.showMessageDialog(this,恭喜!你赢啦!);JOptionPane.showMessageDialog(null,黑棋胜!);if(
40、cm.whoWin()=-1)JOptionPane.showMessageDialog(this,恭喜!你赢啦!);JOptionPane.showMessageDialog(null,白棋胜!);/* * 随时监听鼠标位置 */public void compute()int width = this.getWidth();int height = this.getHeight();int min = widthheight?width:height;min = min - gap * 2;x1 = (width - min) /2+gap;y1 = (height - min ) /2+
41、gap;unit = min / (ChessModel.WIDTH - 1);repaint();protected void paintComponent(Graphics g) / TODO 自动生成方法存根super.paintComponent(g);drawChessPanel(g);drawChess(g);private void drawChess(Graphics g) if (cm != null) for (int row = 0; row ChessModel.HEIGHT; row+) for (int col = 0; col ChessModel.WIDTH;
42、col+) int p = cm.get(row, col);if (p != 0) if (p = ChessModel.BLACK) drawBlackChess( row,col, g); else if (p = ChessModel.WHITE) drawWhiteChess(row, col, g);public void setChessModel(ChessModel m) cm = m;/* * 画黑棋子 * param row * param col * param g */private void drawBlackChess(int row, int col, Grap
43、hics g) g.setColor(Color.gray);g.fillOval(x1 + (col) * unit - unit / 2 + 5, y1 + (row) * unit - unit/ 2 + 5, unit, unit);g.setColor(Color.BLACK);g.fillOval(x1 + (col) * unit - unit / 2, y1 + (row) * unit - unit / 2,unit, unit);g.setColor(Color.white);g.fillOval(x1 + (col) * unit - unit / 2 + 10, y1
44、+ (row) * unit - unit/ 2 + 10, 3, 3);/* * 画白棋子 * param row * param col * param g */private void drawWhiteChess(int row, int col, Graphics g) g.setColor(Color.gray);g.fillOval(x1 + (col) * unit - unit / 2 + 5, y1 + (row) * unit - unit/ 2 + 5, unit, unit);g.setColor(new Color(230,230,230);g.fillOval(x
45、1 + (col) * unit - unit / 2, y1 + (row) * unit - unit / 2,unit, unit);g.setColor(Color.white);g.fillOval(x1 + (col) * unit - unit / 2 + 10, y1 + (row) * unit - unit/ 2 + 10, 4, 4);/* * 画棋盘 * param row * param col * param g */private void drawChessPanel(Graphics g) for (int i = 0; i ChessModel.HEIGHT
46、; i+) g.setColor(Color.green); g.drawLine(x1, y1 + unit * i, x1 + unit * (ChessModel.WIDTH - 1),y1 + unit * i);g.drawLine(x1 + unit * i, y1, x1 + unit * i, y1 + unit* (ChessModel.HEIGHT - 1);for (int i = 0; i ChessModel.HEIGHT; i+) g.drawString( + (i + 1), x1 - 15, y1 + unit * i + 5);g.drawString( +
47、 (i + 1), x1 + unit * i - 5, y1); 2 导航栏设置视图 public class ControlPanel extends JPanel private static final long serialVersionUID = 1L;private JButton start = null;Five ctrl = null; / jve:decl-index=0:private JRadioButton blackRadioButton = null;private JRadioButton whiteRadioButton = null;private JButton host = null;private JTextField ip = null;private
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小班常识安全教育
- 体育游戏课件模板
- 视力残疾人群教学课件设计
- 医学26年:消化科教学工作要点 查房课件
- 教育精准扶贫实施路径与成效分析
- 高中宪法教育日主题班会
- 科学教育体系构建与发展路径
- 班队主题教育活动案例
- 2025年单域抗体制备成本降低技术
- 居住权合同协议
- 防灾减灾知识竞赛课件
- 2026五年高考英语真题高频800核心词汇(完整版可直接打印背诵)
- (一模)惠州市2026届高三4月模拟考试英语试卷(含答案详解)
- 国家义务教育质量监测四年级科学质量检测试题
- 拆违控违培训课件
- 小学信息技术课堂中STEAM教育模式研究教学研究课题报告
- 2025年国防军事动员教育知识竞赛题库及答案(共50题)
- 细胞素功效课件
- 早产儿家庭环境改造与安全防护方案
- 会计岗位招聘笔试题及解答(某大型国企)附答案
- 养老院组织架构及岗位职责说明
评论
0/150
提交评论