JAVA围棋程序设计实训报告
围棋程序设计综合报告
围棋程序设计综合报告作者:赵翔学号:201103010002专业:机械工程及其自动化一、围棋软件设计思想首先,我将软件的功能细化,细化到单个功能,直到可以通过一个函数较轻松地实现为止。
然后,从函数功能构想函数结构,通过函数调用将不同功能组合起来,从而完成软件要求的功能。
二、程序设计方案下面我由main的调用顺序,来阐述各个函数的详细信息。
Link:用于构造链表,输入值为上一个结点,返回新建的结点。
输入为空,则返回链表头;Begin:将链表头赋值,即构建棋盘;Print:打印输入的棋局,可在链表记录的位置输出两个小翅,利用了转义字符;Cheese:其实是chess,就是下棋,输入空的棋局,步数统计、黑白子统计地址,和用户输入的落子位置,可将棋盘下好,并将参数传给make_scene,返回后,将统计值完成;Make_scene:完成棋局,判断下子位置的上下左右是否有对方的子,若有,进入search,返回后,将去掉的子数减去,将删除序列中子删去;Search:对输入的子上下左右进行搜索,若均非空,计入删除序列,对上下左右与本子相同的子,判断是否已搜过,若否,递归输入本函数,返回总子数,并通过地址返回删除序列;Save:用fwrite将结构体中保存的棋局和两个整形数写入文件;Lord:其实是load,读取之前保存的文件到新建的链表,之前先将目前的链表全部释放,然后将独到的链表至于最后一步,顺便统计步数统计、黑白子统计,以便用户继续下棋,或者复盘也可以;Help:对软件的部分行为进行解释,帮助用户更好的使用;Rescene:从头查看每一步棋局,利用结构体双向指针操作,可以很方便的实现该功能;除了以上函数,菜单中还有悔棋、结束、退出操作,由于过于简单,没有专门构造函数,退出直接引用系统函数,结束加到了循环条件里,对结果的判断直接用了下棋中对子数的统计,悔棋操作就是将链表回到之前一步,释放现在的空间。
三、结果分析与体会通过做函数,我充分认识到程序规范性的重要性。
Java程序设计实训总结[优秀范文五篇]
Java程序设计实训总结[优秀范文五篇]第一篇:Java程序设计实训总结Java项目开发实训总结设计人:张**班级和班内序号:软件项目选题意义:选这个题目的原因:目前,随着国外的网上书店的盛行,在国内也出现了一些网上书店,如当当网、卓越网、以及china-pub等等。
互联网为这些网上书店的发展提供了无限的空间,这些网上的虚拟书店同实体书店一样可以容纳无限的图书或图样以及内容。
“这些网上书店的实现使用了当今世界最先进的计算机技术和网络技术,迅速的成为国内知名图书网站”。
作为计算机专业的学生,对于完成电子商务的计算机技术更需要切实掌握,以便在社会上更好的使用自己的所学技能,因此研究有关电子商务的计算机技术成为了极为有意义的课题。
项目名称:网上书店自我评价:优秀所开发系统的使用价值和应用领域:可以使用户方便的购买图书,为用户节省更多的时间。
应用领域是向广大群众开放,不过需用户注册后才能购买,还需用户会基本的电脑操作。
项目设计情况:项目的设计使用工具有NetBeans IDE 7.3和SQL Server Management StudioR2,技术有JSP技术,包括struts和Hibernate。
删除图书信息等功能。
项目设计中主要完成哪些任务?项目的设计已完成预期目标!项目的优势和缺陷:优势:本项目采用J2EE中的struts和Hibernate技术,J2EE代表的是一种前沿技术,它使得复杂的多层结构应用系统开发变得容易。
J2EE 建立在己取得极大成功的Java语言之上,采用J2EE规范能有效地进行软件复用,提高开发人员的效率,降低软件的开发和维护成本,提高软件的质量,控制所构建系统的复杂性。
J2EE规范将使得Java在企业计算中的地位得到加强,为基于Java 的应用系统提供了一个框架,和目前的许多系统和模型相比,J2EE具有许多优越性。
种种迹象表明,J2EE有可能成为多层结构分布式应用系统的服务器端构件模型的首要选择。
五子棋报告-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程序设计实训报告Java程序设计实训报告一、实训目标本次Java程序设计实训旨在让学生掌握Java语言的基础知识和编程技能,能够独立完成Java程序的设计和开发,提高学生的实际编程能力和解决问题能力。
二、实训内容本次Java程序设计实训包括以下内容:1. Java基础语法和面向对象编程的基本概念。
2. Java程序的运行和调试方法。
3. Java标准库的使用和常用数据结构的实现。
4. 常用算法的实现和优化。
5. Java GUI编程和多线程编程的基本概念。
三、实训流程1. 熟悉Java基础语法和面向对象编程的基本概念,在Eclipse 或IntelliJ IDEA等集成开发环境中编写HelloWorld程序,理解程序结构和运行方式。
2. 学习Java标准库的使用和常用数据结构的实现,实现常用算法,如排序、查找等。
掌握调试和优化技巧,以提高程序性能。
3. 学习Java GUI编程和多线程编程的基本概念,实现基本的窗体应用程序和多线程程序,例如计算器、文本编辑器等。
4. 综合应用所学知识,开发一个较为复杂的Java程序,如网络聊天室、小游戏等。
5. 学习Java框架,例如Spring、Hibernate等,实现web应用的设计和开发。
四、实训总结通过这次Java程序设计实训,我加深了对Java语言的理解和认识,学会了使用Java标准库进行编程,掌握了常用算法的实现和优化技巧,学会了Java GUI编程和多线程编程的基本概念,能够独立开发基本的窗体应用程序和多线程程序。
同时,我还学习了Java框架,并能够应用框架进行web应用的设计和开发。
在实训过程中,我遇到了很多困难和问题,但通过查阅资料、询问老师和同学等方式,最终解决了这些问题,加深了对Java程序设计的了解和认识,也提高了我的解决问题的能力。
总的来说,这次实训让我受益匪浅,我会继续学习和探索Java程序设计领域,提高自己的编程水平。
JAVA程序设计五子棋制作实训
JAVA程序设计五子棋制作实训五子棋是一种非常古老而有趣的棋类游戏,它的规则简单,但又充满了智慧的机会。
在这个实训中,我们将使用JAVA编程语言来制作一个五子棋游戏程序。
首先,我们需要创建一个棋盘类,来表示游戏的棋盘。
棋盘可以用一个二维数组来表示,每个数组元素可以是一个空格、一个黑子或一个白子。
我们可以使用0表示空格,1表示黑子,-1表示白子。
棋盘类还需要提供方法来判断是否有玩家赢得了游戏,以及判断当前位置是否为空。
接下来,我们需要创建两个类来表示黑子和白子。
这两个类都可以拥有一个坐标属性来表示它们在棋盘上的位置,还可以拥有方法来判断它们是否赢得了游戏。
然后,我们需要创建一个游戏类,来控制整个游戏的进行。
游戏类需要实例化一个棋盘对象和两个玩家对象。
游戏类提供方法来让玩家交替落子、判断游戏是否结束以及输出棋盘的状态。
最后,我们可以创建一个主类,来启动游戏。
在主类中,我们可以创建游戏对象并调用游戏的开始方法来开始游戏。
下面是一个示例代码,用于实现上述的五子棋游戏程序:```javapublic class Chessboardprivate int[][] board;public Chessboard(int size)board = new int[size][size];}public boolean isOccupied(int x, int y)return board[x][y] != 0;}public boolean isWin(int x, int y, int player)//判断该位置是否4子连珠,即判断水平、垂直和两个对角线方向上是否有连续的4个同色棋子//略}public void prin//输出棋盘的状态//略}public class Playerprivate int x;private int y;public Player(int x, int y)this.x = x;this.y = y;}public void move(Chessboard board)//玩家落子的逻辑//略}public boolean isWin(Chessboard board) return board.isWin(x, y, 1);}public class Gameprivate Chessboard board;private Player player1;private Player player2;public Game(int size)board = new Chessboard(size);player1 = new Player(0, 0);player2 = new Player(size - 1, size - 1); }public void starint turn = 1;while (true)Player currentPlayer = (turn == 1) ? player1 : player2; currentPlayer.move(board);board.print(;if (currentPlayer.isWin(board))System.out.println("Player " + turn + " wins!"); break;}turn = -turn;}}public class Mainpublic static void main(String[] args)Game game = new Game(15);game.start(;}```。
JAVA程序设计五子棋制作实训
《JAVA程序设计》实训报告实训题目: 五子棋游戏制作专业:计算机网络班级: 14网络(1)班姓名:指导教师:2015 年 12 月 31日目录1.实训目的 (3)2.实训题目描述和要求 (4)2.1 实训题目描述 (4)2.2 实训题目要求 (5)3.实训报告内容 (6)3.1 需求分析 (6)3.2 概要设计 (7)3.3 详细设计 (8)3.4 编码 (9)3.5 测试 (26)4.总结 (31)实训指导教师评语 (34)1.实训目的随着经济社会的迅速发展,人们生活水平有了很大的提高,人们的生活观念也发生了巨大的改变。
高品质的生活、现代化得生活方式成为人们共同追求的目标;休闲、娱乐性活动作为时尚生活中的一部分,而被大多数的人所追捧。
棋类项目作为一种智力型项目,可以益智健心、修身养性,也可以满足人们对于娱乐和休闲的新需求。
一些项目比如五子棋等等,由于项目本身互动的特点,一直被人们所喜爱,因此得以生存和发展,成为许多人喜爱的休闲娱乐性棋类项目。
而今,以网络技术为核心和计算机技术的现代网络技术已经在现实生活得到了十分的广泛的使用。
休闲类网络游戏集合了益智性、趣味性、互动性、娱乐性于一体,已经成为多数人群的选择的休闲方式。
《Java程序设计》课程实训,学生可以将理论知识与具体实践相结合,巩固对JAVA相关方法和概念的理解,通过实训单机版五子棋游戏的编程,加深对所学知识的理解和应用。
如: 通过实训能够结合实例进一步理解面向对象程序设计的基本概念,掌握程序设计的基本方法和技巧,灵活的使用包,进一步的理解接口,熟练的掌握在接口中对事件的实现。
深入理解和灵活运用面向对象程序设计的基本特性,培养良好的程序设计风格,提高抽象思维、逻辑思维的能力。
并且让学生能够基本使用实训软件eclipse,以及安装JDK 和环境变量的配置。
通过本次实训,可以开拓思维,增强编程思想,为深入学习JAVA打下良好基础,在学完此门课程后,能使用Java开发小型应用程序。
五子棋程序实习报告
一、实习背景随着计算机技术的不断发展,编程已成为现代生活的重要组成部分。
为了提高自己的编程技能,培养自己的实际动手能力,我选择了五子棋程序设计作为实习项目。
五子棋是一种古老的中国传统棋类游戏,具有极高的趣味性和挑战性。
通过本次实习,我学习了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开发五子棋游戏。
主要完成了人机对战和玩家之间联网对战2个功能。
网络连接部分为Socket编程应用,客户端和服务器端的交互用Class Message定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,及错误处理。
服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。
在人机对弈过深度搜索和估值模块,来提高电脑棋手的智能。
分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑AI方案,如递归算法、电脑学习等。
算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。
关键词:围棋,信息自动化,游戏,javaABSTRACTAs a chess athletic sports, the folk very popular, to familiar with renju rules and skills, and research simple artificial intelligence, decided to use Java development renju game. Main pleted the man-machine against and between players networking against two functions. Network connection parts for Socket programming application, the client and the server interaction with scale-up macro definition, have very good scalability, the client is responsible for maintenance and collect user interface input, and error handling. Server maintenance, online users of the basic information and any two against the user board information, dynamic maintenance user list. In the man-machine right through the depth search and valuations module, to improve the intelligent puter player. Analyses the influence of valuation module precision of several elements, and puts forward some measures of improving precision, and they search number of nodes in the parison, in these algorithm is analyzed on the basis of some improve puter AI scheme, such as recursion algorithm, puter learning, etc. The algorithm for help to understand the program structure, strengthen the logical thinking ability, in other artificial intelligence also have very great reference role.Keywords: information automation , games , Java目录ABSTRACTII目录III第1章引言11.1背景 (1)1.2课程设计容 (2)1.3任务分工3第2章围棋对弈系统42.1围棋概述 (4)2.1.1围棋定义 (6)2.1.2 开发围棋的任务及目的 (7)2.2主要系统介绍 (8)第3章围棋对弈系统的设计93.1系统需求分析10用户登陆界面图103.2系统开发及运行环境 (12)3.3系统主要功能要求 (12)3.4.系统总体结构 (13)第4章围棋对弈系统的具体实现144.1界面设计144.1.1用户登陆界面图144.1.2用户注册界面图164.1.3 系统主界面20第5章结束语25致25参考文献 (25)第1章引言1.1 背景围棋是一种智力游戏,起源于中国。
java实训报告总结与心得(优秀5篇)
java实训报告总结与心得(优秀5篇)java实训报告总结与心得篇1在这次Java实训中,我深入了解了Java编程语言及其面向对象编程的精髓。
通过本次实训,我收获颇丰,不仅加深了对Java语言的理解,也提高了自己的编程能力。
在实训过程中,我遇到了许多问题。
但通过仔细查阅资料和向老师请教,我得以一一解决。
这次实训使我对Java的特性,如封装、继承、多态等有了更深入的理解。
同时,我也熟悉了Java常用的类库和使用方法。
在未来的学习过程中,我将继续努力,争取在Java编程领域取得更大的进步。
我还会加强自己的解决问题的能力,不断提高自己的编程水平。
总之,这次实训对我来说是一次宝贵的经历。
它让我更深入地了解了Java 编程,也让我对自己的学习能力和解决问题的能力有了更大的信心。
java实训报告总结与心得篇2时间过得真快,转眼间,在厦门万策实训基地短短20天的实训生活已悄然过去几天了,然而实训的过程还历历在目。
实训期间,让我学到了很多东西,不仅使我在理论上对IT领域有了全新的认识,在实践能力上也得到了提高,真正地做到了学以致用,更学到了很多做人的道理,对我来说受益匪浅。
除此以外,我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。
这一次亲身感受到理论与实际的相结合,让我大开眼界。
也是对以前所学知识的一个初审吧!这次实训对于我以后学习、找工作也真是受益匪浅,在短短的20天中相信这些宝贵的经验会成为我今后成功的重要的基石。
作为一名大三的学生,经过差不多三年的在校学习,对程序设计有了理性的认识和理解。
在校期间,一直忙于理论知识的学习,只能偶尔练习一些小程序,没有机会也没有相应的经验来参与项目的开发。
所以在实训之前,软件项目开发对我来说是比较抽象的,一个完整的项目要怎么来分工以及完成该项目所要的基本步骤也不明确。
而经过这次实训,让我明白一个完整项目的开发,必须由团队来分工合作,并在每个阶段中进行必要的总结与论证。
围棋实训总结报告
一、实训背景随着人工智能技术的飞速发展,围棋这一古老的智力游戏也迎来了新的挑战和机遇。
为了紧跟时代步伐,提高自身的综合素质,我们学院组织了一场为期两周的围棋实训活动。
通过这次实训,我们不仅学习了围棋的基本规则和技巧,还深入了解了围棋文化,锻炼了思维能力和团队协作精神。
二、实训内容1. 围棋基础知识学习实训的第一阶段,我们重点学习了围棋的基本规则、术语、布局、中盘和残局等基础知识。
通过观看教学视频、阅读教材以及与教练的互动,我们对围棋有了初步的认识。
2. 实战演练在掌握了基础知识后,我们开始了实战演练。
实训期间,我们进行了多次对弈,通过与不同水平同学的较量,我们不断积累经验,提高自己的实战能力。
3. 围棋文化探讨实训过程中,我们还深入探讨了围棋文化。
通过学习围棋的历史、哲学思想以及围棋与儒、道、佛等文化的渊源,我们对围棋有了更深刻的理解。
4. 团队协作训练围棋实训不仅仅是个人技能的提升,更是一次团队协作的锻炼。
在实训中,我们通过组队进行比赛,学会了如何在团队中发挥自己的优势,共同为胜利而努力。
三、实训成果1. 技能提升通过实训,我们的围棋水平得到了显著提高。
在实战演练中,我们学会了如何运用战术,如何根据对手的棋型进行应对,使自己的棋力得到了锻炼。
2. 思维拓展围棋是一种极具挑战性的智力游戏,它要求玩家具备敏锐的观察力、严谨的逻辑思维和灵活的应变能力。
通过实训,我们的思维能力得到了拓展,学会了从不同角度看待问题。
3. 文化素养提升围棋文化博大精深,实训过程中,我们了解了围棋与中华文化的密切关系,提高了自己的文化素养。
4. 团队协作能力增强在实训中,我们学会了如何与队友沟通、协作,共同为团队的目标而努力。
这种团队协作精神将在今后的学习和工作中发挥重要作用。
四、实训体会1. 持之以恒,不断进步围棋是一项需要长期积累的技艺,实训让我们认识到,只有持之以恒地学习和练习,才能不断提高自己的水平。
2. 虚心求教,勇于挑战在实训过程中,我们遇到了很多困难和挑战,但通过虚心求教、勇于挑战,我们最终克服了困难,取得了进步。
“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语言经过近20年的完善和发展,其功能日益强大,应用的领域越来越广。
从手机等手持设备中的程序到各类企业级应用程序,都可以看到java的身影。
Java已经成为世界级编程语言,是编程人员开发时首选的工具。
它也是面向对象程序设计语言中的代表,更加全面的体现了面向对象的思想。
Java具有分布式、可移植、高性能、多线程等特点,使得它的运用范围非常广泛。
Java语言易学易用,对学习者掌握技能,开阔思路有很大的帮助。
《Java面向对象程序设计》是计算机相关专业的必修专业基础课程,其实践性和应用性很强。
整个实训课程的教学内容从应用角度出发,在理论和实践上掌握java工程开发理念、类的组织、类的结构关系,面向对象中流的使用等技术。
使学生能独立设计基于Eclipse控制台开发的小型系统。
在熟悉java的基本知识的时,也是对java语言中的类、对象、继承等重要概念的运用实践。
这次实训主要选择编写围棋程序,用java开发这个程序,对于java的学习者是一个很好掌握知识的过程,而且也具有一定的挑战性,能够很好地激发学生的兴趣和探索欲,培养学生发现问题和解决问题的能力。
2014年6月11日目录一、实训目的 (1)二、功能分析 (1)三、系统设计 (2)五、测试数据及运行结果 (3)六、源程序 (4)七、总结 (6)一、实训目的在java中,图形界面作为用户与程序交互的窗口,是软件开发中的一项非常重要的工作。
此次的编写围棋程序的实践,可以说是对图形用户界面中每一小节知识内容的整合,其中涉及到了很多java的基础知识,在巩固基础知识点的同时,还扩展了部分知识点,是对书本所介绍的内容的一个延伸。
这次的实践也是对Java中图形用户界面中零散的知识点的整合,在了解各个知识点的同时,并熟练的掌握图形组件的使用,加深对理论教学内容的理解和掌握,使学生能较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,并在实践应用方面打下一定的基础。
java课程设计五子棋实验报告
java课程设计五子棋实验报告Java课程设计五子棋实验报告一、实验目的本次实验主要目的是运用Java编程语言,设计并实现一个简单的五子棋游戏,通过实践掌握Java编程基础知识和面向对象编程思想。
二、实验内容本实验要求设计并实现一个五子棋游戏,主要功能包括:1. 实现双人对战功能,允许两个玩家交替下棋;2. 实现判断胜负功能,当某一方连成五子时,游戏结束,显示胜利者;3. 实现悔棋和重新开始的功能。
三、实验原理1. 界面设计界面设计采用Java Swing框架,主要包括棋盘和控制面板两部分。
棋盘使用JPanel实现,通过绘制线条和圆形实现棋盘和棋子的显示。
控制面板使用JPanel和JButton实现,提供重新开始和悔棋功能。
2. 游戏逻辑游戏逻辑主要包括下棋和判断胜负两个部分。
下棋功能通过记录当前玩家和棋子位置实现,判断胜负则通过遍历棋盘上的所有棋子,判断是否满足连成五子的条件。
3. 实现悔棋和重新开始的功能悔棋功能主要通过记录每一步棋的位置和玩家来实现,重新开始则需要清空棋盘和游戏记录。
四、实验步骤1. 设计并实现界面,包括棋盘和控制面板;2. 实现游戏逻辑,包括下棋和判断胜负;3. 实现悔棋和重新开始的功能;4. 进行代码测试和调试,确保程序能够正常运行。
五、实验结果经过测试,程序能够正常运行,实现了双人对战、判断胜负、悔棋和重新开始的功能。
六、实验总结本次实验通过设计并实现一个简单的五子棋游戏,巩固了Java编程基础知识和面向对象编程思想,同时也学习了Swing框架的使用。
在实现过程中也遇到了一些问题,如棋子位置的计算、胜负判断的实现等,通过查阅资料和调试最终得以解决。
总体来说,本次实验收获颇丰,对Java编程有了更深入的了解和认识。
2024年java实训报告总结(2篇)
2024年java实训报告总结____年Java实训报告总结一、引言随着信息技术快速发展,Java作为一种广泛应用的编程语言,具有良好的跨平台性、高效性和可靠性,在软件开发领域得到了广泛应用。
为了提高学生对Java编程语言的掌握程度和实际应用能力,____年我们组织了一次Java实训课程。
本报告将对本次实训课程进行总结和分析。
二、实训内容1. 实训目标本次实训的目标是培养学生熟悉Java编程语言的语法和特性,掌握常用的Java开发工具和框架,能够使用Java开发简单的应用程序和Web应用。
2. 实训内容(1)Java基础知识学习:学生通过自学和教师指导,了解Java 的语法、数据类型、运算符、流程控制、数组等基础知识,并通过编写简单的Java程序加深理解。
(2)Java面向对象编程:学生通过学习类、对象、继承、封装、多态等面向对象编程的概念和原则,掌握面向对象编程的基本技巧和思维方式。
(3)Java集合框架与IO操作:学生学习Java集合框架的使用方法,掌握各种集合类的特点和适用场景,并学习Java的IO操作,了解文件的读写和序列化与反序列化。
(4)Java多线程编程:学生学习Java多线程编程的基本概念和原理,并通过实践掌握线程的创建、同步和通信等技术。
(5)Java网络编程:学生学习Java网络编程的基本知识,了解TCP/IP协议、Socket编程,能够编写简单的网络应用程序。
三、实训过程1. 教学方法本次实训采用了理论教学与实践相结合的教学方法。
教师通过讲解和演示示范,引导学生理解Java编程的基本原理和技巧;学生通过实践编写程序和解决问题,加深对知识的理解和掌握。
2. 实训工具本次实训使用了Eclipse开发环境和Java SE Development Kit (JDK)作为实际开发工具和平台。
学生通过使用这些工具,完成实际的编码、调试和运行任务。
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表示下的是黑棋还是白棋。
java实训个人总结报告5篇
java实训个人总结报告5篇篇1一、引言本次Java实训旨在提升个人在Java编程语言方面的能力,通过系统地学习和实践,加深对Java基础语法、面向对象编程、常用数据结构与算法、网络编程、数据库操作等方面的理解和掌握。
在为期一个月的实训中,我积极参与,认真完成每一个任务,不仅巩固了理论知识,还提高了实际操作能力。
二、主要收获1. 深入理解了Java基础语法:通过学习Java的基础语法,如变量、数据类型、运算符、流程控制等,我能够熟练编写基本的Java程序,为后续的学习奠定了坚实的基础。
2. 掌握了面向对象编程的思想:Java是一种面向对象的语言,通过学习和实践,我逐渐掌握了面向对象编程的思想,包括类的定义、对象的创建、封装、继承、多态等概念,能够运用这些思想来解决实际问题。
3. 熟悉了常用数据结构与算法:在Java中,提供了丰富的数据结构和算法库,通过学习这些内容,我能够熟练运用数组、列表、集合等数据结构,并掌握了一些常用的排序、查找等算法。
4. 了解了网络编程的基本原理:在网络编程方面,我学习了Java 中的Socket编程、HTTP通信等基本原理,并能够运用这些原理来编写简单的网络应用程序。
5. 学会了数据库操作的基本方法:在数据库操作方面,我学习了Java中的JDBC技术,并能够运用这种技术来连接数据库、执行SQL 语句、处理结果集等基本操作。
三、个人感受通过本次Java实训,我不仅巩固了理论知识,还提高了实际操作能力。
在学习的过程中,我感受到了Java语言的强大和灵活,同时也意识到了自己的不足和需要改进的地方。
在未来的学习和工作中,我会继续努力,不断提高自己的编程能力。
四、存在的问题及改进措施在本次Java实训中,我发现自己在某些方面还存在不足,如对一些高级特性和优化技巧的了解不够深入,在实际应用中还需要进一步学习和掌握。
此外,在编程实践中,我还需要加强自己的代码规范性和可读性,避免出现一些低级错误。
2018-围棋教学见习报告-实用word文档 (7页)
二、功能分析
这个围棋程序主要分为棋谱和棋盘。
棋谱部分:编写了白棋和黑棋的落棋和吃子等动作,
设置悔棋功能,双击棋子即可完成,单击“重新开局”按钮还可以重新开始下棋。 棋盘部分:它是围棋程序的主类,完成了绘制棋谱,编写白棋和黑棋的落棋、吃子、悔棋功能,并保存所有已下的棋子,包括在棋盘上所有的棋子和被提掉时。
在Chessboard类中定义棋盘方格长度及数目,棋子的直径,棋盘上所有的棋子,棋盘的的高度以及宽度等,绘制了棋盘外观并画出了棋盘。ControlPanel为控制面板类,其中包含了标签、手数、悔棋按钮、重新开始按钮。类Chesspoint所实现的功能为获得实际的棋子位置。Chess类是在编写完棋子和棋盘后,利用JFrame将棋盘和棋子显示出来。Chess也是围棋程序的主类。
一、实训目的
在java中,图形界面作为用户与程序交互的窗口,是软件开发中的一项非常重要的工作。此次的编写围棋程序的实践,可以说是对图形用户界面中每一小节知识内容的整合,其中涉及到了很多java的基础知识,在巩固基础知识点的同时,还扩展了部分知识点,是对书本所介绍的内容的一个延伸。
这次的实践也是对Java中图形用户界面中零散的知识点的整合,在了解各个知识点的同时,并熟练的掌握图形组件的使用,加深对理论教学内容的理解和掌握,使学生能较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,并在实践应用方面打下一定的基础。要求学生全面深入理解和熟练掌握的基础下,能够分析和解决类似的问题,具有良好的编程风格。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、系统设计
1、棋盘外观布局的设置 2、棋子大小数量的设计 3、下棋各种动作规则的设计
四、详细设计 1、棋盘和棋子
首先对棋盘界面的设计,包括基本的棋盘的大小、颜色,按钮的个数和位置, 各种标签的大小位置等一些组件的布局。
然后对棋子的设计,颜色分为黑白两色,形状为扁圆形体。根据正式比赛中 的规则,将黑棋数量设为181,白棋180。
这次实训面对一个陌生的题目和要求,需要的不仅是各项知识的掌握,还有 足够的耐心和严谨。我也在编程、改错的过程中体会到了足够的乐趣,也让我知 道了一个编程人员要具有良好的心里素质,那就是冷静思考和专心致志。
6
this.setTitle("围棋程序"); this.setLayout(new BorderLayout()); this.setSize(qipan.getSize()); this.add(qipan, "Center"); this.setResizable(false); this.setLayout(new BorderLayout()); this.setSize(550, 490); this.setVisible(true); } // 得到宽数值 public int getWidth() { return qipan.getWidth(); 4
一、实训目的
在 java 中,图形界面作为用户与程序交互的窗口,是软件开发中的一项非常 重要的工作。此次的编写围棋程序的实践,可以说是对图形用户界面中每一小节 知识内容的整合,其中涉及到了很多 java 的基础知识,在巩固基础知识点的同 时,还扩展了部分知识点,是对书本所介绍的内容的一个延伸。
这次的实践也是对 Java 中图形用户界面中零散的知识点的整合,在了解各个 知识点的同时,并熟练的掌握图形组件的使用,加深对理论教学内容的理解和掌 握,使学生能较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及 技巧,为学生综合运用所学知识,并在实践应用方面打下一定的基础。要求学生 全面深入理解和熟练掌握的基础下,能够分析和解决类似的问题,具有良好的编 程风格。
//取得黑白棋子的位置 public class Chesspoint {
public static int black=0,white=1; int x,y; int color; public Chesspoint(int i,int j,int c) {
x=i; y=j; color=c; } public String toString() {// 储存 x,y 位置和颜色 String c=(color==black?"black":"white"); return "["+x+","+y+"]:"+c; } } //取得连在一起的所有已死的子 public Vector allDead(Chesspoint q) { Vector v = new Vector();
return new Vector(); Vector around = around(qizi); for (int j = 0; j < around.size(); j++) {
Chesspoint a = (Chesspoint) (around.elementAt(j)); if (a.color != qizi.color)
2014 年 6 月 11 日
目录
一、实训目的................................................................................................................... 1 二、功能分析................................................................................................................... 1 三、系统设计................................................................................................................... 2 五、测试数据及运行结果................................................................................. 3 六、源程序.......................................................................................................................... 4 七、总结................................................................................................................................. 6
2
五、测试数据及运行结果 1、运行界面
开局时,双方还未落子的运行界面,如图 5.1 所示
图 5.1 运行界面图
2、运行界面
开局后双方落子的运行界面,如图 5.2 所示
图 5.2 运行界面
3
3、悔棋
开局后,白子悔棋后的运行界面,如图 5.3
图 5.3 运行界面
六、源程序
主程序如下:
import java.awt.*; import javax.swing.JFrame; public class Chess extends JFrame { Chessboard qipan = new Chessboard();; // 初始化外观 public Chess() {
} public int getHeight() {
return qipan.getHeight(); } public static void main(String[] args) {
//开始下棋程序 Chess Igo = new Chess();} }
//绘制棋盘外观 public Chessboard() { gridNum = _gridNum; gridLen = _gridLen; chessmanLength = gridLen * 9 / 10; size = 2 * left + gridNum * gridLen; addMouseListener(new PutChess()); addMouseMotionListener(new MML()); setLayout(new BorderLayout()); controlPanel = new ControlPanel(); setSize(getWidth(), size); add(controlPanel, "West"); startGame(); }
此次实训同时也考查了学生的综合运用能力和逻辑分析能力,还提高了学生 自学的能力和独立工作的能力,并培养了严谨的态度和遇到问题努力解决不退缩 的精神。是对学生进行设计分析、操作、理解、观察、归纳能力的一个提高。对 本课程的学习能力和知识的掌握起到了一个积极的推进作用。
二、功能分析
这个围棋程序主要分为棋谱和棋盘。 棋谱部分:编写了白棋和黑棋的落棋和吃子等动作, 设置悔棋功能,双击棋子即可完成,单击“重新开局”按钮还可以重新开始下棋。 棋盘部分:它是围棋程序的主类,完成了绘制棋谱,编写白棋和黑棋的落棋、 吃子、悔棋功能,并保存所有已下的棋子,包括在棋盘上所有的棋子和被提掉时。 在 Chessboard 类中定义棋盘方格长度及数目,棋子的直径,棋盘上所有的棋 子,棋盘的的高度以及宽度等,绘制了棋盘外观并画出了棋盘。ControlPanel 为控制面板类,其中包含了标签、手数、悔棋按钮、重新开始按钮。类 Chesspoint 所实现的功能为获得实际的棋子位置。Chess 类是在编写完棋子和棋盘后,利用 JFrame 将棋盘和棋子显示出来。Chess 也是围棋程序的主类。
continue; if (v.indexOf(a) < 0)
v.addElement(a); } } if (origsize == v.size()) break; else count = origsize; } return v;}
七、总结
经过一周的 java 实训。虽然实训的时间不长,但我受益匪浅,对于这门课 程的学习有了更加深刻的认识。Java 一直学的是课本知识,所以实训对于我们 来说是必须要学会熟练操作的。在实训的过程中,我学会了如何将书本知识运用 到实践中去,在编程的过程中慢慢成长。我遇到了很多问题,很多知识点都是我 没有学过的,所以只能不断的查找资料,解决难题。在这个过程中让我学会了如 何将书本知识运用到实践中去,在编程的过程中慢慢成长。
陕西国际商贸学院
Java 实训报告
专业: 信息管理与信息系统 班级: 姓名: 学号: 指导老师:
前言
由于计算机技术不断发展,尤其是软件开发的发展,使得计算机软件的使用 已经渗透到各行各业,因此社会对软件开发人才需求不断增强。Java 语言经过 近 20 年的完善和发展,其功能日益强大,应用的领域越来越广。从手机等手持 设备中的程序到各类企业级应用程序,都可以看到 java 的身影。Java 已经成为 世界级编程语言,是编程人员开发时首选的工具。它也是面向对象程序设计语言 中的代表,更加全面的体现了面向对象的思想。Java 具有分布式、可移植、高 性能、多线程等特点,使得它的运用范围非常广泛。Java 语言易学易用,对学 习者掌握技能,开阔思路有很大的帮助。《Java 面向对象程序设计》是计算机相 关专业的必修专业基础课程,其实践性和应用性很强。