课程设计说明书。
课程名称软件工程。
设计题目黑白棋游戏。
学院: 计算机科学与信息工程学院
学生姓名: 牛新星、王建峰、曹伟、赵光
学号专业班级: 计算机科学与技术(应用方向)12-1
指导教师王瑞平。
2023年 6 月 19
课程设计任务书。
黑白棋游戏。
摘要:黑白棋作为一个棋类竞技活动,在民间十分流行,为了熟悉黑白棋规则及技巧,以及研究简单的人工智能,决定用j**a开发黑白棋游戏。主要完成了人机对战功能,有很好的可扩展性。
在人机对弈中通过深度搜索估值模块,来提高电脑棋手的智能。分析估值模块中的影响精确性的几个要素,以及提出若干提高精确性的方法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析分析一些提高电脑ai方案,如递归算法、电脑学习等。算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。
尽管黑白棋的规则比较简单,但它所包含的丰富战略,不亚于那些相当“经典”的策略游戏。
本文首先根据课题的需要,对系统进行了详细的需求分析,其次根据需求对系统进行了总体架构设计,然后对系统进行了详细的设计和实现,最后对系统进行了测试。本系统选择b/s模式作为管理系统的系统架构,以j**a作为编程语言。本系统实现了人机对弈,在程序运行时可以进行简单的单机游戏,基本实现了本次课程设计的要求。
关键词:黑白棋游戏 ; 人机对弈; j**a
目录。1. 设计背景 1
1.1 课题背景 1
1.2 系统需求 1
2. 设计方案 1
2.1 系统架构设计 1
2.2 各模块功能说明 2
2.3 程序结果 3
3. 方案实施 3
3.1界面设计具体实现 3
3.2棋子的位置判断具体实现 5
3.3电脑操作的具体实现 11
4.结果与结论 12
5.收获与致谢 13
6. 参考文献 13
本课程设计是计算机软件技术基础重要的实践性环节之一,是在学生学习完《软件工程概论》课程后进行的一次全面的综合练习。
按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握j**a程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。
本系统主要实现的是简单的人机对战模式,游戏通过相互翻转对方的棋子,最后以棋盘上谁的棋子多来判断胜负。
下棋方法:黑白棋的棋盘是一个有8*8方格的棋盘。下棋时将棋下在空格中间,而不是像围棋一样下在交叉点上。
开始时在棋盘正中有两白两黑四个棋子交叉放置,黑棋总是先下子。下子的方法把自己颜色的棋子放在棋盘的空格上,而当自己放下的棋子在横、竖、斜八个方向內有一个自己的棋子,则被夹在中间的全部翻转会成为自己的棋子。并且,只有在可以翻转棋子的地方才可以下子。
胜负判定条件如果玩家在棋盘上没有地方可以下子,则该玩家对手可以连下。双方都没有棋子可以下时棋局结束,以棋子数目来计算胜负,棋子多的一方获胜。在棋盘还没有下满时,如果一方的棋子已经被对方吃光,则棋局也结束。
将对手棋子吃光的一方获胜。
总体设计的基本目的就是要对软件系统进行框架设计,确定系统中每个子系统有哪些模块组成以及模块相互间的关系。根据对系统处理对象的不同,将该系统分为人人考虑的模块和电脑考虑的模块。系统功能层次图,如图2-1所示。
图2-1 系统功能层次图。
为了实现黑白棋游戏的开发,通过流程图的分析,计划采用以下几大模块。
系统模块图,如图2-2所示。
图2-2 系统模块图。
1、界面设计模块:本模块用来负责主界面的绘制,包括棋盘、棋子、棋子个数的显示、以及其它需要显示的部分。
2、人和机器模块:人机模块是本程序得以运行的基础,并通过规则模块决定能否下子。
3、主控制模块:本模块主要负责保证***类实现和线程的控制这两块。
4、函数实现模块:本模块通过各种函数的调用,实现棋子颜色的改变和判断棋子是否可下。
一方执黑棋,一方执白棋,轮流走棋,每方都试图在游戏结束前让自己棋子的数目多于对方。同时也可以用鼠标左键操作,通过点击上下左右、斜左上、斜右上、斜左下、斜右下来进行棋子操作,最后判断谁的棋子多,谁赢。
**如下:public class test extends jframe
lineborder(
add(p,add(jlbstatus,add(jlbleft,add(jlbright,+ s turn");
" 黑:"+2
" 白:"+2
"黑白棋:")
软件工程课程设计
天水师范学院。课程名称 学生信息管理系统。指导老师 张少刚。学院 电子信息与电气工程学院。班级 12级计算机科学与技术 1 班。学号 20121030108 姓名 付永霞。2015年6月25日。目录。1.可行性研究。1.1技术可行性3 1.2经济可行性3 1.3操作可行性3 2.需求分析。2.2.1...
软件工程课程设计
徐州工程学院。课程设计报告。名称软件工程课程设计 学院信电工程学院 专业软件专业。班级 11软件。姓名云柏。姓名陆剑锋。姓名徐宁。姓名陈胜。指导老师王小磊。组员 云柏陆剑锋 徐宁陈胜。分工 引言。随着科技和经济的发展,人们的消费越来越倾向于网络,出现了网购这种越来越受欢迎的新型消费方式。为了提高学校...
软件工程课程设计
个人整理精品文档,仅供个人学习使用。课程设计教案的基本内容和要求 针对不同的课程设计题目,每位同学以软件设计为中心,完成从需求分析 软件设计 编码到软件测试运行的软件开发全过程。1 同类著名 浏览 分析 需求分析 3 原型主页设计及网页设计。4 数据库设计及应用设计。5 交互网页开发技术或其他专门开...