1、 课程设计(论文)任务书理 学 院 信息与计算科学 专 业 2012-2 班一、课程设计(论文)题目: 人机对弈五子棋游戏 二、课程设计(论文)工作:自 2015 年 6 月 23 日起至 2015 年 6 月 25 日止三、课程设计(论文) 地点: 5-205 四、课程设计(论文)内容要求:1本课程设计的目的(1)使学生掌握软件开发的基本工作流程; (2)巩固 JAVA 程序设计课程所学的内容; (3)培养学生的计算机思维能力以及合作的精神;(4)培养学生分析、解决问题的能力;(5)提高学生的科技论文写作能力。 2课程设计的任务及要求1)基本要求:(1)研究课程设计任务,并进行系统需求分析;
2、(2)对系统进行总体设计,分解系统功能模块,进行任务分配,以实现分工合作;(3)实现各功能模块代码; (4)系统组装,测试、完善系统。2)创新要求: 在基本要求达到后,可进行创新设计,如改进界面、增加功能或进行代码优化。3)课程设计论文编写要求(1)要按照书稿的规格打印誊写课程设计论文(2)论文包括封面、设计任务书(含评语)、摘要、目录、设计内容、设计小结(3)论文装订按学校的统一要求完成4)参考文献:(1)丁振凡,JAVA 语言程序设计,清华大学出版社(2)丁振凡,JAVA 语言程序设计实验指导与习题解答,清华大学出版社(3)http:/ 天数 地点系统总体设计 1 实验室软件设计及调试 1
3、 实验室答辩及撰写报告 1 实验室、图书馆学生签名: 2015 年 6 月 25 日课程设计(论文)评审意见(1) 课程设计过程(20 分):优( )、良( )、中( )、一般( )、差( );(2) 是否完成调试,系统运行效果(30 分):优( )、良( )、中( )、一般( )、差( );(3)回答问题(20 分):优( )、良( )、中( )、一般( )、差( );(4)课程设计报告(30 分):优( )、良( )、中( )、一般( )、差( );(5)格式规范性及考勤是否降等级:是( )、否( )评阅人: 职称:教授 2015 年 6 月 25 日人机对弈五子棋游戏设计摘要:近 些 年
4、 来 五 子 棋 游 戏 成 为 了 人 们 的 最 爱 , 游 戏 的 下 载 量 很 高 可 以 说 一直 排 在 前 几 位 , 也 是 人 们 日 常 生 活 中 放 松 娱 乐 的 最 爱 , 特 别 是 最 近IT 行 业 的发 展 , 人 工 智 能 的 实 现 , 移 动 客 户 端 的 发 展 和 普 及 为 我 们 五 子 棋 游 戏 的 发展 带 来 了 新 的 生 机 , 新 的 高 潮 , 人 工 智 能 与 五 子 棋 的 完 美 结 合 是 五 子 棋 的又 一 项 重 要 发 展 , 而 我 们 现 在 开 发 的 人 机 对 弈 更 是 掀 起 了 五 子 棋
5、 发 展 的 新篇 章 , 为 五 子 棋 的 发 展 与 传 播 提 供 了 新 的 机 会 , 但 是 机 会 与 挑 战 并 存 , 我们 相 信 通 过 我 们 对 五 子 棋 程 序 的 不 断 优 化 和 完 善 , 五 子 棋 一 定 会 越 来 越 受到 大 家 的 欢 迎 。本次课程设计要求利用 Java 语言设计出一个人机对弈五子棋游戏,能实现人机对弈五子棋。了解五子棋对弈规则后,利用本学期所学的Java 高级图形界面编程方法的知识,并通过穷举法,考虑八个方向连成五子的几率高低,让计算机具有人工智能,成功设计出人机对弈五子棋的游戏。除了人机对弈的功能,我们还增加了人人对战的
6、功能。这项功能使得人与人之间能够互下五子棋,不仅仅是人与计算机对弈。除此之外,还增加了再来一局、认输、悔棋、退出游戏的功能,为了让游戏功能更加丰富,还增加了棋盘、模式、外观三个菜单栏供用户选择相应功能的菜单项。目录1、课程设计的目的及目标 .11.1 课程设计的目的 .11.2 课程设计的目标 .12、概要设计 .12.1 开发工具及环境 .12.2 任务及需求分析 .12.3 工作原理 .13、具体实现 .23.1 类设计 .24、运行调试与分析讨论 .35、设计体会与小结 .106、参考文献 .10附录:(源程序) .1011、课程设计的目的及目标1.1 课程设计的目的:本次课程设计的目的
7、是为了让学生使用 java 语言编程的知识,通过编写一个简单的五子棋游戏,检验一个学期以来学习 java 语言的收获成果,以及检查自己在学习 java 语言的过程中的漏洞来弥补不足,以便以后更好、更熟练地使用 java 语言来编写方便、娱乐生活的程序。1.2 课程设计的目标:本次课程设计所要求的五子棋游戏应达到以下几方面的要求:1.运行程序后即刻出现棋盘并可以开始下棋;2.先手为黑棋,后手为白棋;人为先手,计算机为后手;3.程序能响应鼠标点击并在相应位置画出棋子;4.计算机具有一定的智能,能够与人进行五子棋对弈;5.程序可以正确判断出局面的胜负情况并及时报出结果,终止棋局;6.尽可能实现人人对
8、战功能。2、概要设计2.1 开发工具及环境文本编辑器:记事本;运行环境:命令提示符(DOS 环境)。2.2 任务及需求分析设计人机对弈五子棋程序,实现人与计算机进行五子棋对弈,具体任务如下:(1)棋盘布局设计;(2)计算机下子的算法分析;(3)编程实现棋子的绘制以及具体的再来一局、认输、悔棋、退出游戏等功能;(4)运行测试程序,调试纠正运行错误。2.3 工作原理(1)工作过程运行程序后,首先出现五子棋游戏窗体,用户点击游戏菜单项,出现相关子菜单,选择模式子菜单中的人机对弈便可进入人机对弈模式。然后移动鼠标,在窗体的棋盘上点击鼠标下子,即可在棋盘中相应位置显示下的对应棋子。接下来计算机会根据用户
9、下的棋,采取穷举法选择八个方向上赢面最大的位置下子,用户与计算机谁先达到五子连成一线,谁便是获胜方。若选择模式子菜单中的人人对战便可进入人人对战模式。两个用户可同时玩游戏,同样谁先达到五子连成一线,谁便是获胜方。若下棋过程中,双方中有一方要认输,便可选择游戏菜单项中的认输按钮,认输的一方显然失败,另外一方获胜。若双方中有一方要悔棋,便可选择游戏菜单项中的悔棋按钮,经过对方的同意后,才能够重新翻盘,再来一局。若双方势均力敌,可选择2游戏菜单项中的棋盘子菜单,点击大号棋盘或超大号棋盘,以便避免棋盘空间不足造成无法分出胜负的情况。若觉得窗体外观不太美观,可选择外观菜单中的三个选项进行选择。为了显示程
10、序的相关制作信息,程序提供了版本菜单进行显示。具体功能实现见第四章节图。(2)工作原理利用图形界面编程实现,利用到的知识点包括: 窗体的创建和应用界面布局; 事件处理,包括按钮的动作事件处理,鼠标事件,窗体事件; 接口知识:事件处理中通过接口约束事件监听者必须实现相应接口中定义的方法; 流程控制语句:通过条件判断区分不同事件源,作不同操作处理。.介绍还不够细,如何表示棋盘上棋子的状态没涉及3、 具体实现3.1 类设计(1) 类名: ChessFrame作用:创建五子棋游戏主窗体和菜单。该类继承 JFrame 类,实现 ActionListener 接口。类中含有的方法介绍: ChessFram
11、e()构造方法:构造五子棋游戏的主窗体; makeMenu()方法:构造五子棋游戏的主菜单; makeMenuItem()方法:构造五子棋游戏的菜单项; makeRadioButtonMenuItem()方法:构造五子棋游戏的单选按钮式菜单项。(2) 类名: ChessModel作用:规定棋盘的宽度、高度、棋盘的模式;规定棋盘方格的横向、纵向坐标、棋盘方格的横向、纵向坐标所对应的棋子颜色;并且规定了记录棋盘棋子信息数组arrMapShow只有4个值:1,2,3,-1,其中1代表该棋盘方格上下的棋子为黑子,2代表该棋盘方格上下的棋子为白子,3代表为该棋盘方格上没有棋子,-1代表该棋盘方格不能够下
12、棋子;定义了交换棋手的标识符isOdd,棋盘方格上是否有棋子的标识符isExist。类中含有的主要方法介绍: ChessModel()构造方法:根据不同的棋盘模式(modeChess)来构建对应大小的棋盘; badxy()方法:判断下子的横向、纵向坐标是否越界; readyplay()方法:判断该坐标位置是否可下棋子; play()方法:在该坐标位置下棋子; computerDo()方法:用穷举法判断每一个坐标点的八个方向的的最大棋子数,最后得出棋子数最大值的坐标,计算机再下子(这八个方向分别是:左、右、上、下、左上、左下、右上、右下); checkMax()方法:计算棋盘上某一方格上八个方向
13、棋子的最大值; showSuccess()方法:赢棋后的提示; showDefeat()方法:输棋后的提示。(3) 类名: MainPanel作用:1、构建一个面板,在该面板上画上棋盘;32、处理在该棋盘上的鼠标事件(如鼠标左键点击、鼠标右键点击、鼠标拖动等);该类继承 JPanel 类,实现 MouseListener、MouseMotionListener 接口。类中含有的主要方法介绍: paintComponent()方法:根据坐标计算出棋盘方格棋子的信息(如白子还是黑子),然后调用 draw 方法在棋盘上画出相应的棋子; mousePressed ()方法:响应鼠标的点击事件,根据鼠标
14、的点击来下棋,根据下棋判断胜负等; mouseMoved()方法:响应鼠标的拖动事件。(4) 类名: FiveChessAppletDemo作用:显示五子棋游戏窗体。类中含有的方法介绍: main()方法:程序运行的入口,创建了 ChessFrame 类的一个实例对象(cf),并启动屏幕显示显示该实例对象。(5) 类名: ChessWindowEvent作用:响应退出窗口。类中含有的方法介绍: windowClosing()方法:处理窗口关闭; ChessWindowEvent ()构造方法:提供无参构造方法。4、运行调试与分析讨论图 4-1 人机对弈模式选择界面4图 4-2 人机对弈界面图 4-3 结果信息显示界面5图 4-4 人人对战模式选择界面图 4-5 悔棋界面图 4-6 悔棋提示界面
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。