JAVA课程设计 五子棋(内附完整代码)

JAVA课程设计

设计题目:五子棋游戏

简要的介绍五子棋

五子棋的起源

五子棋,又被称为“连五子、五子连、串珠、五目、五目碰、五格、五石、五法、五联、京棋”。五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。

2.现在五子棋标准棋盘(如图所示)

3.五子棋的棋子

五子棋采用两种颜色棋子,黑色棋子和白色棋子,和围棋相同,

4.五子棋规则

五子棋就是五个棋子连在一起就算赢,黑棋先行,下棋下在棋盘交叉线上,由于黑棋先行,优势太大,所以对黑棋设了禁手,又规定了“三手交换”,

就是黑棋下第 2 手棋,盘面第 3 着棋之后,白方在应白 2 之前,如感觉黑方棋形不利于己方,可出交换,即执白棋一方变为执黑棋一方。和“五手两打法”,就是黑棋在下盘面上关键的第 5 手时,必须下两步棋,让白方在这两步棋中任选一步,然后再续下。不过一般爱好者不需要遵循这么多规则。

二.程序流程

三.代码设计与分析

main方法创建了ChessFrame类的一个实例对象(cf),

并启动屏幕显示显示该实例对象。

public class FiveChessAppletDemo {

public static void main(String args[]){

ChessFrame cf = new ChessFrame();

cf.show();

}

}

用类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;

构造五子棋游戏的主窗体

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 Object[] {

"开局", null,"棋盘",null,"模式", null, "退出"

}, this));

JMenu lookMenu =new JMenu("外观");

mbar.add(makeMenu(lookMenu,new Object[] {

"类型一","类型二","类型三"

},this));

JMenu helpMenu = new JMenu("版本");

mbar.add(makeMenu(helpMenu, new Object[] {

"关于"

}, this));

}

public JMenu makeMenu(Object parent, Object items[], Object target){

JMenu m = null;

if(parent instanceof JMenu)

m = (JMenu)parent;

五子棋java百度文库_JAVA课程设计 五子棋(内附完整代码).doc相关推荐

  1. java课设 五子棋_Java课程设计 ————五子棋 (个人博客)

    JAVA课程设计 五子棋(博客个人版) •团队课程设计博客链接 •个人负责模块或任务说明 1.主框架类:设置棋盘窗体,颜色等 2.isWin方法:判断胜负 •自己的代码提交记录截图 •自己负责模块或任 ...

  2. java设计五子棋_JAVA课程设计+五子棋(团队博客)

    JAVA课程设计 利用所学习的JAVA知识设计一个五子棋小游戏 1.团队名称.团队成员介绍(菜鸟三人组) 杨泽斌[组长]:201521123049 网络1512 叶文柠[组员]:20152112305 ...

  3. java设计五子棋_JAVA课程设计(五子棋)--个人博客

    JAVA课程设计(五子棋)--个人博客(李金妲) 1.题目及我负责的内容 1.1题目:五子棋 1.2负责内容:游戏界面的GUI设计.背景音乐功能.趣味对战算法实现 2.本人负责的主要功能展示与代码截图 ...

  4. java通讯录课程设计_java课程设计_通讯录_通讯簿.doc

    java课程设计_通讯录_通讯簿.doc 还剩 45页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: impor ...

  5. java五子棋课程设计_JAVA课程设计+五子棋游戏

    1. 团队课程设计博客链接 2. 个人负责模块或任务说明 1.在同伴构建好初始框图的情况下,编写一个继承JPanel类,实现添加控件. 2.编写paintComponent类,实现绘画棋盘还有棋子. ...

  6. java课程 数独 文库_JAVA课程设计九宫格数独.pdf

    计算机与信息工程系 <数独游戏的设计与实现>课程设计 学号 1208010106 2013-2014 学年 第二学期 <面向对象程序设计> 课程设计报告 题 目 : 九空格数独 ...

  7. java 密码生成器_Java课程设计-随机密码生成器

    1.团队课程设计博客链接 2.个人负责模板 设计程序运行界面,数据的输入,判断数据输入类型的错误,判断密码类型是否选择. 3.自己的代码提交记录截图 4自己负责模块或任务详细说明 (一)总体设计 1. ...

  8. java闹钟程序设计_JAVA课程设计_闹钟的设计与实现项目-报告_附源代码.doc

    JAVA课程设计_闹钟的设计与实现项目-报告_附源代码 第2章 MACROBUTTON AcceptAllChangesInDoc [双击此处键入1级标题] PAGE 2 - PAGE 1 - .. ...

  9. ATM柜员机JAVA课程设计_JAVA课程设计报告银行ATM机系统.doc

    JAVA课程设计报告银行ATM机系统 Java课程设计报告 题 目 银行ATM机系统 所在院系 软件学院 学生姓名 金磊 专 业 R机械+软件 班 级 R机械094 学 号 2011年 7 月 15日 ...

最新文章

  1. Spring AOP 简介以及简单用法
  2. 学会对mysql的增删改查_Go实现对MySQL的增删改查
  3. js来读写cookie操作
  4. 记录一下:在菜单上添加自绘图形的例子(VB6代码)
  5. 问题TypeError: __init__() takes 1 positional argument but 2 were given解决方案
  6. Windows10 中在指定目录下启动Powershell
  7. nginx-rtmp一些指令
  8. openpyxl 2.5.0中文文档
  9. CloudFlare Full SSL Strict 报错提示 Error 525 SSL handshake failed
  10. matlab对语音信号预加重处理,语音信号的预加重处理和加窗处理 | 学步园
  11. 不知道rar压缩包密码可以解密么,rar压缩包有密码怎么解开?
  12. PyCharm4注册码
  13. 双十一到了,当我用Python采集了电商平台所有商品后发现....
  14. 一文读懂两台计算机之间是如何通信的
  15. LeetCode | 263. Ugly Number
  16. ios怎么引入masonry_ios masonry 怎样设置边距自适应
  17. 电子邮件及PE工作盘
  18. Mkv转MP4方法集合整理
  19. 不想打工了,手里有10万,想回农村老家创业,却不知道做什么,请各位指点迷津,谢谢?
  20. 读取风云4号卫星FullMask_Grid.raw文件

热门文章

  1. torch.arange
  2. 【云原生】阿里云容器镜像服务产品ACR EE
  3. oracle数据库添加序列
  4. c#dataview遍历_[C#] DataView用法
  5. Nodejs 正则表达式
  6. python的opencv库使用gpu加速_Python跳一跳:使用Cython加速opencv像素级访问
  7. flappy bird游戏源代码揭秘和下载后续---移植到html5网页浏览器
  8. 区别css单位px、em、rem
  9. 1m=1000ms(1秒等于一千毫秒)
  10. 视觉SLAM前端——PnP