(五子棋)课程实训任务书
- 格式:doc
- 大小:514.50 KB
- 文档页数:4
《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表示下的是黑棋还是白棋。
学校代码: 10128学号:************课程设计说明书题目:五子棋****:**学院:理学院班级:信计13-1****:***二〇一六年一月二十一日内蒙古工业大学课程设计(论文)任务书课程名称:面向对象的程序设计学院:理学院班级:信计13-1 学生姓名:杨震学号: 201320905020 指导教师:白莲花摘要随着经济的发展,社会竞争的激烈,现在社会进入了竞争的时代。
上班族为了完成公司业务,每天超负荷的工作;学生为了不落后他人每天早起晚睡不断地学习,压力巨大。
所以为了缓解大家的压力,使大家在工作、学习之余娱乐一下,活跃大脑,提高工作、学习效率,因此益智性游戏越来越受人们的关注,五子棋作为益智类游戏之一,倍受人们的喜爱,所以对于五子棋的开发也有了很多关注。
C++语言即是进行软件开发的直接工具,又是“数据结构”、“操作系统”、“编译原理”以及其他相关课程的先修课程,因此,在整个教学体系中占据十分重要的地位[1]。
本文主要讲的是利用VC++6.0软件开发一个界面简洁、直观、实用性比较高的AI功能的五子棋游戏,游戏程序实现人人对弈,在对弈过程中当用户和用户比赛时电脑利用搜索算法计算出落子的最佳位置,是先人人对弈,而且程序能够完成具有重新开始、认输、提示该轮到哪一方下棋的、游戏、判断胜负、悔棋等功能。
关键词:人工智能;自动处理;五子棋目录第一章任务概述 (1)1.1问题概述 (1)1.2 需求分析 (1)第二章概要设计 (2)2.1功能设计 (2)2.2 程序结构 (2)2.3 基本流程 (3)第三章程序实现 (4)3.1主要变量及函数说明 (4)3.1.1 主要变量 (4)3.1.2 主要函数 (4)3.2 主要功能实现 (4)3.2.1棋盘类的声明 (4)3.2.2玩家类的声明 (4)3.2.3棋盘显示为方形 (5)3.2.4判断棋子显示位置是否合理 (5)3.2.5判断输赢 (5)第四章结果与总结 (6)4.1.运行过程及截图 (6)4.1.1棋盘初始化模块 (6)4.1.2输入错误提示 (8)4.1.3 结局判断模块 .............................. 错误!未定义书签。
五子棋程序实习报告一、实习背景及目的近期,我通过五子棋程序的实习,深入了解了五子棋的规则和算法,并成功编写了一个五子棋程序。
本次实习的目的是为了提高我的编程能力和逻辑思维能力,同时了解人工智能在棋类游戏中的应用。
二、五子棋规则及算法分析五子棋是一种两人对弈的棋类游戏,游戏的目标是在棋盘上形成连续的五个棋子。
棋盘通常为15×15的网格,每个玩家轮流在空格中放置自己的棋子。
五子棋的算法主要包括两种:一种是基于搜索的算法,如极大极小值搜索和启发式搜索;另一种是基于机器学习的算法,如蒙特卡洛树搜索和深度学习。
三、程序设计及实现在本次实习中,我选择了基于极大极小值搜索的五子棋算法,并使用Python语言进行程序设计。
程序的主要功能包括棋盘的显示、玩家的输入和计算机的智能下棋。
首先,我使用类来表示棋盘,每个棋盘对象包含一个15×15的二维数组,用于存储棋子的位置。
同时,我还定义了一个常量类,用于存储棋子的颜色和空格的表示。
接下来,我实现了一个玩家输入的类,玩家可以通过该类来选择下棋的位置。
为了简化输入过程,我使用了一个简单的文本界面,玩家只需输入坐标即可。
最后,我实现了一个计算机下棋的类,该类使用了极大极小值搜索算法。
具体实现过程如下:1. 将棋盘划分为多个可能的获胜区域,例如横线、竖线和斜线。
2. 对于每个获胜区域,计算计算机和玩家在该区域获胜的概率。
3. 使用极大极小值搜索算法,选择最优的落子位置。
四、实习心得通过本次五子棋程序的实习,我对五子棋的规则和算法有了更深入的了解,同时也提高了我的编程能力和逻辑思维能力。
在程序设计过程中,我遇到了很多问题,如棋盘的表示、搜索算法的实现等,通过查阅资料和不断调试,我最终成功解决了这些问题。
此外,通过本次实习,我也了解到了人工智能在棋类游戏中的应用。
目前,深度学习等算法在棋类游戏中取得了显著的成果,例如AlphaGo在围棋领域的突破。
未来,我相信人工智能将在更多棋类游戏中发挥重要作用。
五子棋人机对战设计任务书目录1.系统需求分析 ............................................................................................................... 错误!未定义书签。
2.总体设计 ....................................................................................................................... 错误!未定义书签。
3.详细设计 ....................................................................................................................... 错误!未定义书签。
4.系统调试 ....................................................................................................................... 错误!未定义书签。
5.使用说明 ....................................................................................................................... 错误!未定义书签。
6.编程体会 ....................................................................................................................... 错误!未定义书签。
一、实习背景随着科技的发展,我国的教育事业也在不断地推进。
为了更好地培养学生的创新精神和实践能力,我校开展了丰富多彩的课外实践活动。
其中,五子棋活动作为一种有益于学生身心健康、锻炼思维能力的活动,受到了广大师生的喜爱。
为了深入了解五子棋活动的开展情况,提高自身教学水平,我于本学期参加了五子棋实习活动。
二、实习目的1. 了解五子棋活动的起源、规则和发展历程,掌握五子棋的基本技巧。
2. 掌握五子棋教学的方法和策略,提高自身教学水平。
3. 通过实习活动,培养学生的团队协作精神、竞技意识和良好品质。
4. 丰富自己的业余生活,提高自己的综合素质。
三、实习过程1. 实习前期准备在实习开始前,我通过网络、书籍等多种途径,对五子棋进行了深入了解。
学习了五子棋的起源、规则、基本技巧等知识,为实习活动奠定了基础。
2. 实习阶段(1)参与教学活动在实习过程中,我担任了五子棋课程的助教,协助老师进行教学。
在老师的指导下,我了解了五子棋教学的基本流程,包括课堂导入、讲解规则、示范操作、学生练习、总结评价等环节。
(2)组织活动为了提高学生的兴趣,我组织了多次五子棋比赛。
在比赛中,我负责裁判工作,确保比赛的公平、公正。
同时,我还负责记录比赛结果,为优秀选手颁发奖品。
(3)课后辅导在课后,我主动为学生提供辅导,解答他们在学习中遇到的问题。
通过辅导,我发现学生们在五子棋学习过程中,普遍存在以下问题:① 规则理解不透彻;② 棋力水平参差不齐;③ 团队协作意识薄弱。
针对这些问题,我制定了相应的辅导方案,帮助学生提高棋艺。
3. 实习总结在实习过程中,我逐渐掌握了五子棋教学的方法和策略。
以下是我总结的一些经验:(1)注重规则讲解在五子棋教学中,首先要让学生了解游戏规则,这是提高棋艺的基础。
(2)因材施教针对学生的不同水平,制定相应的教学计划。
对于基础较差的学生,要注重基础知识的讲解;对于基础较好的学生,要引导他们进行实战演练。
(3)培养学生的团队协作意识在五子棋比赛中,鼓励学生互相学习、共同进步。
湖南工业大学课程设计任务书2015—2016学年第2 学期计算机与通信学院(系、部)计算机科学与技术专业计算机1502班级课程名称:面向对象程序设计设计题目:五子棋完成期限:自2016年6月13日至2016年6月19日共1周指导教师(签字):年月日系(教研室)主任(签字):年月日面向对象程序设计课程设计设计说明书五子棋起止日期: 2016年6月13日至 2016年6月18日学生姓名王回班级计算机1502学号15408100209成绩指导教师(签字)计算机与通信学院2016年 6 月 18日五子棋一、课题的介绍和课题的任务设计的课题名称:五子棋实现以下功能:功能1、模拟真实棋盘棋子功能2、模拟人与人对战下棋功能3、模拟实时胜负判断功能4、模拟棋局的存储与读取二、设计的要求具有动画功能(即图像能即时移动),能实现人与人进行简单的对玩,能实现简单的胜负判断三、系统的分析和系统中类的设计CWZQApp类作用:初始化应用程序及运行该程序的所需要的成员函数CWZQDoc类作用:存放应用程序的数据以及实现文件的保存,加载功能CMainFrame类作用:管理应用程序的窗口,显示标题栏,状态栏,工具栏等,同时处理针对窗口操作的信息CAboutDlg类作用:向导自动生成对话框类CWZQView类作用:管理视图窗口,在框架窗口中实现用户数据的显示和打印,存放添加的功能模块CWZQView类中的成员函数与数据成员:void Save(); //**** //保存文件void OnOpen() //打开文件void over(CPoint point);//**** //检查是否结束voidOnDraw(CDC* pDC) //画棋盘函数void OnLButtonUp(UINT nFlags, CPoint point)//模拟下棋函数HCURSOR hcursorwhite; //**** //两个鼠标HCURSOR hcursorblack; //****intwzq[19][19]; //**** //棋盘数组boolcolorwhite; //**** // colorwhite TRUE时白棋下,否则黑棋下CBitmapm_bmblack; //**** //棋子位图CBitmapm_bmwhite; //****void CWZQView::OnDraw(CDC* pDC) //构造棋盘,显示白棋以及黑棋GetDocument() //获取文档指针,在视图中显示文档内容CBrush //用于构造CBrush对象,然后传给需要画刷的CDC成员函数pDC->FillRect(myrect1,&mybrush1) // 画黑框线四、系统的实现及调试添加的功能:1.图标,光标以及位图的绘制程序运行开始鼠标在进入棋盘界面未放下棋子时变为类似棋子光标,此处需要描绘2种棋子光标:黑白鼠标Cursor以替换当前鼠标:IDC_CURSOR1 黑棋子IDC_CURSOR2 白棋子说明:由于下棋时我们必须把鼠标热点设置在中间,点击下图(图3-1-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)悔棋模块:编写一个方法,用于撤销上一步的落子操作。
C语言程序设计报告题目:五子棋班级:电气Q1041班人数:3人小组成员:周啸天、万广富、黄山奇指导老师:桂超目录第一章课程设计的目的和要求.........................................1.1课程设计的目的................................................1.2课程设计的要求................................................1.3课程设计的实验环境........................................... 第二章功能描述........................................................ 第三章总体设计........................................................3.1功能模块设计..................................................3.1.1任务执行流程图..........................................3.2数据结构设计...................................................3.2.1定义结构体...............................................322定义数组...................................................3.2.3全局变量.................................................3.3函数功能描述................................................... 第四章程序实现........................................................4.1源码分析.......................................................4.2运行结果及界面介绍............................................ 第五章后记............................................................第一章课程设计的目的和要求1.1 课程设计的目的1. 加深对C语言数据类型,运算,语句结构及其程序设计的基本方法理解和掌握;2. 熟练掌握流程图的绘制、程序设计文档的书写;3. 通过编写一个完整的程序,一方面可以检查我们这学期的学习情况,为以后的学习打下坚实的基础;4. 熟悉C语言游戏编程,掌握五子棋游戏开发的基本原理,从而为以后的程序开发奠定基础。
毕业设计(论文)任务书计算机与通信工程系专业班题目基于android的五子棋游戏程序开发任务起止日期: 2013年月日~ 2013年月日学生姓名学号指导教师(要求手写)教研室主任 2012年12月21日审查(要求手写日期)系主任 2012年12月26日批准(要求手写日期)一、毕业设计(论文)任务注:1. 此任务书由指导教师填写。
如不够填写,可另加页。
2. 此任务书最迟必须在毕业设计(论文)开始前一周下达给学生。
3. 此任务书可从城南学院网页教学管理区下载二、毕业设计(论文)工作进度计划表注:1. 此表由指导教师填写;2. 此表每个学生人手一份,作为毕业设计(论文)检查工作进度之依据;3. 进度安排请用“一”在相应位置画出。
三、学生完成毕业设计(论文)阶段任务情况检查表注:1. 此表应由指导教师认真填写。
阶段分布由各系自行决定。
2. “组织纪律”一档应按《长沙理工大学城南学院学生学籍管理办法》精神,根据学生具体执行情况,如实填写。
3. “完成任务情况”一档应按学生是否按进度保质保量完成任务的情况填写。
包括优点,存在的问题与建议4. 对违纪和不能按时完成任务者,指导教师可根据情节轻重对该生提出忠告并督促其完成。
四、学生毕业设计(论文)装袋要求:1. 毕业设计(论文)按以下排列顺序印刷与装订成一本(撰写规范见城南学院网页)。
(1) 封面 (2) 扉页(3) 毕业设计(论文)任务书 (4) 中文摘要(5) 英文摘要 (6) 目录(7) 正文 (8) 参考文献(9) 致谢 (10) 附录(公式的推演、图表、程序等)(11) 附件1:开题报告(文献综述) (12) 附件2:译文及原文影印件2. 需单独装订的图纸(设计类)按顺序装订成一本。
3. 修改稿(经、管、文法类专业)按顺序装订成一本。
4.《毕业设计(论文)成绩评定册》一份。
5.论文电子文档[由各系收集保存]。
学生送交全部文件日期学生(签名)(要求手写)指导教师验收(签名)(要求手写)。
课程实训报告
课程名称计算机系统综合实训
课题名称基于Android的五子棋游戏开发
专业计算机科学与技术
班级
学号
姓名
指导教师陈华光, 李远辉
2017年12 月日
湖南工程学院
课程实训任务书
课程名称计算机系统综合实训课题基于Android的五子棋游戏开发
专业班级
学生姓名
学号
指导老师陈华光,李远辉
审批
任务书下达日期2017 年12 月12 日
任务完成日期2018 年1 月日
一、设计内容与设计要求
1.设计内容:
在手机屏幕上设计一个五子棋游戏,屏幕有棋盘,可人与人对奕,人与机对弈。
双方交替下棋,如果某方在水平、垂直或45度方向有连续的5个棋子,就算胜利,结束比赛,提示游戏得到的分数。
2.设计要求:
(1)论述课题的性质、内容以及本次课程实训的目的和要求。
(2)说明Android系统对计算机软、硬件环境的基本要求,对Android应用程序作简要的说明。
(3)界面设计和游戏操作设计:界面要求美观和友好(可使用图片资源文件),使用手机键盘上的2个方向键控制方向,按照手机上的操作习惯进行设计。
(4)游戏核心数据结构设计
主要是界面控制信息:五子棋的位置信息,双方已经下棋子的具体位置。
逻辑控制信息主要双方交替下棋。
下棋子和处理, 棋子只能下到棋盘的指定位置(棋盘的格子上)并不能下到已经有棋子位置,
(5)胜负判断:双方每个已下点的3个方向判断它们是否构成五连、五连就胜利。
(6)编写代码、上机输入、调试、修改并运行通过。
(7)编写实训说明书。
说明书是总结性的技术文件,应全面叙述整个设计的内容及过程(可参考上述6条),发现的问题及解决方法等。
(8)源代码和参考书目应作为说明书的附录。
(9)说明书应采用A4纸张,文字说明不少于4000字。
说明书中应包括系统结构示意图。
二、进度安排
第十七周
星期三一天
星期五下午
第十八周星期一下午 2:30-6.00
星期二下午 2:30-6.00
星期三下午 2:30-6.00
星期四上午 8:00-12.00
星期五下午 2:30-6.00,
附:
课程实训报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
正文的内容:一、课程实训目的及要求;二、设计思路(需求分析、功能介绍、模块划分);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的源代码,要求对程序写出必要的注释)。
正文总字数要求在5000字以上(不含程序原代码)。