五子棋游戏课程设计.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学号 《高级语言开发程序设计》 课程设计报告 题目: 五子棋游戏设计 专业: 计算机科学与技术 班级: 姓名: 指导教师: 成绩: 计算机与信息工程系 2013年 6月 12日 目录 目录 1 1 引言 2 1.1 五子棋介绍 2 1.2选题背景和动机 2 1.3系统所要解决的问题 2 2 系统框架 3 2.1系统的功能简介 3 2.2 总体程序框图 3 3 设计过程或程序代码 4 3.1 用类ChessFrame创建五子棋游戏主窗体和菜单 4 3.2 构造五子棋游戏的主窗体 5 3.3 用类ChessModel实现了整个五子棋程序算法的核心 5 3.4 计算机走棋 8 4 程序调试分析 15 5 总结 17 致谢 17 1 引言 1.1 五子棋介绍 五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“连珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。 五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。 1.2选题背景和动机 随着社会的发展,越来越多人接触和使用计算机,网上进行的棋类运动也随之普及。许多人喜欢上了下棋,但有时又苦于没有对手。作为一个计算机专业的学生,我对五子棋有很浓厚的兴趣,平时也一直和同学下棋,有时也和电脑下棋,我对计算机人机对弈智能算法如何与人脑对抗产生了极大的兴趣,当然人机对弈的算法有很多种,许多人也对此有所研究。有些算法的智能程度甚至已经与人脑不相上下。这类程序的开发最重要的莫过于智能算法的实现,然后就是判断胜负的方法。我决定开发一个既能够人机对战,又能够进行人人对战的五子棋系统。 1.3系统所要解决的问题 1)棋盘和棋子的绘制 2)计算机对下一步落棋的计算 3) 棋盘的载入 4)棋盘状态的判定 2 系统框架 2.1系统的功能简介 主要功能是实现五子棋的人机对弈和人人对弈功能,能够改变棋盘的大小和外观。 2.2 总体程序框图 3 设计过程或程序代码 3.1 用类ChessFrame创建五子棋游戏主窗体和菜单 import java.awt.*; import java.awt.event.*; import java.applet.*; import javax.swing.*; import java.io.PrintStream; import javax.swing.JComponent; import javax.swing.JPanel; class ChessFrame extends JFrame implements ActionListener { private String[] strsize={标准棋盘,改进棋盘,扩大棋盘}; private String[] strmode={人机对战,人人对战}; public static boolean iscomputer=true,checkcomputer=true; private int width,height; private ChessModel cm; private MainPanel mp; 3.2 构造五子棋游戏的主窗体 public ChessFrame() { this.setTitle(五子棋游戏); cm=new ChessModel(1); mp=new MainPanel(cm); Container con=this.getContentPane(); con.add(mp,Center); this.setResizable(false); this.addWindowListener(new ChessWindowEvent()); MapSize(14,14); JMenuBar mbar = new JMenuBar(); this.setJMenuBar(mbar); JMenu gameMenu = new JMenu(游戏); mbar.add(makeMenu(gameMenu, new Obje

文档评论(0)

2749166188 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档