java五子棋实习报告

合集下载

五子棋报告-java

五子棋报告-java

XXXX大学XX学院课程设计报告课程名称:面向对象程序设计题目名称:五子棋游戏设计学生姓名:专业班级:指导教师:任晓强一、课程设计目的与任务(四号、宋体、加黑、顶格)(1)掌握Java编程、面向对象的基础知识。

(2)较熟练地编写Java应用程序Application。

(3)了解Java的常用标准类库、编程技巧、异常处理。

(4)联系已学过的内容,巩固所学的理论,增强独立工作能力。

(5)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。

(6)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。

课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。

正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。

二、课程设计内容1本设计题目的主要内容设计一个15╳15围棋棋盘,由两玩家交替进行对战,并可以实现以下功能:1.选择落子的先后顺序2.重置棋盘3.刷新重新开始4.退出提示并且规定退出者判为负,但退出过程中要有提示。

以防不小心点错了。

最后判断某一方是否为五子连珠。

实现一个简单的多用户五子棋的游戏程序,包括如下两个界面(1)选择对弈桌(执黑、执白)。

(2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);2 设计思想与程序构架程序流程图程序的功能分配a. 棋盘的绘制public void draw_qipan(Graphics G) 添加按钮Button b1=new Button("开始");Button b2=new Button("重置游戏");Label lblWin=new Label(" ");Checkbox ckbHB[]=new Checkbox[3];Button exist = new Button("退出");public void init(){ckbHB[0]=new Checkbox("执白",ckgHB,false);ckbHB[1]=new Checkbox("执黑",ckgHB,false);ckbHB[2]=new Checkbox("观看",ckgHB, false);}c. 鼠标棋子的触发事件public void mouseClicked(MouseEvent e) {Graphics g=getGraphics();int x1,y1;x1=();y1=();if ()<20 || ()>300 || ()<20 || ()>300) {return;}if (x1%20>10) {x1+=10;}if(y1%20>10) {y1+=10;}x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1);}d. 按钮的触发事件public void actionPerformed(ActionEvent e) { Graphics g=getGraphics();if ()==b1) {Game_start();}else{Game_re();}if()==exist){Game_re();(Get_qizi_color(color_Qizi)+"输了!");intGame_Start=0;}e. 判断落子的位置及画出相应的黑白棋子public void set_Qizi(int x,int y) 判断胜负if (Game_win_1(x/20,y/20)) 进入游戏界面游戏开始的界面有三个选择项,用户可以选择相应的角色,选择完毕后点击开始进入游戏。

五子棋实训报告(电子版)

五子棋实训报告(电子版)

《JA V A程序设计》实训报告课程名称:JA V A程序设计专业:计算机应用技术班级:11计算机应用班小组成员:巨敏石丽涛张娅雯李延尚文学董丁喜周致远指导老师:武文廷目录一.实训目的 (1)二. 实训题目和要求2.1实训题目描述 (1)2.2实训要求 (1)三.实训报告内容3.1五子棋主框架 (1)3.2棋盘、棋子及说明信息 (1)3.3对弈算法相关问题设计 (1)四.实训中的部分代码 (2)五.五子棋源程序代码 (3)六. 总结 (17)一、实训目的本次实训,学生可以将理论知识与具体实践相结合,巩固对JA VA相关方法和概念的理解。

通过实训单机版五子棋游戏的编程,掌握JA V A语言编程的基础知识并能熟练运用,熟悉累声明与对象的使用,运用JA V Aswing编写单机版五子棋游戏,并实现其功能。

通过本次实训,可以开拓思维,增强编程思想,为深入学习JA VA打下良好的基础。

二、实训题目描述和要求2.1实训题目描述实训题目:JA V A五子棋单机版游戏。

描述:通过JA V A的swing组件,实现五子棋简单的双人对弈,并通过内部条件判断实现输赢的双方的下棋过程。

2.2实训要求(1)五子棋游戏的主窗口也就是游戏界面的实现(2)棋子黑白色的设置及判定(3)完成判断某一横行是否练成五子及所有方向是否练成五子的功能(4)几个简单按钮的实现,“重新开始”“悔棋”“退出”按钮(5)菜单栏的实现,“重新开始”“悔棋”“退出”菜单项三、实训报告内容3.1主框架编写一个startCheesJFrame类,主要用来显行主窗体界面,包括工具条面板、菜单栏项。

设置界面关闭事件。

并编写一个内部类MyItemListener来监听按钮和菜单栏的单机事件。

3.2棋盘、棋子(1)编写point类,包括棋子的X/Y索引,颜色。

定义构造函数和相应的get方法。

(2)编写ChessBoard类,设置棋盘背景颜色为橘黄色(3)在主框架类中创建ChessBoard对象,并添加到主框架中(4)编写mousePressed方法来进行绘制棋盘和棋子3.3对弈算法相关问题设计(1)编写mousePressed方法的内容,预定义isBlack表示下的是黑棋还是白棋。

java五子棋小游戏实验资料报告材料(附源代码)

java五子棋小游戏实验资料报告材料(附源代码)

手机五子棋游戏的设计与实现专业::班级:学号:指导教师:J2ME(Java 2 Micro Edition)是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项开发技术。

它因其“write once,run anywhere”的Java特性而提高了开发的效率。

随着手机性能的不断提高,手机休闲娱乐应用将成为PC休闲娱乐应用之后又一重要业务增长点。

棋类游戏规则单一,比较适合在手机等便携终端推广。

由于具有跨平台、易于移植、占用空间小的优势,J2ME成为移动应用开发平台的主流,并提供了很多用以支持移动应用软件的开发的API。

现将该技术用于这次的手机游戏开发,可以实现游戏的快速开发,不但便于查看游戏运行过程中存的占用量和程序的每一部分代码消耗了多少处理器时间,而且可以不断地优化代码,使代码具有高度的复用性、可扩展性、可维护性。

游戏的开发以J2ME为平台,利用Java技术,结合J2ME的MIDP技术,并对于程序设计思想,重要类、方法等展开讨论。

在对弈部分,分析设计走棋算法,选择合适的方式组织成代码,实现基本的人工智能。

过程中使用了J2ME中的CLDC/MIDP软件体系,主要运用了MID Profile的特定类的支持,来完成游戏的开发。

关键词:J2ME;CLDC;MIDPJ2ME is a kind of fast developing technology implemented on various devices especially mobile communication equipments. It improves the efficiency of the development process because of its "write once, run anywhere" nature. The development trend of the entertainment market based on the cell phone is very obvious because the handset performance enhances unceasingly. The entertainment market based on the cell phone will to be the new important business growth point follow the PC entertainment market. As the rules of a single chess game, it is more suitable for mobile phones and other portable terminal extension.J2ME has been the preferred platform for development because of its platform independent and compatibility, and provides a lot of APIs to support the development of mobile application software. The technology for mobile game development, can achieve the rapid development of the game. It is not only easy to observe the memory consumption and processor consumed time during the operation of the game, but also can optimize the code, so that the code has a high degree of reusability, scalability, maintainability.The game has designed by J2ME, the Java technology and the MIDP technology. I studied the procedure thought, the important class and the method. In the playing chess part, I have analyzed the algorithm, choosed the appropriate way to organize the code and realized the basic artificial intelligence. On the other hand,I learned software system of CLDC/MIDP and the specific class of the MID Profile to complete the game development.Key words: J2ME;CLDC;MIDP目录1 概述 (5)1.1 课题研究背景 (5)1.2 课题研究意义 (5)2 开发技术背景 (6)2.1 JAVA语言概述 (6)2.2 J2ME简介 (6)2.3 移动信息设备简表 (6)3 系统分析及总体设计 (7)3.1 可行性分析 (7)3.2 需求分析 (8)3.3 系统概要设计 (8)4 系统详细设计 (9)4.1 界面设计 (9)4.1.1 图形的低级绘制 (10)4.1.2 用户按键设计 (10)4.2 走棋算法 (11)4.3 胜负判断 (11)5 系统测试 (11)5.1 测试方案 (11)5.2 测试结果 (12)6总结 (14)基于J2ME的手机五子棋游戏的设计与实现1 概述1.1 课题研究背景五子棋是当前非常流行的一种棋。

java课程设计实验报告---自娱自乐五子棋

java课程设计实验报告---自娱自乐五子棋

Java课程设计说明书----五子棋小游戏院系; 管理学院专业班级: 信管151学生学号: 201500705009学生姓名: 雷晓指导教师: 伍良启日期2017.01.05成绩:指导老师签名:批改日期:目录 (1)课程设计的目的 (5)课程设计思路 (5)(1)棋盘界面设计 (5)(2)算法设计 (6)(3)五子棋规则 (6)程序流程图 (7)程序的设计方法 (8)程序中主要方法的说明 (8)程序中类及成员变量的说明 (9)主要成员变量(属性) (9)java源文件及其功能 (10)五子棋游戏中的注册监听 (10)游戏整体设计 (11)(1)五子棋的游戏主界面 (11)(2)机器人部分的设计 (11)(3)五子棋面板的设计 (12)设计结果与分析 (12)设计体会 (13)参考文献 (15)附录:程序源代码 (15)课程设计的目的学习任何知识得目的都是要将它运用到实践中去,所以我们要运用已有的知识,独立得将这个课程设计完成,只有这样,我们才能将知识变成本领,变成属于自己得东西,通过一个学习得学习,我们已经有可一定得Java基础,现在我们就要利用这些基础,来完成课程设计。

这次课程设计我主要研究了利用已学的Java知识编辑一个五子棋小游戏。

通过此次课程设计,来巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。

课程设计思路(1)棋盘界面设计在对棋盘界面设计方面要考虑简洁友好,符合游戏者需求。

棋子的设计方面系统中设置了两种棋子颜色,yellow或者red,游戏者可自行选择。

棋子怎样画出来,怎样使棋子按我们所想的方式来绘制出来是设计的主要难题。

运行时要求当每次点击鼠标的时候就在点击鼠标的地方画一个棋子,所以得定义一个棋子的类使点击鼠标时系统把棋子绘制出来。

这样主界面里的棋子就确定了,而且也确定了几个所需要的类。

可以先定义好这些类了。

Java五子棋设计报告

Java五子棋设计报告

南京晓庄学院《JAVA程序设计》课程设计报告题目: 五子棋游戏的设计与实现姓名: 陶野学号:班级: 12软件工程转本2班指导教师:王峥完成时间7月1日成绩:信息工程学院2015年6月目录五子棋游戏的设计与实现1引言五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。

有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。

在上古的神话传说中有“女娲造人,伏羲做棋”一说,《增山海经》中记载:“休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵。

”李善注引三国魏邯郸淳《艺经》中曰:“棋局,纵横各十七道,合二百八十九道,白黑棋子,各一百五十枚”。

这段虽没明讲是何种棋类,但至少知道远古就以漂亮的石头为棋子。

因而规则简单的五子棋也可能出自当时,并是用石子作棋子。

亦有传说,五子棋最初流行于少数民族地区,以后渐渐演变成围棋并在炎黄子孙后代中遍及开来。

1.1系统开发背景在计算机逐步渗入社会生活各个层面的今天,计算机已经成为了人们日常生活中的一部分,越来越多的人使用计算机办公、娱乐等等。

在这其中,系统自带的小游戏也占据了相当重要的地位,与那些网络游戏和3D游戏相比,它有编写简单容易上手等特点,非常适合人们在完成工作的时候适当的娱乐要求。

这些小游戏大都是以益智和娱乐为目的,不仅给紧张工作的人们以放松,还可以让人们的大脑得到开发。

1.2完成的主要工作设计一个15╳15围棋棋盘,由两玩家交替进行对战,并可以实现以下功能:1.选择黑子先下2.设置双方下棋总共时长3.刷新重新开始4.悔棋5.认输6.退出提示实现一个简单的多用户五子棋的游戏程序,包括如下两个界面(1)选择对弈桌(执黑、执白)。

(2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);需求分析与设计思路1、用户需求调查分析2、构思代码模块3、总体设计4、详细设计5、代码编写2需求分析和总体设计1.1需求分析与设计思路此系统为智力游戏,采用JAVA的MVC模式,根据不同功能划分不同模块,该五子棋游戏功能虽然简单,然是实现了人机对战,所以从这个角度来说,此款游戏能准确的计算棋局。

五子棋程序实习报告

五子棋程序实习报告

五子棋程序实习报告一、实习背景及目的近期,我通过五子棋程序的实习,深入了解了五子棋的规则和算法,并成功编写了一个五子棋程序。

本次实习的目的是为了提高我的编程能力和逻辑思维能力,同时了解人工智能在棋类游戏中的应用。

二、五子棋规则及算法分析五子棋是一种两人对弈的棋类游戏,游戏的目标是在棋盘上形成连续的五个棋子。

棋盘通常为15×15的网格,每个玩家轮流在空格中放置自己的棋子。

五子棋的算法主要包括两种:一种是基于搜索的算法,如极大极小值搜索和启发式搜索;另一种是基于机器学习的算法,如蒙特卡洛树搜索和深度学习。

三、程序设计及实现在本次实习中,我选择了基于极大极小值搜索的五子棋算法,并使用Python语言进行程序设计。

程序的主要功能包括棋盘的显示、玩家的输入和计算机的智能下棋。

首先,我使用类来表示棋盘,每个棋盘对象包含一个15×15的二维数组,用于存储棋子的位置。

同时,我还定义了一个常量类,用于存储棋子的颜色和空格的表示。

接下来,我实现了一个玩家输入的类,玩家可以通过该类来选择下棋的位置。

为了简化输入过程,我使用了一个简单的文本界面,玩家只需输入坐标即可。

最后,我实现了一个计算机下棋的类,该类使用了极大极小值搜索算法。

具体实现过程如下:1. 将棋盘划分为多个可能的获胜区域,例如横线、竖线和斜线。

2. 对于每个获胜区域,计算计算机和玩家在该区域获胜的概率。

3. 使用极大极小值搜索算法,选择最优的落子位置。

四、实习心得通过本次五子棋程序的实习,我对五子棋的规则和算法有了更深入的了解,同时也提高了我的编程能力和逻辑思维能力。

在程序设计过程中,我遇到了很多问题,如棋盘的表示、搜索算法的实现等,通过查阅资料和不断调试,我最终成功解决了这些问题。

此外,通过本次实习,我也了解到了人工智能在棋类游戏中的应用。

目前,深度学习等算法在棋类游戏中取得了显著的成果,例如AlphaGo在围棋领域的突破。

未来,我相信人工智能将在更多棋类游戏中发挥重要作用。

java五子棋课程设计报告总结

java五子棋课程设计报告总结

课程设计报告:Java五子棋1. 背景五子棋是一种两人对弈的策略棋类游戏,它的目标是在一个棋盘上先将自己的五个棋子连成一条线,可以是横线、竖线、斜线等。

五子棋具有简单规则、易于上手、趣味性强等特点,因此在各个年龄段都备受欢迎。

本次课程设计旨在使用Java语言实现一个简单的五子棋游戏,并通过该项目来提高学生对面向对象编程和图形用户界面开发的理解和实践能力。

2. 分析2.1 需求分析根据五子棋游戏的规则,我们需要实现以下功能:•创建一个可视化的游戏界面,包括棋盘和落子提示•实现落子操作,玩家可以通过点击鼠标来在合法位置落下自己的棋子•判断胜负条件,当任意一方连成五个棋子时,游戏结束并宣布胜利者•提供重新开始和退出游戏的选项2.2 设计思路为了实现上述功能,我们将采取以下设计思路:•使用Java Swing库来创建游戏界面,包括棋盘和落子提示•使用二维数组来表示棋盘,并通过判断数组中的元素来确定当前位置是否已经有棋子•使用鼠标事件监听器来实现玩家的落子操作•使用算法判断胜负条件,例如遍历棋盘判断是否有五个连续的棋子•使用菜单栏和对话框来实现重新开始和退出游戏的选项3. 实现3.1 游戏界面设计我们将使用Java Swing库来创建游戏界面。

首先,我们需要创建一个主窗口,并设置其大小、标题和布局。

然后,在主窗口上添加一个棋盘面板和一个状态栏面板。

在棋盘面板上,我们使用GridLayout布局将其分割为15行15列的格子。

每个格子可以是一个按钮,用于玩家落子操作。

同时,我们还需要在每个格子上显示当前位置是否已经有棋子。

在状态栏面板上,我们将显示当前玩家的提示信息(轮到哪一方落子)以及胜利者信息(如果有)。

3.2 落子操作实现为了实现玩家的落子操作,我们需要使用鼠标事件监听器。

当玩家点击某个格子时,程序会捕捉到鼠标点击事件,并根据当前玩家的身份在对应的位置上落下棋子。

为了判断当前位置是否已经有棋子,我们可以使用一个二维数组来表示棋盘。

java五子棋实习报告

java五子棋实习报告

Java程序设计基础实习报告课程名称Java程序设计基础实习题目java五子棋专业班级学号学生姓名指导教师Java实习报告一、JAVA技术介绍:Java技术是一门编程语言,也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。

Java编程语言和众不同之处在于:Java程序既是编译型的(转换为一种称为Java字节码的中间语言),又是解释型的(JVM 对字节码进行解析和运行)。

编译只进行一次,而解释在每次运行程序时都会进行。

编译后的字节码采用一种针对JVM 优化过的机器码形式;解释器是JVM 的实现。

二、摘要五子棋作为一个棋类竞技运动,在民间十分流行,本课题主要完成了五子棋人机对战和玩家之间联网对战2个功能。

网络连接部分为Socket编程应用,客户端和服务器端的交互用Class Message定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,及错误处理。

服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。

在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。

分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑AI方案,如递归算法、电脑学习等。

算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。

三、课题分析和设计1)键盘上事先设定8个按键,分作两组,每组四个,分别代表两个人用来控制棋子的上下左右键。

2)绘制棋盘,15条横线,15条竖线,在直线交点处下棋子(实心圆形)。

3)黑子先行,黑白交替下子,在棋盘上设定一个和棋盘格大小边长相等的正方形,初始状态,正方形的中心位于期盼的中心点。

当一方欲走棋的时候,应用四个按键来控制所要下棋的位置,每按一次按键,正方形都要向相应方向移动一个格,并且让喇叭发出某种声音,将要移出边界时,发出另一种警告声音并不让其移出边界。

五子棋程序实习报告

五子棋程序实习报告

一、实习背景随着计算机技术的不断发展,编程已成为现代生活的重要组成部分。

为了提高自己的编程技能,培养自己的实际动手能力,我选择了五子棋程序设计作为实习项目。

五子棋是一种古老的中国传统棋类游戏,具有极高的趣味性和挑战性。

通过本次实习,我学习了Java编程语言,掌握了五子棋游戏的算法和实现方法,提高了自己的编程水平。

二、实习目标1. 熟练掌握Java编程语言的基本语法和常用类库;2. 掌握五子棋游戏的设计和实现方法;3. 学会使用面向对象编程思想进行程序设计;4. 培养自己的团队协作和沟通能力。

三、实习内容1. 系统设计在系统设计阶段,我首先分析了五子棋游戏的规则和特点,明确了游戏的基本功能,包括:棋盘显示、落子、判断胜负、悔棋等。

然后,我设计了五子棋游戏的基本架构,包括以下几个模块:(1)棋盘模块:负责棋盘的显示和落子操作;(2)落子模块:负责实现玩家的落子操作;(3)判断胜负模块:负责判断游戏是否结束,以及判断胜负;(4)悔棋模块:负责实现玩家的悔棋操作。

2. 算法设计五子棋游戏的算法主要包括以下几个部分:(1)棋盘表示:使用二维数组表示棋盘,每个元素代表一个棋子,其中0表示空位,1表示玩家1的棋子,2表示玩家2的棋子;(2)落子算法:根据玩家的落子位置,在棋盘上放置对应的棋子;(3)判断胜负算法:从落子位置开始,向四个方向(上、下、左、右)查找连续的五个相同的棋子,如果找到,则判断为胜利;(4)悔棋算法:撤销上一步的落子操作,将棋盘恢复到上一步的状态。

3. 编码实现在编码实现阶段,我按照设计文档和算法要求,使用Java编程语言完成了五子棋游戏的基本功能。

具体实现如下:(1)棋盘模块:使用JFrame创建一个窗口,使用JPanel绘制棋盘,使用鼠标监听器实现落子操作;(2)落子模块:在棋盘模块的基础上,增加一个方法,用于处理玩家的落子操作;(3)判断胜负模块:编写一个方法,用于判断游戏是否结束,以及判断胜负;(4)悔棋模块:编写一个方法,用于撤销上一步的落子操作。

java五子棋课程设计报告总结

java五子棋课程设计报告总结

java五子棋课程设计报告总结一、引言五子棋是一种古老的棋类游戏,它的规则简单易懂,但是却有很高的策略性和趣味性。

在计算机科学领域中,五子棋也是一个重要的研究对象。

本次课程设计旨在通过使用Java语言实现一个简单的五子棋游戏,并且了解一些基本的人工智能算法。

二、需求分析1. 功能需求(1)实现基本的五子棋游戏功能,包括落子、判断胜负等。

(2)实现人机对弈功能,即用户可以选择与计算机进行对弈。

(3)实现网络对战功能,即用户可以选择与其他玩家进行在线对弈。

2. 非功能需求(1)界面美观、易用性好。

(2)程序运行稳定、流畅。

三、设计方案1. 界面设计使用Java Swing库来实现程序界面。

主要包括菜单栏、工具栏和游戏主界面。

菜单栏包括文件菜单和帮助菜单;工具栏包括开始新游戏、悔棋和撤销悔棋等按钮;游戏主界面包括棋盘和落子动画等。

2. 程序设计(1)基本数据结构使用二维数组来存储棋盘的状态,其中0表示空位,1表示黑子,2表示白子。

使用栈来实现悔棋和撤销悔棋功能。

(2)游戏逻辑通过监听鼠标点击事件来实现用户落子。

每次落子后判断胜负,并且交换下一步落子的颜色。

在人机对弈模式下,计算机会根据当前局面使用基本的博弈树搜索算法来选择最优的落子位置。

(3)网络对战使用Socket编程实现网络对战功能。

用户可以选择创建游戏或加入游戏。

创建游戏后等待其他玩家加入,加入游戏后与对方进行对弈。

四、实现过程1. 界面实现使用Java Swing库中的各种组件来实现程序界面,并且通过布局管理器来控制组件的位置和大小。

2. 程序实现(1)基本数据结构和游戏逻辑的实现比较简单,主要是通过循环和条件语句来控制程序流程。

(2)人工智能算法的实现比较复杂。

我们采用了基本的博弈树搜索算法,在每次落子后生成当前局面下所有可能的落子位置,并且评估每个位置的得分,选择得分最高的位置作为计算机下一步的落子位置。

(3)网络对战功能的实现涉及到Socket编程和多线程编程等技术,需要仔细考虑各种异常情况和线程同步问题。

五子棋实训报告

五子棋实训报告

五子棋实训报告五子棋实训报告篇一:(3)棋子的绘制与存储棋子的绘制用实心圆模式,颜色为黑色及白色两种。

棋子在内存中的存储方式:因为表示各个棋子的数据类型都相同,所以考虑用数组存储,因为棋盘是二维的,因此棋子用二维数组a存储。

a{ setTitle{ Objet obj = e.getSoure }toolbar = ne JPanel{ } publi int getX{ } publi intgetY{ } publi Color getColor{ } return olor; return ;return x; this.x = x; this. = ; this.olor = olor;篇四:实习报告-五子棋信息工程学院201X年毕业实习报告班级:计科XX 姓名:XXX实习地点:XXXXXX 实习12周-19周一、实习目的1. 夯实专业基础,提高动手能力。

把专业知识应用于实践,找出专业薄弱环节加强巩固。

3. 了解就业单位的计算机技术的应用情况、需求情况和发展方向及前景,培养实践能力、分析问题和解决问题的能力以及综合运用所学基础知识和基本技能的能力,同时也增强了适应社会的能力和就业竞争力。

4. 挖掘自身潜力,寻找自身不足,通过实践对未来做出合理规划。

二、实习任务在MElipse的平台上运用java语言,学习开发一个常用小游戏:五子棋。

三、实习计划5. 基础夯实,联系实践。

在信息高速发展的今天,计算机科学技术的重要性也在人们的日常生活中日益突显。

不管是从事理论教学还是从事软件的设计和开发,基础都是最有力的保障。

思想决定行动,认识决定成败。

没有正确的思想作为指导,行动就会陷入盲目和被动。

缺乏正确的认识基础,前途就会迷茫,方向就会迷失,机会就会丧失。

所以说,理论学习是我增强行动自觉的重要保证。

人常说:“经济基础决定上层建筑”专业基础对我来说就是经济基础,而上层建筑就是我们所从事的相关工作。

但是只拥有专业基础还是不行的,所以,我必须要把理论应用于实践。

五子棋实习报告

五子棋实习报告

一、实习背景随着社会竞争的日益激烈,职业技能培训成为提高个人综合素质的重要途径。

为了拓宽自己的知识面,提高自己的实践能力,我于2021年秋季学期参加了五子棋实习。

五子棋作为一种古老而富有魅力的智力游戏,不仅能够锻炼人的思维能力,还能增进人与人之间的交流与合作。

此次实习,旨在通过实际操作和理论学习,提高自己在五子棋方面的技艺,并了解五子棋在国内外的发展现状。

二、实习目的1. 提高自己的五子棋技艺,掌握基本战术和策略。

2. 了解五子棋的起源、发展及国内外普及情况。

3. 培养团队协作精神,提高沟通能力。

4. 通过实习,为今后的职业发展奠定基础。

三、实习内容1. 五子棋基本规则及术语学习在实习初期,我认真学习了五子棋的基本规则、术语以及棋盘布局。

通过查阅资料、请教教练,我对五子棋有了初步的认识。

2. 五子棋实战训练在教练的指导下,我参加了多次实战训练。

通过与其他学员的切磋,我逐渐掌握了五子棋的基本战术和策略。

以下是我参加的几次实战训练:(1)对局一:我执黑子,对手执白子。

在开局阶段,我采取了保守的布局,试图稳定局势。

然而,在后期,对手抓住我布局的弱点,连续进攻,最终取得了胜利。

(2)对局二:我执白子,对手执黑子。

在开局阶段,我采取了积极的布局,试图占据主动。

经过一番激战,我成功守住了黑子的攻势,最终取得了胜利。

3. 五子棋教学与实践在实习过程中,我担任了五子棋教学助教,负责协助教练进行教学。

以下是我在教学过程中的心得体会:(1)注重基础,循序渐进。

在教学过程中,我注重学员的基础知识,从基本规则、术语开始,逐步深入到战术和策略。

(2)因材施教,关注个体差异。

针对不同学员的实际情况,我采取了不同的教学方法,确保每位学员都能有所收获。

(3)激发兴趣,培养竞技精神。

在教学中,我注重激发学员对五子棋的兴趣,引导他们积极参与竞技活动,提高竞技水平。

4. 五子棋文化研究在实习过程中,我还对五子棋的起源、发展及国内外普及情况进行了研究。

五子棋JAVA实验报告 (1)

五子棋JAVA实验报告 (1)

JA V A实验报告课程名称:JAVA程序设计教程实验题目:五子棋院系:公共管理学院信息管理系班级:信息管理与信息系统一班学号:2013190325姓名:谢巧婷五子棋JA V A实验报告一、实验目的和要求1、能够用编程语言实现一个简单的五子棋程序2、在实际系统中使用、实现人工智能的相关算法3、进一步加深对人工智能算法的理解二、五子棋的基本常识与原理1、五子棋的基本常识与任何一种竞技棋一样,五子棋的每一局棋也分为三个阶段:开局,中局和残局。

五子棋的开始阶段称为开局,或称布局。

其开局阶段是十分短暂的,大约在七着与十几着之间。

在这一阶段的争夺中,双方的布局,应对将对以后的胜负起着极为关键的作用。

在开局阶段取得的形势好坏,主动与被动,先手与后手的优劣程度,往往直接影响中局的战斗。

因此积极处理好开局和开局向中局的过渡十分重要。

五子棋是从一至五,逐渐布子,发展连系,同时运用限制和反限制的智慧,在连子的过程中为自己的棋子争得相对的主动权和优势,逐步扩展优势,或者从劣势转化为优势,击溃对方的防线,最后连五取胜或抓禁手取胜或迫使对方投子认负。

2、五子棋比赛的相关规定(1)职业连珠规则a.黑方先下子,白后下,从天元开始相互顺序落子。

b.最先在棋盘横向、竖向、斜向形成连续的相同色五个棋子的一方为胜。

c.黑棋禁手判负,白棋无禁手。

黑棋禁手包括“三三”(包括“四三三”)、“四四”(包括“四四三”)、“长连”。

即黑棋只能以“四三”取胜。

有关术语解释请见图示说明。

d.如分不出胜负,则定为平局。

对局中拔子、中途退场均判为负。

e.五连与禁手同时形成,判胜。

(2)比赛中的规定和特例a.对局开始前,双方猜子,大数减小数,单数交换,偶数不换。

b.白棋第一手(即盘面第二着棋)应在天元为界自己一侧布子,主要以示尊重对方,之后双方可任意行子。

c.对局中双方应遵守“职业连珠五子棋规则”,如出现争议,应由裁判判定。

d.对局中掉子(棋子掉落在棋盘上)的一方判负。

JAVA程序设计五子棋制作实训

JAVA程序设计五子棋制作实训

《JAVA程序设计》实训报告实训题目: 五子棋游戏制作专业:计算机网络班级: 14网络(1)班姓名:指导教师:2015 年 12 月 31日目录1.实训目的........................... 错误!未定义书签。

2.实训题目描述和要求................. 错误!未定义书签。

实训题目描述...................... 错误!未定义书签。

实训题目要求...................... 错误!未定义书签。

3.实训报告内容....................... 错误!未定义书签。

需求分析.......................... 错误!未定义书签。

概要设计.......................... 错误!未定义书签。

详细设计.......................... 错误!未定义书签。

编码.............................. 错误!未定义书签。

测试.............................. 错误!未定义书签。

4.总结............................... 错误!未定义书签。

实训指导教师评语................... 错误!未定义书签。

1.实训目的随着经济社会的迅速发展,人们生活水平有了很大的提高,人们的生活观念也发生了巨大的改变。

高品质的生活、现代化得生活方式成为人们共同追求的目标;休闲、娱乐性活动作为时尚生活中的一部分,而被大多数的人所追捧。

棋类项目作为一种智力型项目,可以益智健心、修身养性,也可以满足人们对于娱乐和休闲的新需求。

一些项目比如五子棋等等,由于项目本身互动的特点,一直被人们所喜爱,因此得以生存和发展,成为许多人喜爱的休闲娱乐性棋类项目。

而今,以网络技术为核心和计算机技术的现代网络技术已经在现实生活得到了十分的广泛的使用。

java五子棋小游戏实验报告(附源代码)

java五子棋小游戏实验报告(附源代码)

手机五子棋游戏得设计与实现专业:姓名:班级:学号:指导教师:摘要J2ME(Java 2 Micro Edition)就是近年来随着各种不同设备,尤其就是移动通信设备得飞速发展而诞生得一项开发技术。

它因其“writeonce,run anywhere"得Java特性而提高了开发得效率.随着手机性能得不断提高,手机休闲娱乐应用将成为PC休闲娱乐应用之后又一重要业务增长点。

棋类游戏规则单一,比较适合在手机等便携终端推广。

由于具有跨平台、易于移植、占用空间小得优势,J2ME成为移动应用开发平台得主流,并提供了很多用以支持移动应用软件得开发得API。

现将该技术用于这次得手机游戏开发,可以实现游戏得快速开发,不但便于查瞧游戏运行过程中内存得占用量与程序得每一部分代码消耗了多少处理器时间,而且可以不断地优化代码,使代码具有高度得复用性、可扩展性、可维护性。

游戏得开发以J2ME为平台,利用Java技术,结合J2ME得MIDP技术,并对于程序设计思想,重要类、方法等展开讨论。

在对弈部分,分析设计走棋算法,选择合适得方式组织成代码,实现基本得人工智能。

过程中使用了J2ME中得CLDC/MIDP软件体系,主要运用了MID Profile得特定类得支持,来完成游戏得开发。

关键词:J2ME;CLDC;MIDPAbstractJ2ME isa kind offast developing technology implemented on various devicesespecially mobile municationequipments、It improves the efficiency of the developmentprocess because of its ”write once,run anywhere” nature、Thedevelopment trendof the entertainment market based on thecell phone is very obviousbecause the handset performanceenhances unceasingly、The entertainment market basedon the cellphone willto be thenew important business growthpoint follow the PCentertainment market、As therules of asingle chess game,itis more suitable for mobile phones and other portable terminal extension、J2ME has been thepreferred platform for development because ofits platformindependentand patibility,and provides a lot of APIs to support the development of mobile applicationsoftware、Thetechnology for mobilegame development,can achieve the rapid development of thegame、It is not only easy too bserve the memory consumption andprocessor consumed timedu ring theoperation ofthe game, but also can optimize the cod e,sothatthecode has a highdegreeofreusability,scalability,maintainability、The game has designed by J2ME,the Java technology and the MIDP technology、Istudiedthe procedurethought,the imp ortantclass andthemethod、In the playing chess part,I have analyzed the algorithm,choosed theappropriateway to organize the code and realized the basic artificial intelligence、On the other hand,I learned software systemofCLDC/MIDPand the specific class oftheMID Propletethegame develo pment、Keywords: J2ME;CLDC;MIDP目录1 概述ﻩ错误!未定义书签。

“Java程序设计”——“五子棋”综合实验报告

“Java程序设计”——“五子棋”综合实验报告

“Java程序设计”综合实验报告一、前言1、项目背景通过五子棋这个课程设计。

可以让我们更加熟悉Java程序设计这门课程,加强对Eclipse这个软件的使用,加深对Java语言的掌握,提高编程水平。

同时培养能力,为将来的工作打下坚实的基础。

2、目标和意义目标:锻炼我们的能力,提高组中每一个人对Java语言的认识,培养编程兴趣。

让每一个人都能参与进来,提高团队合作意识。

意义:通过编写综合类的程序,运用已经学过的知识,和自主学习一些新的知识,提高了学习能力,掌握了一些自主学习的方法。

3、开发分工及进度安排二、功能分析1、主要模块本项目主要分为3个大的模块,分别为整体布局;界面绘制;与对战的算法。

由于游戏规则的设置,这里的游戏模式分为人机对战和人人对战。

黑白双方依次落子,由黑子先下,当任意一方在棋盘上形成横向,竖向,斜向连续五个相同颜色的棋子的一方获胜。

主要功能①实现在2种模式下五子棋的游戏。

②实现通过鼠标的点击位置放置棋子,达到下棋的目的。

③实现游戏玩家对游戏模式的自主选择。

④实现对在每种游戏模式下的黑子先手下棋的规定,先达到5子即为胜利。

三、关键功能的设计与实现1、数据结构与算法数据结构:项目中主要数据结构为二维数组。

用于存储棋盘上棋子的信息,和保存棋型表。

主要算法:(一)iswin()函数:用来判断输赢,通过鼠标事件所得到的点或者电脑下的点的坐标,来扫描该点八个方向的相邻的相同棋子数,上下,左右,斜左上下,斜右上下为四组,任意一组等于5即为胜利,由于本程序没有考虑禁手原则,只考虑了民间规则,所以大于5也为胜利。

public int iswin1(int x, int y, int heqi) {int k, s1, s2, s3, s4, s5, s6, s7, s8;s1 = 0;s2 = 0;s3 = 0;s4 = 0;s5 = 0;s6 = 0;s7 = 0;s8 = 0;if (heqi == 256)return -1;for (k = 1; k < 5; k++) {if (y + k < 16 && qipanqizi[x][y + k] == qipanqizi[x][y])s1++;elsebreak;}for (k = 1; k < 5; k++) {if (y - k > -1 && qipanqizi[x][y - k] == qipanqizi[x][y])s2++;elsebreak;}for (k = 1; k < 5; k++) {if (x + k < 16 && y + k < 16&& qipanqizi[x + k][y + k] == qipanqizi[x][y]) s3++;elsebreak;}for (k = 1; k < 5; k++) {if (x - k > -1 && y - k > -1&& qipanqizi[x - k][y - k] == qipanqizi[x][y]) s4++;elsebreak;}for (k = 1; k < 5; k++) {if (x + k < 16 && qipanqizi[x + k][y] ==qipanqizi[x][y])s5++;elsebreak;}for (k = 1; k < 5; k++) {if (x - k > -1 && qipanqizi[x - k][y] ==qipanqizi[x][y])s6++;elsebreak;}for (k = 1; k < 5; k++) {if (x - k > -1 && y + k < 16&& qipanqizi[x - k][y + k] == qipanqizi[x][y]) s7++;elsebreak;}for (k = 1; k < 5; k++) {if (x + k < 16 && y - k > -1&& qipanqizi[x + k][y - k] == qipanqizi[x][y]) s8++;elsebreak;}if (s1 + s2 >= 4 || s3 + s4 >= 4 || s5 + s6 >= 4 || s7 + s8 >= 4) {return 1;} elsereturn 0;}(二)人机对战通过对整个棋盘上每一个点的扫描,获得了电脑和玩家的棋型表,表中数据为该点的权值。

五子棋Java实验报告

五子棋Java实验报告

五子棋Java实验报告五子棋JAVA实验报告一、实验目的和要求1、能够用编程语言实现一个简单的五子棋程序2、在实际系统中使用、实现人工智能的相关算法3、进一步加深对人工智能算法的理解二、五子棋的基本常识与原理1、五子棋的起源五子棋,是一种两人对弈的纯策略型棋类游戏,亦称“串珠”、“连五子”;是中国民间非常熟知的一个古老棋种。

相传,它起源于四千多年前的尧帝时期,比围棋的历史还要悠久。

亦有传说,五子棋最初流行于少数民族地区,以后渐渐演变成围棋并在炎黄子孙后代中遍及开来。

五子棋发展于日本,流行于欧美。

容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。

传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为19X19,棋子放置于棋盘线交叉点上。

两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。

因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。

2、五子棋的基本常识与任何一种竞技棋一样,五子棋的每一局棋也分为三个阶段:开局,中局和残局。

五子棋的开始阶段称为开局,或称布局。

其开局阶段是十分短暂的,大约在七着与十几着之间。

在这一阶段的争夺中,双方的布局,应对将对以后的胜负起着极为关键的作用。

在开局阶段取得的形势好坏,主动与被动,先手与后手的优劣程度,往往直接影响中局的战斗。

因此积极处理好开局和开局向中局的过渡十分重要。

五子棋是从一至五,逐渐布子,发展连系,同时运用限制和反限制的智慧,在连子的过程中为自己的棋子争得相对的主动权和优势,逐步扩展优势,或者从劣势转化为优势,击溃对方的防线,最后连五取胜或抓禁手取胜或迫使对方投子认负。

3、五子棋比赛的相关规定(1) 职业连珠规则a. 黑方先下子,白后下,从天元开始相互顺序落子。

b. 最先在棋盘横向、竖向、斜向形成连续的相同色五个棋子的一方为胜。

c. 黑棋禁手判负,白棋无禁手。

java课程设计五子棋实验报告

java课程设计五子棋实验报告

java课程设计五子棋实验报告Java课程设计五子棋实验报告一、实验目的本次实验主要目的是运用Java编程语言,设计并实现一个简单的五子棋游戏,通过实践掌握Java编程基础知识和面向对象编程思想。

二、实验内容本实验要求设计并实现一个五子棋游戏,主要功能包括:1. 实现双人对战功能,允许两个玩家交替下棋;2. 实现判断胜负功能,当某一方连成五子时,游戏结束,显示胜利者;3. 实现悔棋和重新开始的功能。

三、实验原理1. 界面设计界面设计采用Java Swing框架,主要包括棋盘和控制面板两部分。

棋盘使用JPanel实现,通过绘制线条和圆形实现棋盘和棋子的显示。

控制面板使用JPanel和JButton实现,提供重新开始和悔棋功能。

2. 游戏逻辑游戏逻辑主要包括下棋和判断胜负两个部分。

下棋功能通过记录当前玩家和棋子位置实现,判断胜负则通过遍历棋盘上的所有棋子,判断是否满足连成五子的条件。

3. 实现悔棋和重新开始的功能悔棋功能主要通过记录每一步棋的位置和玩家来实现,重新开始则需要清空棋盘和游戏记录。

四、实验步骤1. 设计并实现界面,包括棋盘和控制面板;2. 实现游戏逻辑,包括下棋和判断胜负;3. 实现悔棋和重新开始的功能;4. 进行代码测试和调试,确保程序能够正常运行。

五、实验结果经过测试,程序能够正常运行,实现了双人对战、判断胜负、悔棋和重新开始的功能。

六、实验总结本次实验通过设计并实现一个简单的五子棋游戏,巩固了Java编程基础知识和面向对象编程思想,同时也学习了Swing框架的使用。

在实现过程中也遇到了一些问题,如棋子位置的计算、胜负判断的实现等,通过查阅资料和调试最终得以解决。

总体来说,本次实验收获颇丰,对Java编程有了更深入的了解和认识。

网络五子棋实习报告

网络五子棋实习报告

网络五子棋实习报告一、实习背景及目的近期,我参加了网络五子棋的实习项目,通过这次实习,我对网络五子棋的游戏规则、服务器搭建、客户端开发等方面有了更深入的了解。

本次实习的主要目的是锻炼自己的实际操作能力,提高团队合作意识,同时为以后从事游戏开发工作打下基础。

二、实习内容与过程1. 游戏规则学习在实习开始前,我们对五子棋的规则进行了深入学习。

五子棋是一种两人对弈的纯策略型棋类游戏,双方轮流在棋盘上放置棋子,谁先在横线、竖线、斜线上形成连续的五个棋子就算赢。

了解了规则后,我们开始设计游戏的基本框架。

2. 服务器搭建为了实现网络对战,我们需要搭建一个五子棋服务器。

实习过程中,我们采用了Node.js作为服务器开发语言,利用Socket.IO库实现实时通信。

通过搭建服务器,我们学会了如何处理网络连接、数据传输、客户端身份验证等问题。

3. 客户端开发客户端开发是实习的重要环节。

我们采用了Vue.js框架进行前端开发,通过与服务器的实时通信,实现棋子摆放、胜负判断等功能。

在开发过程中,我们遇到了诸如棋盘坐标转换、动画效果处理等问题,通过查阅资料和团队讨论,逐一解决了这些问题。

4. 测试与优化实习过程中,我们不断对游戏进行测试和优化。

测试主要包括功能测试、性能测试和兼容性测试,确保游戏在各种设备和浏览器上都能正常运行。

在测试过程中,我们发现了诸如网络延迟、棋子位置偏移等bug,并针对这些问题进行了优化。

三、实习收获与反思1. 技术层面:通过本次实习,我掌握了五子棋游戏的开发流程,学会了使用Vue.js、Node.js等技术搭建游戏服务器和客户端,提高了自己的实际操作能力。

2. 团队协作:在实习过程中,我与团队成员密切配合,共同解决问题,提高了自己的团队合作意识。

3. 反思:在实习过程中,我们遇到了许多问题,有些问题由于沟通不畅、考虑不周等原因导致解决效率较低。

今后,在实际工作中,我们要更加注重沟通与协作,提高问题解决效率。

五子棋实训报告(电子版)范文

五子棋实训报告(电子版)范文

《JA V A程序设计》实训报告课程名称:JA V A程序设计专业:计算机应用技术班级:11计算机应用班小组成员:巨敏石丽涛张娅雯李延尚文学董丁喜周致远指导老师:***目录一.实训目的 (1)二. 实训题目和要求2.1实训题目描述 (1)2.2实训要求 (1)三.实训报告内容3.1五子棋主框架 (1)3.2棋盘、棋子及说明信息 (1)3.3对弈算法相关问题设计 (1)四.实训中的部分代码 (2)五.五子棋源程序代码 (3)六. 总结 (17)一、实训目的本次实训,学生可以将理论知识与具体实践相结合,巩固对JA VA相关方法和概念的理解。

通过实训单机版五子棋游戏的编程,掌握JA V A语言编程的基础知识并能熟练运用,熟悉累声明与对象的使用,运用JA V Aswing编写单机版五子棋游戏,并实现其功能。

通过本次实训,可以开拓思维,增强编程思想,为深入学习JA VA打下良好的基础。

二、实训题目描述和要求2.1实训题目描述实训题目:JA V A五子棋单机版游戏。

描述:通过JA V A的swing组件,实现五子棋简单的双人对弈,并通过内部条件判断实现输赢的双方的下棋过程。

2.2实训要求(1)五子棋游戏的主窗口也就是游戏界面的实现(2)棋子黑白色的设置及判定(3)完成判断某一横行是否练成五子及所有方向是否练成五子的功能(4)几个简单按钮的实现,“重新开始”“悔棋”“退出”按钮(5)菜单栏的实现,“重新开始”“悔棋”“退出”菜单项三、实训报告内容3.1主框架编写一个startCheesJFrame类,主要用来显行主窗体界面,包括工具条面板、菜单栏项。

设置界面关闭事件。

并编写一个内部类MyItemListener来监听按钮和菜单栏的单机事件。

3.2棋盘、棋子(1)编写point类,包括棋子的X/Y索引,颜色。

定义构造函数和相应的get方法。

(2)编写ChessBoard类,设置棋盘背景颜色为橘黄色(3)在主框架类中创建ChessBoard对象,并添加到主框架中(4)编写mousePressed方法来进行绘制棋盘和棋子3.3对弈算法相关问题设计(1)编写mousePressed方法的内容,预定义isBlack表示下的是黑棋还是白棋。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java程序设计基础
实习报告
课程名称Java程序设计基础实习题目java五子棋
专业
班级
学号
学生姓名
指导教师
Java实习报告
一、JAVA技术介绍:
Java技术是一门编程语言,也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。

Java编程语言与众不同之处在于:Java程序既是编译型的(转换为一种称为Java字节码的中间语言),又是解释型的(JVM 对字节码进行解析和运行)。

编译只进行一次,而解释在每次运行程序时都会进行。

编译后的字节码采用一种针对JVM 优化过的机器码形式;解释器是JVM 的实现。

二、摘要
五子棋作为一个棋类竞技运动,在民间十分流行,本课题主要完成了五子棋人机对战和玩家之间联网对战2个功能。

网络连接部分为Socket编程应用,客户端和服务器端的交互用Class Message定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,及错误处理。

服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。

在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。

分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑AI方案,如递归算法、电脑学习等。

算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。

三、课题分析与设计
1)键盘上事先设定8个按键,分作两组,每组四个,分别代表两个人
用来控制棋子的上下左右键。

2)绘制棋盘,15条横线,15条竖线,在直线交点处下棋子(实心圆形)。

3)黑子先行,黑白交替下子,在棋盘上设定一个与棋盘格大小边长相
等的正方形,初始状态,正方形的中心位于期盼的中心点。

当一方
欲走棋的时候,应用四个按键来控制所要下棋的位置,每按一次按
键,正方形都要向相应方向移动一个格,并且让喇叭发出某种声音,将要移出边界时,发出另一种警告声音并不让其移出边界。

当按下
回车键时,应在正方形所在位置放下一个棋子,然后此组按键不能
操作,换另一个人下棋,用另一组按键,规则同前。

4)当任何一方有五个棋子沿着横,竖,斜连在一起时,系统自动判断
赢棋,并显示黑方或白方胜利。

棋局结束后,任何一方均不能继续
操作。

四、流程图
五、效果图
五、详细代码设计
//导入包
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
//构造applet程序
public class 五子棋 extends Applet implements ActionListener,MouseListener
{
String str="五子棋游戏!";
Dimension currentPos=new Dimension();
//实例化像素
int zuobiao[][]=new int[19][15];
//声明一个19*15的棋盘
int x=20,y=20;
boolean unfirstpaint=false;
boolean one=false;
//========================================================= =============
public void init() //初始化(生存周期第一步) {
addMouseListener(this); //对鼠标添加监听
for(int i=0;i<=18;i++) //使整个棋盘设置为0
{
for(int j=0;j<=14;j++)
zuobiao[i][j]=0;
}
}
//========================================================= =============
public void paint(Graphics g) //画图(生存周期第二步) {
int x0=30,y0=50,dx=30,dy=30,N=18,M=14;
//x0,y0初始坐标,dx,dy每格间距 int x1,y1,x2,y2;
g.setColor(Color.green);
y1=y0;
y2=y0+M*dy;
for(int i=0;i<=N;i++) //用绿色画棋盘中纵向的线
{
x1=x0+i*dx;
g.drawLine(x1,y1,x1,y2);
}
g.setColor(Color.red); //设置成红色
x1=x0;
x2=x0+N*dx;
for(int j=0;j<=M;j++) //用红色画棋盘中横向的线 {
y1=y0+j*dy;
g.drawLine(x1,y1,x2,y1);
}
g.setColor(Color.red); //设置成红色
g.setFont(new Font("TimesRoman",Font.BOLD,25));
//设置字体
g.drawString(str,120,30);
//在指定位置(120,30)写入“五子棋游戏!”
g.setColor(Color.red); //设置成红色
g.fillOval(600,60,20,20) //用红色填充椭圆;
g.drawString(" : 甲方",610,80); //在椭圆中写入字
g.setColor(Color.blue); //设置成蓝色
g.fillOval(600,100,20,20); //用蓝色填充椭圆;
g.drawString(" : 乙方",610,120); //在椭圆中写入字
if(unfirstpaint)
//判断是否为第一次画棋子,如果不是第一次,执行 {
for(int i=0;i<=18;i++)//画棋子
{
for(int j=0;j<=14;j++)
{
if(currentPos.width<=(45+i*30)&¤tPos.width>=(15+i*30)) x=i;
if(currentPos.height<=(65+j*30)¤tPos.height>=(35+j*30)) y=j;
}
}
}
//========================================================= ============
if(x!=20&&y!=20)
if(zuobiao[x][y]==0)
{
if(one)
zuobiao[x][y]=1; //等于1说明是红色棋子
else
zuobiao[x][y]=2; //等于2说明是蓝色棋子
}
//画点图
=========================================================== ==========
for(int i=0;i<=18;i++)
for(int j=0;j<=14;j++)
{
if(zuobiao[i][j]==1) //如果为1,画红棋子
{
g.setColor(Color.red);
g.fillOval(20+i*30,40+j*30,20,20);
}
if(zuobiao[i][j]==2) //如果为2,画蓝棋子 {
g.setColor(Color.blue);
g.fillOval(20+i*30,40+j*30,20,20); }
五、总结体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.
回顾起课程设计,至今我仍感慨颇多,的确,在这一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

通过课程设计之后,把以前所学过的知识重新温故。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后,对给过我帮助的所有同学和指导老师表示忠心的感谢!。

相关文档
最新文档