- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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(ga
您可能关注的文档
- 拨叉零件的机械加工工艺规程及夹具设计.doc
- 多种液体混合机PLC综合实训项目技术报告星三角降压启动控制.doc
- 法兰盘零件的机械加工工艺规程及夹具设计.doc
- 法学专业毕业论文--流动人口子女受教育权.doc
- 工厂供电毕业设计.doc
- 管材矫直机的PLC控制系统设计设计说明书.doc
- 锅炉装置自动控制系统设计.doc
- 花店经营管理系统.doc
- 基于单片机的电子秒表设计说明书.doc
- 基于单片机的瓦斯报警系统设计报告.doc
- GB/T 40096.6-2024就地化继电保护装置技术规范 第6部分:母线保护.pdf
- 《GB/T 40096.6-2024就地化继电保护装置技术规范 第6部分:母线保护》.pdf
- GB/T 43980-2024口译服务 医疗口译要求.pdf
- 中国国家标准 GB/T 43980-2024口译服务 医疗口译要求.pdf
- 《GB/T 43980-2024口译服务 医疗口译要求》.pdf
- GB/T 17215.301-2024电测量设备(交流) 特殊要求 第1部分:多功能电能表.pdf
- 《GB/T 17215.301-2024电测量设备(交流) 特殊要求 第1部分:多功能电能表》.pdf
- 中国国家标准 GB/T 17215.301-2024电测量设备(交流) 特殊要求 第1部分:多功能电能表.pdf
- 中国国家标准 GB/Z 43973-2024非介入式负荷监测(NILM)系统用感知装置.pdf
- GB/Z 43973-2024非介入式负荷监测(NILM)系统用感知装置.pdf
文档评论(0)