




免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaJava 设设 计计 报报 告告 书书 课程名称 JAVA 语言程序设计 设计题目 五子棋小游戏 院 系 计算机科学与信息工程系 学生姓名 学 号 专业班级 指导教师 2010 年 12 月 31 日 目目 录录 一 题目描述 3 二 设计思路 3 三 运行结果 8 四 源代码 9 五 总结 21 六 参考文献 21 一 题目描述一 题目描述 五子棋是一种两人对弈的纯策略型棋类游戏 是起源于中国 传统五子棋的 棋具与围棋相同 棋子分为黑白两色 棋盘为17 10 棋子放置于棋盘线交 叉点上 两人对局 各执一色 轮流下一子 先将横 竖或斜线的5 个或 5 个以上同色棋子连成不间断的一排者为胜 本课题的功能就是 能按照五子棋 的规则实现人机对战 并能顺利结束棋局 二 设计思路二 设计思路 1 1 类图 2 2 说明 表表 2 22 2 Chess 方法名功能备注 ChessPad 初始化棋盘设置棋盘颜色 Void paint Graphics g 对棋子等图像进行初 始化 设置棋子大小 颜色等 表表 1 11 1 java 源文件及其功能 序 号 文件名主要功能备注 1Chess 本程序的主函数初始化棋盘 2Autoplay 实现电脑可以自动下棋分为 8 种情况 3Scan 扫描整个棋盘记录连在一起的黑白 棋子数 为判断胜负服务 4Sort 实现人与电脑有次序的下棋黑棋白棋有序的下 5Judge 判断人与电脑的胜负可以在文本框中显示 胜负结果 6Evaluate 电脑估计为电脑下棋提供帮助 表表 2 12 1 Chess 成员变量描 述 变量类型名称 控制棋子颜 色 inti 重新开局 ButtonButton 请黑棋下子 TextFieldtext 1 请白棋下子 TextFieldtext 2 这是第 i 步 TextFieldtext 3 public void mousePressed MouseEve nt e 鼠标的实践监听单击实践 public void paint Graphics g 画出图像控制图像的大小范围 public void mousePressed MouseEve nt e 处理按下鼠标的事件选中下棋的位置 public void mouseReleased MouseEv ent e 处理鼠标离开的事件本步下棋结束 public void mouseExited MouseEvent e 处理鼠标离开棋盘时 鼠标离开组件不实现任何事 件 public void mouseClicked MouseEve nt e 处理发生单击的事件实现下棋以及重新开始游戏 表表 2 32 3 Autoplay 成员变量描述变量类型名称 统计玩家的连起来的棋子 数 intX 电脑玩家的连起来的棋子 数 IntY 表表 2 42 4 Autoplay 方法名功能备注 void autoPlay int chesspad int a int b 分情况实现电脑自动 下棋 使用 switch 语句分为 8 种 情况来下棋 表表 2 52 5Scan 成员变量描述变量类型名称 统计棋盘种五个连起来的 棋子数 数组 int shape 控制行数 inti 控制列数 intj 表表 2 62 6 Scan 方法名功能备注 void scan int chesspad int colour 判断棋盘上连在一起 的黑白棋子个数 表表 2 72 7 Sort 成员变量描述变量类型名称 保存临时变量 inttemp 表表 2 82 8 Sort 方法名功能备注 public void sort int shape 实现黑白棋子的交替 下 数组为参数 表表 2 92 9 Judge 成员变量描述变量类型名称 控制行数 inti 控制列数 intj 记录连在一起的黑白棋子 数 intflag 表表 2 102 10 Judge 方法名功能备注 static boolean judge int a int color 判断玩家与电脑的游 戏胜负 使用静态函数 分多钟情况 判断 表表 2 112 11 Evaluate 成员变量描述变量类型名称 玩家最可能下的棋子的行 数 intmax x 玩家最可能下的棋子的列 数 intmax y 保存最大可能下棋的位置 intmax 控制行数 inti 控制列数 intj 表表 2 122 12 Evaluate 方法名功能备注 public void evaluate int shape 电脑用于估计玩家下 步棋的走法 三 运行结果三 运行结果 四 源代码四 源代码 import java awt import java awt event class ChessPad extends Panel implements MouseListener ActionListener int array new int 19 19 Scan scanp new Scan Scan scanc new Scan AutoPlay autoPlay new AutoPlay Evaluate evaluatep new Evaluate Evaluate evaluatec new Evaluate Sort sort new Sort int i 0 int x 1 y 1 棋子颜色 1 Button button new Button 重新开局 TextField text 1 new TextField 请黑棋下子 text 2 new TextField text 3 new TextField ChessPad setSize 440 440 setLayout null setBackground Color pink addMouseListener this add button button setBounds 10 5 60 26 button addActionListener this add text 1 text 1 setBounds 90 5 90 24 add text 2 text 2 setBounds 290 5 90 24 add text 3 text 3 setBounds 200 5 80 24 for int i 0 i 19 i for int j 0 j 19 j array i j 0 for int i 0 i 19 i for int j 0 j 19 j for int h 0 h 5 h scanp shape i j h 0 scanc shape i j h 0 text 1 setEditable false text 2 setEditable false public void paint Graphics g for int i 40 i 400 i i 20 g drawLine 40 i 400 i for int j 40 j 400 j j 20 g drawLine j 40 j 400 g fillOval 97 97 6 6 g fillOval 337 97 6 6 g fillOval 97 337 6 6 g fillOval 337 337 6 6 g fillOval 217 217 6 6 public void mousePressed MouseEvent e int a 0 b 0 if e getModifiers InputEvent BUTTON1 MASK x int e getX y int e getY ChessPoint black chesspoint black new ChessPoint black this ChessPoint white chesspoint white new ChessPoint white this i text 3 setText 这是第 i 步 if x 5 20 2 y 5 2019 y 5 20 19 else a x 10 20 b y 10 20 if array b 2 a 2 0 chesspoint black setBounds a 20 9 b 20 9 18 18 棋子颜色 棋子颜色 1 array b 2 a 2 1 if Judge judge array 1 text 1 setText 黑棋赢 棋子颜色 2 removeMouseListener this else text 1 setText if i 2 scanc scan array 1 sort sort scanp shape sort sort scanc shape evaluatep evaluate scanp shape evaluatec evaluate scanc shape 棋子颜色 棋子颜色 1 this add chesspoint white if evaluatep max evaluatec max text 2 setText evaluatep max x evaluatep max y evaluatep max chesspoint white setBounds evaluatep max y 2 20 9 evaluatep max x 2 20 9 18 18 array evaluatep max x evaluatep max y 1 text 1 setText 请黑棋下子 for int i 0 i 19 i for int j 0 j 19 j for int h 0 h 5 h scanp shape i j h 0 scanc shape i j h 0 else text 2 setText evaluatec max x evaluatec max y evaluatec max chesspoint white setBounds evaluatec max y 2 20 9 evaluatec max x 2 20 9 18 18 array evaluatec max x evaluatec max y 1 if Judge judge array 1 text 2 setText 白棋赢 棋子颜色 2 removeMouseListener this else text 1 setText 请黑棋下子 for int i 0 i 19 i for int j 0 j 19 j for int h 0 h 5 h scanp shape i j h 0 scanc shape i j h 0 if i 2 this add chesspoint white 棋子颜色 棋子颜色 1 chesspoint white setBounds autoPlay y 2 20 9 autoPlay x 2 20 9 18 18 array autoPlay x autoPlay y 1 if Judge judge array 1 text 2 setText 白棋赢 棋子颜色 2 removeMouseListener this else text 1 setText 请黑棋下子 text 2 setText autoPlay x autoPlay y public void mouseReleased MouseEvent e public void mouseEntered MouseEvent e public void mouseExited MouseEvent e public void mouseClicked MouseEvent e public void actionPerformed ActionEvent e this removeAll 棋子颜色 1 add button button setBounds 10 5 60 26 add text 1 text 1 setBounds 90 5 90 24 text 2 setText text 1 setText 请黑棋下子 add text 2 text 2 setBounds 290 5 90 24 add text 3 text 3 setBounds 200 5 80 24 i 0 text 3 setText 这是第 i 步 for int i 0 i 19 i for int j 0 j 19 j array i j 0 for int i 0 i 19 i for int j 0 j 19 j for int h 0 h 5 h scanp shape i j h 0 scanc shape i j h 0 addMouseListener this class ChessPoint black extends Canvas implements MouseListener ChessPad chesspad null ChessPoint black ChessPad p setSize 20 20 addMouseListener this chesspad p public void paint Graphics g g setColor Color black g fillOval 0 0 18 18 public void mousePressed MouseEvent e if e getModifiers InputEvent BUTTON3 MASK chesspad remove this chesspad 棋子颜色 1 chesspad text 2 setText chesspad text 1 setText 请黑棋下子 public void mouseReleased MouseEvent e public void mouseEntered MouseEvent e public void mouseExited MouseEvent e public void mouseClicked MouseEvent e class ChessPoint white extends Canvas implements MouseListener ChessPad chesspad null ChessPoint white ChessPad p setSize 20 20 addMouseListener this chesspad p public void paint Graphics g g setColor Color white g fillOval 0 0 18 18 public void mousePressed MouseEvent e if e getModifiers InputEvent BUTTON3 MASK chesspad remove this chesspad 棋子颜色 1 chesspad text 2 setText 请白棋下子 chesspad text 1 setText public void mouseReleased MouseEvent e public void mouseEntered MouseEvent e public void mouseExited MouseEvent e public void mouseClicked MouseEvent e public class Chess extends Frame ChessPad chesspad new ChessPad Chess setVisible true setLayout null Label label new Label 五子棋 Label CENTER add label label setBounds 70 55 440 26 label setBackground Color orange add chesspad chesspad setBounds 70 90 440 440 addWindowListener new WindowAdapter public void windowClosing WindowEvent e System exit 0 pack setSize 600 550 public static void main String args Chess chess new Chess class AutoPlay int x y void autoPlay int chesspad int a int b int randomNumber int Math random 8 1 switch randomNumber case 1 if chesspad a 1 b 1 0 x a 1 y b 1 else if chesspad a 2 b 2 0 x a 2 y b 2 else x a 3 y b 3 break case 2 if chesspad a 1 b 0 x a 1 y b else if chesspad a 2 b 0 x a 2 y b else x a 3 y b break case 3 if chesspad a 1 b 1 0 x a 1 y b 1 else if chesspad a 2 b 2 0 x a 2 y b 2 else x a 3 y b 3 break case 4 if chesspad a b 1 0 x a y b 1 else if chesspad a b 2 0 x a y b 2 else x a y b 3 break case 5 if chesspad a 1 b 1 0 x a 1 y b 1 else if chesspad a 2 b 2 0 x a 2 y b 2 else x a 3 y b 3 break case 6 if chesspad a 1 b 0 x a 1 y b else if chesspad a 2 b 0 x a 2 y b else x a 3 y b break case 7 if chesspad a 1 b 1 0 x a 1 y b 1 else if chesspad a 2 b 2 0 x a 2 y b 2 else x a 3 y b 3 break case 8 if chesspad a b 1 0 x a y b 1 else if chesspad a b 2 0 x a y b 2 else x a y b 3 break class Evaluate int max x max y max public void evaluate int shape int i 0 j 0 for i 0 i 19 i for j 0 j 19 j switch shape i j 0 case 5 shape i j 4 200 break case 4 switch shape i j 1 case 4 shape i j 4 150 shape i j 2 shape i j 3 break case 3 shape i j 4 100 shape i j 2 shape i j 3 break default shape i j 4 50 shape i j 2 shape i j 3 break case 3 switch shape i j 1 case 3 shape i j 4 75 shape i j 2 shape i j 3 break default shape i j 4 20 shape i j 2 shape i j 3 break case 2 shape i j 4 10 shape i j 1 shape i j 2 shape i j 3 break case 1 shape i j 4 shape i j 0 shape i j 1 shape i j 2 shape i j 3 default shape i j 4 0 int x 0 y 0 max 0 for x 0 x 19 x for y 0 y 19 y if max shape x y 4 max shape x y 4 max x x max y y class Judge static boolean judge int a int color int i j flag for i 0 i 19 i flag 0 for j 0 j 19 j if a i j color flag if flag 5 return true else flag 0 for j 0 j 19 j flag 0 for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东东菀市社卫中心招聘纳入岗位管理编制外7人模拟试卷及答案详解1套
- 2025贵州黔西南州高校引才暨第十三届贵州人才博览会引进人才23人考前自测高频考点模拟试题及答案详解(典优)
- 2025贵州金沙能源投资集团有限公司模拟试卷及答案详解(各地真题)
- 班组安全培训预防课件
- 2025内蒙古鄂尔多斯市中心医院引进高层次人才97人模拟试卷及答案详解(网校专用)
- 2025年天津华北地质勘查局所属事业单位招聘高层次人才5人(第二批)模拟试卷及完整答案详解
- 2025年4月江苏南通市富皋万泰集团如皋市文定高级中学招聘教师25人模拟试卷及答案详解(有一套)
- 2025江苏南京市浦口区中医院招聘42人考前自测高频考点模拟试题附答案详解
- 2025广东韶关乐昌市九峰镇村基层公共服务站系统操作员招聘2人模拟试卷及答案详解(典优)
- 2025年河南省职工医院-国际口腔中心招聘18人模拟试卷及答案详解(名师系列)
- 2024年新人教版八年级上册物理全册教案
- 伤口造口专科护士进修汇报
- MOOC 实验室安全学-武汉理工大学 中国大学慕课答案
- 彩钢房建造合同
- 2型糖尿病低血糖护理查房课件
- 医院物业服务投标方案
- 高压燃气管道施工方案
- 国家免疫规划疫苗儿童免疫程序说明-培训课件
- GB/T 4802.3-2008纺织品织物起毛起球性能的测定第3部分:起球箱法
- GB/T 13298-1991金属显微组织检验方法
- 劳动人事争议仲裁案例分析与问题探讨课件
评论
0/150
提交评论