课程设计论文
题目
五子棋
学生学系年专号别级业
指导教师完成日期
1
五子棋Java代码设计
摘要:摘要:本设计将利用五子棋游戏作为研究对象,设计出一个五子棋游戏。并对所涉及到的相关技术进行初步的探讨。游戏中提供一种模式:人人对战。在人人对战中双方可以进行下棋。
关键字:关键字:五子棋、java代码
第一章引言
1.1问题背景
计算机运算速度一直遵循着摩尔定律在飞速的发展,随着这些技术的快速发展,使得大规模的运算得以在很短的时间内实现。正是基于这些技术,近年来各式各样的棋类游戏软件也纷纷出现在了电脑荧屏上,因而,五子棋软件则对五子棋棋迷们来说无疑是个“福音”五。子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“連珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(FiveinaRow的缩写),亦有“连五子”“五子连”“串珠”“五目”“五、、、、目碰”“五格”等多种称谓。、
1.2五子棋简介
下面就五子棋的背景和规则做一些简单的介绍。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古
2
典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。五子棋的规则如下:棋盘:采用同围棋盘一样的15路或19路线的棋盘,为了减小问题的规模,本系统将采用15路线的棋盘。下法:两人分别执黑白两色棋子,轮流在棋盘上选择一个无子的交叉点落子。无子的交叉点又被称为空点。输赢判断:黑、白双方有一方的5个棋子在横、竖或斜方向上连接成一线即为该方赢。
第二章详细设计过程
2.1概要介绍
2.1.1本程序介绍
游戏中提供的选择模式是:人人对战。在人人对战中双方通过选择一方作为黑方,一方作为白方。横、竖、斜三种方式排列成五颗棋子的为胜利方。
2.1.2本程序特点
五子棋游戏程序由于规则简单操作简便等特点,自然就成为程序员对人工智能研究的首选对象。本程序的一个主要特点是,采用了高效的优化方法,使得在相同的搜索规模中所花费的计算时间大幅度的减小。响应时间明显得到提高。即使搜索深度达到4的时候,其响应时间在绝大部分的情况下还是可以接受的。
2.2用软件工程方法学指导开发过程软件工程方法学指导开发过程
3
在小规模的程序开发中,很多人都不太注意用软件工程的方法学设计系统,包括我本人,在开发一些小功能程序时总是随心所欲的添加需求:有时为了类与类之间的通信需要,往类中添加不相关的变量,直接修改变量的属性或者声明一大堆的全局变量。虽然最后系统都能够”笨重”的运行起来,但这是明显违背程序设计方法学。可维护行,易修改性严重降低。后期如果需要添加某些功能的时候将变得十分的繁琐。可以想象在多个团队一起开发的大型系统中这种粗陋的开发方法根本是行不通的。所以要养成用正确的方法指导开发过程的习惯,虽然有时候看起来有点大题小做,但我觉的这是作为一名合格的软件开发工程师所必须掌握的技能。通过长期不断的积累才能增加我们参与大型项目开发的能力。Java,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。
2.2.1问题定义
本次系统设计中首先明确了需要解决的问题是五子棋算法的研究,基本的要求是设计一款能够实现单机对战的五子棋游戏,提供一些基本的操作如重新开始,选择黑白棋等操作,重点是放在五子棋算法的研究。
2.2.2可行性研究
4
这个阶段要回答的关键问题:“对于上一个阶段所确定的问题是否可行?”为了回答这个问题,我们需要进行一次大大压缩和简化了的系统分析和设计的过程,也就是在较抽象的高层次上进行的分析和设计的过程。可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。可行性研究以后的那些阶段将需要投入要多的人力物力。及时中止不值得投资的工程项目,可以避免更大的浪费。根据这些基本的概念,我在技术上主要是通过相关文档资料的查找后确定可行性,凭着大学期间打下厚实的专业科基础,特别是数据结构和算法,能够在这段时间内理解通透并应该有所改进,后来证明是对的。利用剩下时间也应该来说也比较充裕的。经济上暂不考虑。下面主要从技术上进行分析:Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.5,最近版本为Java1.7。Java分为三个体系JavaSE(Java2PlatformStandardEdition,java
5
平台标准版),JavaEE(Java2Platform,EnterpriseEdition,java平台企业版),JavaME(Java2PlatformMicroEdition,java平台微型版)。
2.2.3需求分析
这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统需要做什么”,主要是确定目标系统必须具备哪些功能。五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种之一。发展于日本,流行于欧美。容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。
2.2.4编码和单元测试
importjava.applet.*;importjava.awt.*;importjava.awt.event.*;importjava.applet.Applet;importjava.awt.Color;
public
class
wuziqi
extends
Applet
implements
ActionListener,MouseListener,MouseMotionListener,ItemListener{intcolor_Qizi=0;//旗子的颜色标识0:白子1:黑子intintGame_Start=0;//游戏开始标志0未开始1游戏中intintGame_Body[][]=newint[16][16];//设置棋盘棋子状态0无子1白子2黑子
Buttonb1=newButton("游戏开始");Buttonb2=newButton("重置游戏");LabellblWin=newLabel("");CheckboxckbHB[]=newCheckbox[2];CheckboxGroupckgHB=newCheckboxGroup();publicvoidinit(){setLayout(null);
6
addMouseListener(this);add(b1);b1.setBounds(330,50,80,30);b1.addActionListener(this);add(b2);b2.setBounds(330,90,80,30);b2.addActionListener(this);ckbHB[0]=newCheckbox("白子先",ckgHB,false);ckbHB[0].setBounds(320,20,60,30);ckbHB[1]=newCheckbox("黑子先",ckgHB,false);ckbHB[1].setBounds(380,20,60,30);add(ckbHB[0]);add(ckbHB[1]);ckbHB[0].addItemListener(this);ckbHB[1].addItemListener(this);add(lblWin);lblWin.setBounds(330,130,80,30);
Game_start_csh();}
publicvoiditemStateChanged(ItemEvente){if(ckbHB[0].getState()){color_Qizi=0;}else{color_Qizi=1;}}//选择黑子先还是白子先
publicvoidactionPerformed(ActionEvente){Graphicsg=getGraphics();
上一篇:
java(J2EE)课程设计报告(22)
下一篇:
多年来只想说一句,我不怪你