java五子棋报告doc.docx
- 文档编号:10997213
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:42
- 大小:786.22KB
java五子棋报告doc.docx
《java五子棋报告doc.docx》由会员分享,可在线阅读,更多相关《java五子棋报告doc.docx(42页珍藏版)》请在冰豆网上搜索。
java五子棋报告doc
南开大学
中文题目:
五子棋游戏报告
外文题目:
TheReportofGobang
学号:
0899016708990171
姓名:
吴凡武泽伟
年级:
08级
专业:
影视动画
系别:
计算机科学系
学院:
滨海学院
指导教师:
刘嘉新
完成日期:
201015
关于论文声明
本人郑重声明:
所呈交的论文,是本人在指导教师指导下,进行研究工作所取得的成果。
除文中已经注明引用的内容外,本论文的研究成果不包含任何他人创作的、已公开发表或没有公开发表的作品内容。
对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。
本论文原创性声明的法律责任由本人承担。
论文作者签名:
吴凡武泽伟
2010年1月5日
摘要
此报告主要探讨的是Java语言的具体实现,其目的是将这一学期所学到的Java知识运用到具体项目上,通过刘嘉新老师教授的知识加以运用做出了这个简单的五子棋的小游戏
Abstract
Thisreport’smajordataisThelanguageofjavaandhowtocreate.Thepojectis
madesuccessfullyBecauseweareusetheknowledgeofjavainthisterm.Thisisouraim.Andweareusetheknowledgethatteacherliuteached.Thesimplegameofgobangalsoismadesuccessfully.
目录
第一章引言
1.1设计目的及意义:
本次研究的目的是为了实践使用java语言编程并检验一个学期以来学习java语言的成果,通过编写一个简单的五子棋游戏实践,检验自己在学习java语言的过程中的特点及不足,更好的熟练掌握java语言的特点并及时反省和提高自己的知识和技术。
1.2研究目标:
该五子棋游戏应主要包括下述方面:
1.初始化界面时棋盘的规格;
2.响应鼠标点击并在相应位置画出棋子;
3.有一定的智能(可以判断胜负);
4.利用java语言中的panel放置棋盘显示棋子(注:
其内包含鼠标响应);
5.尽可能实现网络对战功能。
注:
1.检验java语言的简单画图(具体为画线)操作;
2.检验响应鼠标事件并检验简单画图(具体为画填充圆);
3.检验处理具体问题的能力以及检查不同的编程方法和想法;
4.检验视图功能的实现的具体掌握情况;
5.检验使用java访问网络并进行操作的能力。
1.3环境介绍:
1.3.1计算机介绍:
早期计算机
公元前5世纪,中国人发明了算盘,广泛应用于商业贸易中,算盘被认为是最早的计算机,并一直使用至今。
算盘在某些方面的运算能力要超过目前的计算机,算盘的方面体现了中国人民的智慧。
直到17世纪,计算设备才有了第二次重要的进步。
1642年,法国人BlaisePascal(1623-1662)发明了自动进位加法器,称为Pascalene。
1694年,德国数学家GottfriedWilhemvonLeibniz(1646-1716)改进了Pascaline,使之可以计算乘法。
后来,法国人CharlesXavierThomasdeColmar发明了可以进行四则运算的计算器。
现代计算机的真正起源来自英国数学教授CharlesBabbage。
CharlesBabbage发现通常的计算设备中有许多错误,在剑桥学习时,他认为可以利用蒸汽机进行运算。
起先他设计差分机用于计算导航表,后来,他发现差分机只是专门用途的机器,于是放弃了原来的研究,开始设计包含现代计算机基本组成部分的分析机。
(AnalyticalEngine)
Babbage的蒸汽动力计算机虽然最终没有完成,以今天的标准看也是非常原始的,然而,它勾画出现代通用计算机的基本功能部分,在概念上是一个突破。
在接下来的若干年中,许多工程师在另一些方面取得了重要的进步,美国人HermanHollerith(1860-1929),根据提花织布机的原理发明了穿孔片计算机,并带入商业领域建立公司。
现代计算机发展历程
第一代电子管计算机(1946-1957)
1946年2月15日,标志现代计算机诞生的ENIAC(ElectronicNumericalIntegratorandComputer)在费城公诸于世。
ENIAC代表了计算机发展史上的里程碑,它通过不同部分之间的重新接线编程,还拥有并行计算能力。
ENIAC由美国政府和宾夕法尼亚大学合作开发,使用了18000个电子管,70000个电阻器,有5百万个焊接点,耗电160千瓦,其运算速度为每秒5000次。
第一代计算机的特点是操作指令是为特定任务而编制的,每种机器有各自不同的机器语言,功能受到限制,速度也慢。
另一个明显特征是使用真空电子管和磁鼓储存数据.
第二代晶体管计算机(1957-1964)
1948年,晶体管发明代替了体积庞大电子管,电子设备的体积不断减小。
1956年,晶体管在计算机中使用,晶体管和磁芯存储器导致了第二代计算机的产生。
第二代计算机体积小、速度快、功耗低、性能更稳定。
1960年,出现了一些成功地用在商业领域、大学和政府部门的第二代计算机。
第二代计算机用晶体管代替电子管,还有现代计算机的一些部件:
打印机、磁带、磁盘、内存、操作系统等。
计算机中存储的程序使得计算机有很好的适应性,可以更有效地用于商业用途。
在这一时期出现了更高级的COBOL和FORTRAN等语言,使计算机编程更容易。
新的职业(程序员、分析员和计算机系统专家)和整个软件产业由此诞生。
第三代集成电路计算机(1964-1972)
1958年德州仪器的工程师JackKilby发明了集成电路(IC),将三种电子元件结合到一片小小的硅片上。
更多的元件集成到单一的半导体芯片上,计算机变得更小,功耗更低,速度更快。
这一时期的发展还包括使用了操作系统,使得计算机在中心程序的控制协调下可以同时运行许多不同的程序。
第四代大规模集成电路计算机(1972-现在)
大规模集成电路(LSI)可以在一个芯片上容纳几百个元件。
到了80年代,超大规模集成电路(VLSI)在芯片上容纳了几十万个元件,后来的(ULSI)将数字扩充到百万级。
可以在硬币大小的芯片上容纳如此数量的元件使得计算机的体积和价格不断下降,而功能和可靠性不断增强。
70年代中期,计算机制造商开始将计算机带给普通消费者,这时的小型机带有友好界面的软件包,供非专业人员使用的程序和最受欢迎的字处理和电子表格程序。
1981年,IBM推出个人计算机(PC)用于家庭、办公室和学校。
80年代个人计算机的竞争使得价格不断下跌,微机的拥有量不断增加,计算机继续缩小体积。
与IBMPC竞争的AppleMacintosh系列于1984年推出,Macintosh提供了友好的图形界面,用户可以用鼠标方便地操作。
现代计算机发展史纪年
1666年,在英国SamuelMorland发明了一部可以计算加数及减数的机械计数机。
1673年,GottfriedLeibniz制造了一部踏式(stepped)圆柱形转轮的计数机,叫“SteppedReckoner”,这部计算器可以把重复的数字相乘,并自动地加入加数器里。
1694年,德国数学家,GottfriedLeibniz,把巴斯卡的Pascalene改良,制造了一部可以计算乘数的机器,它仍然是用齿轮及刻度盘操作。
1773年,Philipp-Matthaus制造及卖出了少量精确至12位的计算机器。
1775年,ThethirdEarlofStanhope发明了一部与Leibniz相似的乘法计算器。
1786年,J.H.Mueller设计了一部差分机,可惜没有拨款去制造。
1801年,Joseph-MarieJacquard的织布机是用连接按序的打孔卡控制编织的样式。
1854年,GeorgeBoole出版"AnInvestigationoftheLawsofThought”,是讲述符号及逻辑理由,它后来成为计算机设计的基本概念。
1858年,一条电报线第一次跨越大西洋,并且提供了几日的服务。
1861年,一条跨越大陆的电报线把大西洋和太平洋沿岸连接起来。
1876年,AlexanderGrahamBell发明了电话并取得专利权。
1876至1878年,BaronKelvin制造了一部泛音分析机及潮汐预测机。
1882年,WilliamS.Burroughs辞去在银行文员的工作,并专注于加数器的发明。
1889年,HermanHollerith的电动制表机在比赛中有出色的表现,并被用于1890中的人口调查。
HermanHollerith采用了Jacquard织布机的概念用来计算,他用咭贮存资料,然后注入机器内编译结果。
这机器使本来需要十年时间才能得到的人口调查结果,在短短六星期内做到。
1893年,第一部四功能计算器被发明。
1895年,GuglielmoMarconi传送广播讯号。
1896年,Hollerith成立制表机器公司(TabulatingMachineCompany)。
1901年,打孔键出现,之后的半个世纪只有很少的改变。
1904年,JohnA.Fleming取得真空二极管的专利权,为无线电通讯建立基础。
1906年,LeedeForedt加了一个第三活门在Felming的二极管,创制了三电极真空管。
1907年,唱片音乐在纽约组成第一间正式的电台。
1908年,英国科学家CampbellSwinton述了电子扫描方法及预示用阴极射线管制造电视。
1911年,Hollerith的表机公司与其它两间公司合并,组成ComputerTabulatingRecordingCompany(C-T-R),制表及录制公司。
但在1924年,改名为InternationalBusinessMachineCorporation(IBM)。
1911年,荷兰物理学家KamerlinghOnnes在LeidenUnversity发现超导电。
1931年,VanneverBush发明了一部可以解决差分程序的计数机,这机器可以解决一些令数学家,科学家头痛的复杂差分程序。
1935年,IBM(InternationalBusinessMachineCorporation)引入"IBM601”,它是一部有算术部件及可在1秒钟内计算乘数的穿孔咭机器。
它对科学及商业的计算起很大的作用。
总共制造了1500部。
1937年,AlanTuring想出了一个"通用机器(UniversalMachine)”的概念,可以执行任何的算法,形成了一个"可计算(computability)”的基本概念。
Turing的概念比其它同类型的发明为好,因为他用了符号处理(symbolprocessing)的概念。
1939年11月,JohnVincentAtannsoff与JohnBerry制造了一部16位加数器。
它是第一部用真空管计算的机器。
1939年,Zuse与Schreyer开鈶制造了"V2”﹝后来叫Z2﹞,这机器沿用Z1的机械贮存器,加上一个用断电器逻辑(RelayLogic)的新算术部件。
但当Zuse完成草稿后,这计划被中断一年。
1939-40年,Schreyer完成了用真空管的10位加数器,以及用氖气灯(霓虹灯)的存贮器。
1940年1月,在BellLabs,SamuelWilliams及Stibitz完成了一部可以计算复杂数字的机器,叫“复杂数字计数机(ComplexNumberCalculator)”,后来改称为“断电器计数机型号I(ModelIRelayCalculator)”。
它用电话开关部份做逻辑部件:
145个断电器,10个横杠开关。
数字用“Plus3BCD”代表。
在同年9月,电传打字etype安装在一个数学会议里,由NewHampshire连接去纽约。
1940年,Zuse终于完成Z2,它比运作得更好,但不是太可靠。
1941年夏季,Atanasoff及Berry完成了一部专为解决联立线性方程系统(systemofsimultaneouslinearequations)的计算器,后来叫做"ABC(Atanasoff-BerryComputer)”,它有60个50位的存贮器,以电容器(capacitories)的形式安装在2个旋转的鼓上,时钟速度是60Hz。
1941年2月,Zuse完成"V3”(后来叫Z3),是第一部操作中可编写程序的计数机。
它亦是用浮点操作,有7个位的指数,14位的尾数,以及一个正负号。
存贮器可以贮存64个字,所以需要1400个断电器。
它有多于1200个的算术及控制部件,而程序编写,输入,输出的与Z1相同。
1943年1月HowardH.Aiken完成"ASCCMarkI”(自动按序控制计算器MarkI,AutomaticSequence--ControlledCalculatorMarkI),亦称“HawardMarkI”。
这部机器有51尺长,重5顿,由750,000部份合并而成。
它有72个累加器,每一个有自己的算术部件,及23位数的寄存器。
1943年12月,TommyFlowers与他的队伍,完成第一部“Colossus”,它有2400个真空管用作逻辑部件,5个纸带圈读取器(reader),每个可以每秒工作5000字符。
1943年,由JohnBrainered领导,ENIAC开始研究。
而JohnMauchly及J.PresperEckert负责这计划的执行。
1946v第一台电子数字积分计算器(ENIAC)在美国建造完成。
1947年,美国计算器协会(ACM)成立。
1947年,英国完成了第一个存储真空管O1948贝尔电话公司研制成半导体。
1949年,英国建造完成"延迟存储电子自动计算器"(EDSAC)
1950年,"自动化"一词第一次用于汽车工业。
1951年,美国麻省理工学院制成磁心
1952年,第一台"储存程序计算器"诞生。
1952年,第一台大型计算机系统IBM701宣布建造完成。
1952年,第一台符号语言翻译机发明成功。
1954年,第一台半导体计算机由贝尔电话公司研制成功。
1954年,第一台通用数据处理机IBM650诞生。
1955年,第一台利用磁心的大型计算机IBM705建造完成。
1956年,IBM公司推出科学704计算机。
1957年,程序设计语言FORTRAN问世。
1959年,第一台小型科学计算器IBM620研制成功。
1960年,数据处理系统IBM1401研制成功。
1961年,程序设计语言COBOL问世。
1961年,第一台分系统计算机由麻省理工学院设计完成。
1963年,BASIC语言问世。
1964年,第三代计算机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型微电脑诞生。
1978年,超大规模集成电路开始应用。
1978年,磁泡存储器第二次用于商用计算机。
1979年,夏普公司宣布制成第一台手提式微电脑。
1982年,微电脑开始普及,大量进入学校和家庭。
1984年,日本计算机产业着手研制"第五代计算机"---具有人工智能的计算机。
1.3Java语言介绍:
(资料来自于网络)
Java,是一种可以编写跨平台应用软件的面向对象的程序设计语言,由Sun(太阳微电子,SunMicrosystems)公司的JamesGosling等人于1990年代初开发。
它最初被命名为Oak,作为一种小家用电器的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。
就在Oak几近夭折之时,随着Internet的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月以"Java"的名称正式发布了。
Java伴随着Internet的迅猛发展而发展,逐渐成为重要的Internet编程语言。
Java编程语言的风格十分接近C++语言。
Java继承了C++语言面向对象技术的核心,舍弃了C++语言中的指针(以引用取代)、运算符重载、多重继承(以接口取代)等成分,增加了自动垃圾收集功能用于回收不再被引用的对象所占据的内存空间。
在J2SE1.5版本中Java又引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。
它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。
不过,这同时也在一定程度上降低了Java程序的运行效率。
Sun公司对Java编程语言的解释是:
Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Java平台是基于Java语言的平台。
这样的平台目前非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。
Java的历史:
1995年5月23日,Java语言诞生
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、J2ME)
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的学习和认识,不断的完善这个游戏程序通过知识的不断更新对此程序的不断更进从而使这个棋子越来越来人性化。
第二章研究要点与核心问题介绍
2.1要点介绍:
1.数据类;
2.试图类;
3.控制类;
2.2指导老师引导方向:
1.简单图像立体效果的实现方面由指导老师刘嘉新辅导理由错位画出灰色填充圆实现视觉误差从而达到目的;
2.实现简单智能(即判断胜负情况)时利用数组的概念将棋盘上的各个可能落子点看成不同的数据并用四种不同的方法将横向/竖向/左斜向/右斜向四个方向上的点抠出并利用不同的自定义函数予以计算判断是否出现一方胜利进而给出结果;
3.实现利用可视化编程方法实现用鼠标点击来下棋;
注:
1.具体为使用视觉误差法在落子时先画一个略微错位的灰色填充圆与后画的黑白填充圆一起成为了有立体效果的棋子;
2.使用解析几何是常用的方法将具体的物体问题化成一只的数学问题并给予解决根据此方法将棋盘的四种方向上的格子看成不同的数组将棋盘上的不同的填充圆(包括空白)看成数组中的数据然后分别用计数累加的方法找出每次判断时是否有胜负并进行后续操作如此既实现了简单的智能;
3.使用可视化编程方法可以设置panel中的事件添加一个鼠标监听和响应便可以实现用鼠标点击的方法来下棋。
2.3具体代码显示:
2.3.1数据类:
1.创建棋盘存储空间
publicclassChessModel{
privatePoint[][]panel;
/**棋盘大小*/
publicstaticfinalintWIDTH=19;
publicstaticfinalintHEIGHT=19;
/**
*棋子数字表示
*/
publicstaticfinalintWHITE=-1;
publicstaticfinalintBLACK=1;
publicstaticfinalintSPACE=0;
privateLinkedList
/**
*构造棋盘数组
*/
privateintcurRow;
privateintcurCol;
/**
*棋盘数组的构造函数
*/
publicChessModel(){
panel=newPoint[HEIGHT][WIDTH];
}
2.落子和反回当前位置棋子信息
/**
*围棋盘数组复值(落子)
*@paramrow行数
*@paramcol列数
*@paramQizi所赋值(所下的棋子)
*/
publicbooleanset(introw,intcol,intcolor){
if(row>=0&&row &&col>=0&&col &&panel[row][col]==null){ Pointtemp=newPoint(row,col,color); pane
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 五子棋 报告 doc