《JAVA程序设计》五子棋制作实训

合集下载

基于JAVA的五子棋游戏系统设计与实现

基于JAVA的五子棋游戏系统设计与实现

基于JAVA的五子棋游戏系统设计与实现五子棋是一种双人对弈的棋类游戏,也是一种非常经典的游戏类型。

设计一个基于JAVA的五子棋游戏系统,需要考虑到以下几个方面:游戏规则、游戏界面和游戏功能的实现。

一、游戏规则的设计:五子棋的规则非常简单,双方轮流下棋,先连成五子的一方为胜。

游戏区域是一个15x15的棋盘,棋盘上有黑白两种棋子。

玩家可以通过点击棋盘的不同位置来下棋。

二、游戏界面的设计与实现:1. 创建一个游戏主界面,并在界面上绘制棋盘。

可以使用JAVA Swing来创建界面,并使用Graphics类来实现绘制棋盘的功能。

2.在棋盘上绘制出15x15的格子,并设置鼠标点击事件,以便玩家可以通过点击棋盘的不同位置来下棋。

3. 在玩家下棋后,使用Graphics类来在棋盘上绘制出对应的棋子。

可以使用不同的颜色来区分黑白两种棋子。

三、游戏功能的实现:1.实现轮流下棋的功能。

通过一个变量来记录当前轮到哪个玩家下棋,玩家可以通过鼠标点击事件来确定落子的位置。

2.实现判断胜负的功能。

在每次下棋后,判断是否已经有五子连线的情况出现。

可以使用一个二维数组来保存棋盘上每个位置的棋子情况,并根据棋子位置来判断是否满足胜利条件。

3.实现悔棋功能。

当玩家点击悔棋按钮时,可以将最后一步下的棋子清除,并将轮到下棋的玩家切换至上一步下棋的玩家。

4.实现重新开始的功能。

当游戏结束后,可以通过点击重新开始按钮来重新开始游戏。

以上是一个基于JAVA的五子棋游戏系统的设计与实现的简要思路。

在实际的开发过程中,还需要考虑到异常处理、界面美化、多人对战等更多的细节。

希望以上内容能够帮助您完成五子棋游戏系统的设计与实现。

五子棋实训报告(电子版)

五子棋实训报告(电子版)

《JA V A程序设计》实训报告课程名称:JA V A程序设计专业:计算机应用技术班级:11计算机应用班小组成员:巨敏石丽涛张娅雯李延尚文学董丁喜周致远指导老师:武文廷目录一.实训目的 (1)二. 实训题目和要求2.1实训题目描述 (1)2.2实训要求 (1)三.实训报告内容3.1五子棋主框架 (1)3.2棋盘、棋子及说明信息 (1)3.3对弈算法相关问题设计 (1)四.实训中的部分代码 (2)五.五子棋源程序代码 (3)六. 总结 (17)一、实训目的本次实训,学生可以将理论知识与具体实践相结合,巩固对JA VA相关方法和概念的理解。

通过实训单机版五子棋游戏的编程,掌握JA V A语言编程的基础知识并能熟练运用,熟悉累声明与对象的使用,运用JA V Aswing编写单机版五子棋游戏,并实现其功能。

通过本次实训,可以开拓思维,增强编程思想,为深入学习JA VA打下良好的基础。

二、实训题目描述和要求2.1实训题目描述实训题目:JA V A五子棋单机版游戏。

描述:通过JA V A的swing组件,实现五子棋简单的双人对弈,并通过内部条件判断实现输赢的双方的下棋过程。

2.2实训要求(1)五子棋游戏的主窗口也就是游戏界面的实现(2)棋子黑白色的设置及判定(3)完成判断某一横行是否练成五子及所有方向是否练成五子的功能(4)几个简单按钮的实现,“重新开始”“悔棋”“退出”按钮(5)菜单栏的实现,“重新开始”“悔棋”“退出”菜单项三、实训报告内容3.1主框架编写一个startCheesJFrame类,主要用来显行主窗体界面,包括工具条面板、菜单栏项。

设置界面关闭事件。

并编写一个内部类MyItemListener来监听按钮和菜单栏的单机事件。

3.2棋盘、棋子(1)编写point类,包括棋子的X/Y索引,颜色。

定义构造函数和相应的get方法。

(2)编写ChessBoard类,设置棋盘背景颜色为橘黄色(3)在主框架类中创建ChessBoard对象,并添加到主框架中(4)编写mousePressed方法来进行绘制棋盘和棋子3.3对弈算法相关问题设计(1)编写mousePressed方法的内容,预定义isBlack表示下的是黑棋还是白棋。

崔钊 五子棋实训报告

崔钊 五子棋实训报告

《java语言程序设计》实训报告实训题目: 五子棋游戏制作专业:软件技术班级:15软件(1)班姓名:崔钊指导教师:邓衍青2016年6月11日目录一、实训目的: (1)二、实训题目描述和要求 (1)2.1实训题目描述: (1)2.2实训题目要求: (1)三、实训报告内容: (2)3.1需求分析: (2)3.2需求设计: (3)3.3详细设计 (4)四、游戏的测试 (16)五、结论 (21)六、参考书目: (22)一、实训目的:在制作五子棋游戏过程中,增加学生对java和Eclipse的熟练使用,增加对java语言的运用,让我们学到用到的知识来掌握熟练度!二、实训题目描述和要求2.1实训题目描述:五子棋的娱乐性强、规则简单、易学、流行性广,普通人不需长时间专门训练即可自如行棋,因此极受大众喜欢·五子棋规则为:1.棋盘:采用像围棋盘一样的棋盘,本系统采用18路的棋盘·2.下法:两人分别执黑白两色棋子,轮流在棋盘上选择一个无子的交叉点落子,无子的交叉点又被称为空点·3.输赢判断:黑、白双方有一方的五个棋子在横、竖或斜方向上连接成一线即为该方赢·2.2实训题目要求:1.设计功能明确。

2.熟悉JAVA开发环境,掌握JAVA程序的编译和运行。

3.掌握JAVA基本编程技术和方法。

4.实训上交内容:实训报告一份,电子版本实训报告一份,源程序代码。

5.游戏界面要如下图所示:三、实训报告内容:3.1需求分析:程序流程我们看到本程序由4个基本功能模块构成,各模块的详细分析如下:1.初始化FiveChessFrame类过try {bgImage = ImageIO.read(new File("E:/帅志文/image/background.jpg"));} catch (IOException e) {e.printStackTrace();}}加载背景图片,然后再背景图上通过:paint方法中的for(int i= 0; i< 19; i++) {g2.drawLine(10, 70 + 20 * i, 370, 70 + 20 * i);g2.drawLine(10 + 20 * i, 70, 10 + 20 * i, 430);}语句绘制一个18*18的网格棋盘,每次下棋后通过调用repaint方法来初始化程序。

java课程设计报告_五子棋

java课程设计报告_五子棋

目录第一章软件平台……………………………游戏设计思路…………………………第二章小游戏五子棋的开发过程………………第一节JAVA基础知识………………………第二节启动程序的分析……………………第三节游戏设计过程………………………第三章总结…………………………………………第四章参考文献……………………………………第五章附录…………………………………………游戏设计思路:第一节 java程序基础知识本系统有4个程序每个程序都导入了不同的包和类运用了不同的所学知识。

不同的类和包提供的方法、类型等都不同,本程序还使用了继承。

以至使其能够完成不同的功能。

本节主要讲述本系统所使用的基础知识。

1、类的基础<1、类的定义JAVA中的类实质上是一种对象类型,它是对具有相同属性和相同行为对象的一种抽象。

类是java程序中最小的组成单位。

<2、 Java中类定义的格式为:[类修饰符] class 类名 [extends 基类] [implements 接口]{// 成员变量声明(Member variable declaration)// 成员方法声明(Member method declaration)}其中,class、extends和implements都是Java的关键字。

类修饰符、extends和implements是关于修饰符、继承和接口的容。

2、继承继承性是面向对象程序设计语言的一个重要特征,通过继承可以实现代码的复用。

Java语言中,所有的类都是直接或间接的继承 ng.object类而得到的。

被继承的类称为基类或父类,继承而的来的类成为子类。

子类继承基类的方法和属性,同时也可以修改基类的方法和属性,并增加自己新的属性和方法。

Java不支持多重继承。

即一个子类不能拥有两个或以上的父类。

3、包<1、包的定义在Java中,把相关的代码组织到一起,称为“包”。

包市一种将相关类、接口或其他包组织起来的集合体,目的是为了将包含类代码的文件组织起来,易于查找和使用。

java五子棋实习报告

java五子棋实习报告

Java程序设计基础实习报告课程名称Java程序设计基础实习题目java五子棋专业班级学号学生姓名指导教师Java实习报告一、JAVA技术介绍:Java技术是一门编程语言,也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。

Java编程语言和众不同之处在于:Java程序既是编译型的(转换为一种称为Java字节码的中间语言),又是解释型的(JVM 对字节码进行解析和运行)。

编译只进行一次,而解释在每次运行程序时都会进行。

编译后的字节码采用一种针对JVM 优化过的机器码形式;解释器是JVM 的实现。

二、摘要五子棋作为一个棋类竞技运动,在民间十分流行,本课题主要完成了五子棋人机对战和玩家之间联网对战2个功能。

网络连接部分为Socket编程应用,客户端和服务器端的交互用Class Message定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,及错误处理。

服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。

在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。

分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑AI方案,如递归算法、电脑学习等。

算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。

三、课题分析和设计1)键盘上事先设定8个按键,分作两组,每组四个,分别代表两个人用来控制棋子的上下左右键。

2)绘制棋盘,15条横线,15条竖线,在直线交点处下棋子(实心圆形)。

3)黑子先行,黑白交替下子,在棋盘上设定一个和棋盘格大小边长相等的正方形,初始状态,正方形的中心位于期盼的中心点。

当一方欲走棋的时候,应用四个按键来控制所要下棋的位置,每按一次按键,正方形都要向相应方向移动一个格,并且让喇叭发出某种声音,将要移出边界时,发出另一种警告声音并不让其移出边界。

JAVA程序设计五子棋制作实训

JAVA程序设计五子棋制作实训

JAVA程序设计五子棋制作实训五子棋是一种非常古老而有趣的棋类游戏,它的规则简单,但又充满了智慧的机会。

在这个实训中,我们将使用JAVA编程语言来制作一个五子棋游戏程序。

首先,我们需要创建一个棋盘类,来表示游戏的棋盘。

棋盘可以用一个二维数组来表示,每个数组元素可以是一个空格、一个黑子或一个白子。

我们可以使用0表示空格,1表示黑子,-1表示白子。

棋盘类还需要提供方法来判断是否有玩家赢得了游戏,以及判断当前位置是否为空。

接下来,我们需要创建两个类来表示黑子和白子。

这两个类都可以拥有一个坐标属性来表示它们在棋盘上的位置,还可以拥有方法来判断它们是否赢得了游戏。

然后,我们需要创建一个游戏类,来控制整个游戏的进行。

游戏类需要实例化一个棋盘对象和两个玩家对象。

游戏类提供方法来让玩家交替落子、判断游戏是否结束以及输出棋盘的状态。

最后,我们可以创建一个主类,来启动游戏。

在主类中,我们可以创建游戏对象并调用游戏的开始方法来开始游戏。

下面是一个示例代码,用于实现上述的五子棋游戏程序:```javapublic class Chessboardprivate int[][] board;public Chessboard(int size)board = new int[size][size];}public boolean isOccupied(int x, int y)return board[x][y] != 0;}public boolean isWin(int x, int y, int player)//判断该位置是否4子连珠,即判断水平、垂直和两个对角线方向上是否有连续的4个同色棋子//略}public void prin//输出棋盘的状态//略}public class Playerprivate int x;private int y;public Player(int x, int y)this.x = x;this.y = y;}public void move(Chessboard board)//玩家落子的逻辑//略}public boolean isWin(Chessboard board) return board.isWin(x, y, 1);}public class Gameprivate Chessboard board;private Player player1;private Player player2;public Game(int size)board = new Chessboard(size);player1 = new Player(0, 0);player2 = new Player(size - 1, size - 1); }public void starint turn = 1;while (true)Player currentPlayer = (turn == 1) ? player1 : player2; currentPlayer.move(board);board.print(;if (currentPlayer.isWin(board))System.out.println("Player " + turn + " wins!"); break;}turn = -turn;}}public class Mainpublic static void main(String[] args)Game game = new Game(15);game.start(;}```。

《Java程序设计实训教程》教学课件—02网络五子棋

《Java程序设计实训教程》教学课件—02网络五子棋

3. 创建棋子类(1)
• Chess 类
private int col; //棋子在棋盘中的列索引 private int row; //棋子在棋盘中的行索引 private Color color;//颜色 public static final int DIAMETER=GRID_SPAN-2; ChessBoard cb; //棋子是要画在棋盘中,需要一个棋盘的引用 public void draw(Graphics g)
2.9 完善“关闭程序”按钮的功能
1. 在Command类中添加命令
2. 客户端向服务器发送命令
修改“关闭程序”按钮的响应代码 Communication类添加方法disConnect()
3. 服务器处理quit命令 4. 客户端处理delete命令
作业
• 1.目前的程序每方总的用时是在程序中指定的,如果用 户希望在申请对局时自己指定用时时间,程序中应如何处 理?
2. 创建客户端界面右侧的三个类
• 图标: black.jpg, white.jpg • PanelTiming类 • PanelUserList类 • PanelMessage类 • 修改FiveClient类
PanelBoard
PanelTiming PanelUserList
PanelMessage
• 在Five类加入:
private ChessBoard boardPanel; • 准备图片Boad.jpg
Toolkit getDefaultToolkit() getImage()
paintComponent() getPreferredSize() : (Jfram在pack时,要知道board的大小)。

五子棋程序实习报告

五子棋程序实习报告

一、实习背景随着计算机技术的不断发展,编程已成为现代生活的重要组成部分。

为了提高自己的编程技能,培养自己的实际动手能力,我选择了五子棋程序设计作为实习项目。

五子棋是一种古老的中国传统棋类游戏,具有极高的趣味性和挑战性。

通过本次实习,我学习了Java编程语言,掌握了五子棋游戏的算法和实现方法,提高了自己的编程水平。

二、实习目标1. 熟练掌握Java编程语言的基本语法和常用类库;2. 掌握五子棋游戏的设计和实现方法;3. 学会使用面向对象编程思想进行程序设计;4. 培养自己的团队协作和沟通能力。

三、实习内容1. 系统设计在系统设计阶段,我首先分析了五子棋游戏的规则和特点,明确了游戏的基本功能,包括:棋盘显示、落子、判断胜负、悔棋等。

然后,我设计了五子棋游戏的基本架构,包括以下几个模块:(1)棋盘模块:负责棋盘的显示和落子操作;(2)落子模块:负责实现玩家的落子操作;(3)判断胜负模块:负责判断游戏是否结束,以及判断胜负;(4)悔棋模块:负责实现玩家的悔棋操作。

2. 算法设计五子棋游戏的算法主要包括以下几个部分:(1)棋盘表示:使用二维数组表示棋盘,每个元素代表一个棋子,其中0表示空位,1表示玩家1的棋子,2表示玩家2的棋子;(2)落子算法:根据玩家的落子位置,在棋盘上放置对应的棋子;(3)判断胜负算法:从落子位置开始,向四个方向(上、下、左、右)查找连续的五个相同的棋子,如果找到,则判断为胜利;(4)悔棋算法:撤销上一步的落子操作,将棋盘恢复到上一步的状态。

3. 编码实现在编码实现阶段,我按照设计文档和算法要求,使用Java编程语言完成了五子棋游戏的基本功能。

具体实现如下:(1)棋盘模块:使用JFrame创建一个窗口,使用JPanel绘制棋盘,使用鼠标监听器实现落子操作;(2)落子模块:在棋盘模块的基础上,增加一个方法,用于处理玩家的落子操作;(3)判断胜负模块:编写一个方法,用于判断游戏是否结束,以及判断胜负;(4)悔棋模块:编写一个方法,用于撤销上一步的落子操作。

基于JAVA的五子棋游戏系统设计与实现

基于JAVA的五子棋游戏系统设计与实现

基于JAVA的五子棋游戏系统设计与实现五子棋是一种非常有趣的棋类游戏,本文将基于JAVA语言对五子棋游戏系统进行设计与实现。

1.系统需求分析首先,我们需要对五子棋游戏系统的需求进行分析。

五子棋游戏的基本规则是:两名玩家轮流落子,先连成五子的一方获胜。

游戏棋盘是一个15*15的方格,玩家可以在空白的方格上落子,每次只能落一个子。

2.系统设计基于需求分析,我们将五子棋游戏系统分为四个模块:游戏界面、游戏规则、游戏控制和游戏存储。

游戏界面模块:该模块负责游戏的显示和用户交互。

我们可以使用图形用户界面(GUI)来实现游戏界面,可以使用JAVA的Swing或JavaFX来进行界面设计。

游戏规则模块:该模块负责规定游戏的规则和判断胜负。

该模块主要包括判断是否有玩家连成五子和判断当前位置是否可以落子等方法。

游戏控制模块:该模块负责控制游戏的流程,包括轮流落子、判断胜负、判断平局等。

该模块需要和游戏规则模块进行交互。

游戏存储模块:该模块负责保存游戏的进度和记录,可以使用文件系统或数据库来进行存储。

3.系统实现接下来,我们开始实现五子棋游戏系统。

1)游戏界面模块:可以使用JavaFX实现游戏界面,包括棋盘的绘制、玩家落子的交互等。

2)游戏规则模块:实现判断是否有玩家连成五子的方法,以及判断当前位置是否可以落子的方法。

3)游戏控制模块:实现游戏的流程控制,包括轮流落子、判断胜负、判断平局等。

4)游戏存储模块:实现游戏进度和记录的保存,可以使用文件系统或数据库进行存储。

4.系统测试与优化完成系统实现后,我们需要对系统进行测试和优化。

可以通过对游戏进行多次测试,检查游戏的各个模块是否正常工作,并根据测试结果对系统进行优化。

5.系统部署与使用完成测试和优化后,我们可以将游戏系统进行部署,供用户使用。

总结:通过以上设计与实现,我们成功地基于Java语言实现了一个五子棋游戏系统。

该系统不仅具备了基本的游戏功能,还具备了用户友好的界面和存储功能。

java课程设计五子棋游戏完整版

java课程设计五子棋游戏完整版

沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学算下一步棋,isMatrix位true参数为插入点棋格坐标,否则参数为插入点像素坐标。

当游戏结束的时候使用Graphics g调用方法,在游戏过程中如果是黑方或是白方获胜在棋盘中就会显示是哪方获胜。

3.设计结果与分析(1)当进入到游戏当中可以选择是哪个颜色的棋先出,选择好之后便可以单机开始进行下棋,如果在游戏过程中出现什么问题可以单机再来一局重新开始游。

五子棋游戏的主界面如图2所示:图2.程序主界面(2)如果实黑棋先开始那么开始后的界面中先出的棋显示的是黑棋,如果是白棋先出则显示的是白棋,以黑棋为例如图3所示:沈阳大学图3.黑棋先出的界面图(3)对于五子棋游戏,无论人机对战,还是双人对战,都需要判断棋盘上是否存在五子连珠情况,这既是游戏名字的由来,也是游戏结束的标志。

判断五子连珠的原理是从横,竖,左斜线,右斜线4条线上判断是否存在5个相连的同类棋子,黑棋的五个棋子在横、竖或斜方向上连接成一线即为该方赢如图4所示:沈阳大学图4.游戏结束界面(4)白棋的五个棋子在横、竖或斜方向上连接成一线即为该方赢如图4所示:沈阳大学图5.白棋胜利界面图4.设计体会通过这次课程设计,我进一步加深对基础理论的理解,扩大专业知识面,对收集资料、查阅文献、方案制定等实践方面得到了很好的锻练,促进对所学知识应用能力的提高。

同时我渐渐的复习了Java使用方法和编程语法,之后的编程过程也相对得心应手,基本完成了预期计划的要求。

在此感谢我的指导老师—原玥老师,她在课题的研究上不遗余力的给予指导。

她严谨的治学态度深深的影响了我,使我受益匪浅!这个课设题对我来说有一定的挑战性,因为我自己也不知道自己到底学到了一个什么样的境界。

但可以肯定,这个课设题的要求绝对在我的能力范围以上。

之所以选择这个题目是想逼着自己去查更多的资料,学到更多的东西。

结果也确实是这样的,我在这次课设中学到了不少东西,也理解了许多原来不理解的东西。

java课程设计五子棋

java课程设计五子棋

java课程设计五子棋一、课程目标知识目标:1. 理解五子棋游戏的规则及基本算法。

2. 掌握Java编程语言的基本语法,如变量声明、条件语句、循环结构等。

3. 学会使用Java中的数组进行数据存储和处理。

4. 了解面向对象编程的基本概念,如类的定义、对象创建和使用。

技能目标:1. 能够编写出实现五子棋游戏核心功能(如棋盘绘制、落子判断、胜负判断)的Java程序。

2. 通过编程实践,提升问题分析能力,学会将现实问题转化为计算机程序解决问题。

3. 能够使用合适的调试工具检查和修复程序中的错误,提高代码调试能力。

4. 培养良好的编程习惯,如编写规范的注释、合理的变量命名等。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发其探究计算机科学领域的好奇心。

2. 鼓励学生积极合作,通过小组讨论和交流,培养团队协作精神。

3. 培养学生的逻辑思维能力和创新意识,使其在面对问题时能够主动思考、寻找解决方案。

4. 增强学生的自信心,使其在完成五子棋项目的过程中感受到编程带来的成就感。

课程性质分析:本课程为实践性较强的学科项目,结合Java编程语言,以五子棋游戏为载体,引导学生学习编程知识,培养其编程技能。

学生特点分析:学生处于能够理解编程基本概念,具备初步编程能力的阶段,对实际项目充满兴趣,希望将所学知识应用于实际问题。

教学要求:教师应注重理论与实践相结合,引导学生主动探索,关注学生个体差异,提供个性化指导,确保学生在完成课程目标的同时,提高编程能力和综合素质。

二、教学内容1. Java基本语法复习:变量声明与赋值、数据类型、运算符、条件语句(if-else、switch)、循环结构(for、while)。

相关教材章节:第一章至第三章。

2. 数组的使用:一维数组的定义、初始化、遍历;二维数组的应用。

相关教材章节:第四章。

3. 面向对象基础:类的定义、属性、方法;对象的创建与使用。

相关教材章节:第五章。

4. 五子棋游戏设计:a. 棋盘绘制:使用二维数组表示棋盘,绘制初始界面。

《JAVA程序设计》课程设计-五子棋小游戏

《JAVA程序设计》课程设计-五子棋小游戏

《JAVA程序设计》课程设计-五子棋小游戏《JAVA程序设计》课程设计题目: 五子棋小游戏业: 信息与计算科学专学号: 070930205等姓名:指导教师: 成绩:二00九年十二月九日1.课程设计研究背景及意义五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种之一。

发展于日本,流行于欧美。

容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。

然则看似很简单的一个小游戏,却对我们这组刚接触JAVA编程的成员来说却是一个不错的挑战,由于水平不限不能做成和电脑进行对战,也对于和其它电脑联机对战的模式不太清楚,故做成一个自己和自己对战的五子棋来考验我们的JAVA 的技术。

2.课程设计题目描述和要求题目:五子棋小游戏游戏主要界面如下:游戏规则:1,棋子分为黑白两色,采用19×19棋盘。

2,自己和自己对战,白子和黑子交替下,直到白子或黑子一方有五粒子连在一起,最先完成五粒子连在一起的一方为胜利的一方(可以是横、竖、斜、反斜)。

3,允许悔棋,且允许一直悔到棋盘上没有棋子了,悔棋后允许恢复。

当悔棋后下子了,则不允许再恢复了。

4,有棋子的地方不允许再下棋子了5,落子后不能移动或拿掉。

7,胜利后,棋局重新开始。

主要功能:1,鼠标点棋盘上的任意一点,棋子会落入离这点最近的一个交叉点处。

2,白子和黑子交替下。

3,当下到一半时,可以保存进度。

4,关闭再打开后,可以重新读取进度再接着下。

5,允许悔棋,且允许一直悔到棋盘上没有棋子了。

6,悔棋后允许恢复。

当悔棋后下子了,则不允许再恢复了。

7,下棋的过程中,随时可以重新开始。

8,有棋子的地方不允许再下子了。

9,当悔到没有棋子的时候会弹出消息。

10,任意一方胜利后会弹出消息11,恢复的步数超过了悔棋的步数的时候会弹出消息12,当任意一方胜利后,棋局重新开始。

13,设有菜单栏,玩家可以点菜单来完成某种操作。

五子棋JAVA实验报告 (1)

五子棋JAVA实验报告 (1)

JA V A实验报告课程名称:JAVA程序设计教程实验题目:五子棋院系:公共管理学院信息管理系班级:信息管理与信息系统一班学号:2013190325姓名:谢巧婷五子棋JA V A实验报告一、实验目的和要求1、能够用编程语言实现一个简单的五子棋程序2、在实际系统中使用、实现人工智能的相关算法3、进一步加深对人工智能算法的理解二、五子棋的基本常识与原理1、五子棋的基本常识与任何一种竞技棋一样,五子棋的每一局棋也分为三个阶段:开局,中局和残局。

五子棋的开始阶段称为开局,或称布局。

其开局阶段是十分短暂的,大约在七着与十几着之间。

在这一阶段的争夺中,双方的布局,应对将对以后的胜负起着极为关键的作用。

在开局阶段取得的形势好坏,主动与被动,先手与后手的优劣程度,往往直接影响中局的战斗。

因此积极处理好开局和开局向中局的过渡十分重要。

五子棋是从一至五,逐渐布子,发展连系,同时运用限制和反限制的智慧,在连子的过程中为自己的棋子争得相对的主动权和优势,逐步扩展优势,或者从劣势转化为优势,击溃对方的防线,最后连五取胜或抓禁手取胜或迫使对方投子认负。

2、五子棋比赛的相关规定(1)职业连珠规则a.黑方先下子,白后下,从天元开始相互顺序落子。

b.最先在棋盘横向、竖向、斜向形成连续的相同色五个棋子的一方为胜。

c.黑棋禁手判负,白棋无禁手。

黑棋禁手包括“三三”(包括“四三三”)、“四四”(包括“四四三”)、“长连”。

即黑棋只能以“四三”取胜。

有关术语解释请见图示说明。

d.如分不出胜负,则定为平局。

对局中拔子、中途退场均判为负。

e.五连与禁手同时形成,判胜。

(2)比赛中的规定和特例a.对局开始前,双方猜子,大数减小数,单数交换,偶数不换。

b.白棋第一手(即盘面第二着棋)应在天元为界自己一侧布子,主要以示尊重对方,之后双方可任意行子。

c.对局中双方应遵守“职业连珠五子棋规则”,如出现争议,应由裁判判定。

d.对局中掉子(棋子掉落在棋盘上)的一方判负。

“Java程序设计”——“五子棋”综合实验报告

“Java程序设计”——“五子棋”综合实验报告

“Java程序设计”综合实验报告一、前言1、项目背景通过五子棋这个课程设计。

可以让我们更加熟悉Java程序设计这门课程,加强对Eclipse这个软件的使用,加深对Java语言的掌握,提高编程水平。

同时培养能力,为将来的工作打下坚实的基础。

2、目标和意义目标:锻炼我们的能力,提高组中每一个人对Java语言的认识,培养编程兴趣。

让每一个人都能参与进来,提高团队合作意识。

意义:通过编写综合类的程序,运用已经学过的知识,和自主学习一些新的知识,提高了学习能力,掌握了一些自主学习的方法。

3、开发分工及进度安排二、功能分析1、主要模块本项目主要分为3个大的模块,分别为整体布局;界面绘制;与对战的算法。

由于游戏规则的设置,这里的游戏模式分为人机对战和人人对战。

黑白双方依次落子,由黑子先下,当任意一方在棋盘上形成横向,竖向,斜向连续五个相同颜色的棋子的一方获胜。

主要功能①实现在2种模式下五子棋的游戏。

②实现通过鼠标的点击位置放置棋子,达到下棋的目的。

③实现游戏玩家对游戏模式的自主选择。

④实现对在每种游戏模式下的黑子先手下棋的规定,先达到5子即为胜利。

三、关键功能的设计与实现1、数据结构与算法数据结构:项目中主要数据结构为二维数组。

用于存储棋盘上棋子的信息,和保存棋型表。

主要算法:(一)iswin()函数:用来判断输赢,通过鼠标事件所得到的点或者电脑下的点的坐标,来扫描该点八个方向的相邻的相同棋子数,上下,左右,斜左上下,斜右上下为四组,任意一组等于5即为胜利,由于本程序没有考虑禁手原则,只考虑了民间规则,所以大于5也为胜利。

public int iswin1(int x, int y, int heqi) {int k, s1, s2, s3, s4, s5, s6, s7, s8;s1 = 0;s2 = 0;s3 = 0;s4 = 0;s5 = 0;s6 = 0;s7 = 0;s8 = 0;if (heqi == 256)return -1;for (k = 1; k < 5; k++) {if (y + k < 16 && qipanqizi[x][y + k] == qipanqizi[x][y])s1++;elsebreak;}for (k = 1; k < 5; k++) {if (y - k > -1 && qipanqizi[x][y - k] == qipanqizi[x][y])s2++;elsebreak;}for (k = 1; k < 5; k++) {if (x + k < 16 && y + k < 16&& qipanqizi[x + k][y + k] == qipanqizi[x][y]) s3++;elsebreak;}for (k = 1; k < 5; k++) {if (x - k > -1 && y - k > -1&& qipanqizi[x - k][y - k] == qipanqizi[x][y]) s4++;elsebreak;}for (k = 1; k < 5; k++) {if (x + k < 16 && qipanqizi[x + k][y] ==qipanqizi[x][y])s5++;elsebreak;}for (k = 1; k < 5; k++) {if (x - k > -1 && qipanqizi[x - k][y] ==qipanqizi[x][y])s6++;elsebreak;}for (k = 1; k < 5; k++) {if (x - k > -1 && y + k < 16&& qipanqizi[x - k][y + k] == qipanqizi[x][y]) s7++;elsebreak;}for (k = 1; k < 5; k++) {if (x + k < 16 && y - k > -1&& qipanqizi[x + k][y - k] == qipanqizi[x][y]) s8++;elsebreak;}if (s1 + s2 >= 4 || s3 + s4 >= 4 || s5 + s6 >= 4 || s7 + s8 >= 4) {return 1;} elsereturn 0;}(二)人机对战通过对整个棋盘上每一个点的扫描,获得了电脑和玩家的棋型表,表中数据为该点的权值。

java课程设计五子棋实验报告

java课程设计五子棋实验报告

java课程设计五子棋实验报告Java课程设计五子棋实验报告一、实验目的本次实验主要目的是运用Java编程语言,设计并实现一个简单的五子棋游戏,通过实践掌握Java编程基础知识和面向对象编程思想。

二、实验内容本实验要求设计并实现一个五子棋游戏,主要功能包括:1. 实现双人对战功能,允许两个玩家交替下棋;2. 实现判断胜负功能,当某一方连成五子时,游戏结束,显示胜利者;3. 实现悔棋和重新开始的功能。

三、实验原理1. 界面设计界面设计采用Java Swing框架,主要包括棋盘和控制面板两部分。

棋盘使用JPanel实现,通过绘制线条和圆形实现棋盘和棋子的显示。

控制面板使用JPanel和JButton实现,提供重新开始和悔棋功能。

2. 游戏逻辑游戏逻辑主要包括下棋和判断胜负两个部分。

下棋功能通过记录当前玩家和棋子位置实现,判断胜负则通过遍历棋盘上的所有棋子,判断是否满足连成五子的条件。

3. 实现悔棋和重新开始的功能悔棋功能主要通过记录每一步棋的位置和玩家来实现,重新开始则需要清空棋盘和游戏记录。

四、实验步骤1. 设计并实现界面,包括棋盘和控制面板;2. 实现游戏逻辑,包括下棋和判断胜负;3. 实现悔棋和重新开始的功能;4. 进行代码测试和调试,确保程序能够正常运行。

五、实验结果经过测试,程序能够正常运行,实现了双人对战、判断胜负、悔棋和重新开始的功能。

六、实验总结本次实验通过设计并实现一个简单的五子棋游戏,巩固了Java编程基础知识和面向对象编程思想,同时也学习了Swing框架的使用。

在实现过程中也遇到了一些问题,如棋子位置的计算、胜负判断的实现等,通过查阅资料和调试最终得以解决。

总体来说,本次实验收获颇丰,对Java编程有了更深入的了解和认识。

五子棋实训报告(电子版)范文

五子棋实训报告(电子版)范文

《JA V A程序设计》实训报告课程名称:JA V A程序设计专业:计算机应用技术班级:11计算机应用班小组成员:巨敏石丽涛张娅雯李延尚文学董丁喜周致远指导老师:***目录一.实训目的 (1)二. 实训题目和要求2.1实训题目描述 (1)2.2实训要求 (1)三.实训报告内容3.1五子棋主框架 (1)3.2棋盘、棋子及说明信息 (1)3.3对弈算法相关问题设计 (1)四.实训中的部分代码 (2)五.五子棋源程序代码 (3)六. 总结 (17)一、实训目的本次实训,学生可以将理论知识与具体实践相结合,巩固对JA VA相关方法和概念的理解。

通过实训单机版五子棋游戏的编程,掌握JA V A语言编程的基础知识并能熟练运用,熟悉累声明与对象的使用,运用JA V Aswing编写单机版五子棋游戏,并实现其功能。

通过本次实训,可以开拓思维,增强编程思想,为深入学习JA VA打下良好的基础。

二、实训题目描述和要求2.1实训题目描述实训题目:JA V A五子棋单机版游戏。

描述:通过JA V A的swing组件,实现五子棋简单的双人对弈,并通过内部条件判断实现输赢的双方的下棋过程。

2.2实训要求(1)五子棋游戏的主窗口也就是游戏界面的实现(2)棋子黑白色的设置及判定(3)完成判断某一横行是否练成五子及所有方向是否练成五子的功能(4)几个简单按钮的实现,“重新开始”“悔棋”“退出”按钮(5)菜单栏的实现,“重新开始”“悔棋”“退出”菜单项三、实训报告内容3.1主框架编写一个startCheesJFrame类,主要用来显行主窗体界面,包括工具条面板、菜单栏项。

设置界面关闭事件。

并编写一个内部类MyItemListener来监听按钮和菜单栏的单机事件。

3.2棋盘、棋子(1)编写point类,包括棋子的X/Y索引,颜色。

定义构造函数和相应的get方法。

(2)编写ChessBoard类,设置棋盘背景颜色为橘黄色(3)在主框架类中创建ChessBoard对象,并添加到主框架中(4)编写mousePressed方法来进行绘制棋盘和棋子3.3对弈算法相关问题设计(1)编写mousePressed方法的内容,预定义isBlack表示下的是黑棋还是白棋。

Java项目开发实战──五子棋游戏

Java项目开发实战──五子棋游戏

24.2.3 与监听鼠标相关的类——MouseListener
MouseListeneru 是一个接口。用于接收组件上“感 兴趣”的鼠标事件(按下、释放、单击、进入或离开) 的侦听器接口 【范例24-8】 测试MouseListener,在主窗口类文 件FiveChessFrame.java中输入以下代码
JFrame 是 创 建 窗 体 的 swing 类 , 存 在 于 javax.swing.JFrame 包中。用来创建一个图形界面的原 始窗口 1. JFrame中的主要方法如下
setVisible(): 设置窗体是否显示 setTitle() : 设置窗体标题
setSize() :
设置窗体大小
setLocation(): 设置窗体初始显示的位置 setResizable(): 设置窗体是否可以改变大小
24.2.1 与窗体相关的类——JFrame
2. 和JFrame相关的取得屏幕大小的方法如下: Toolkit.getDefaultToolkit().getScreenSize().width: 取得当前屏幕的宽度
24.7 保存棋局
保存之前下过的棋子 通过一个二维的数组来保存之前下过的所有棋子 (详见代码)
24.8 判断游戏胜负
依据五子棋的基本游戏规则,判断是否有同一颜 色的棋子连成 5 个完成了五子棋游戏的核心算法 这里可以把核心算法总结成一个灵活的方法 (详见代码)
24.9 处理屏幕闪烁问题
双缓冲技术:用在手机游戏中用的是最多的,原 因是手机的内存相对较小,屏幕闪烁问题比较明显 (详见代码)
24.4 开发前的知识准备之三——
图形的绘制类——Graphics
Java 语言中提供绘制、着色操作功能的基类称作 java.awt.Graphics,paint() 方法只有一个参数,该参数是 Graphics 类的实例。下面介绍几个程序用到的方法
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《JAVA程序设计》实训报告实训题目: 五子棋游戏制作专业:计算机网络班级:14网络(1)班姓名:指导教师:2015 年12 月31日目录1.实训目的 (3)2.实训题目描述和要求 (4)2.1 实训题目描述 (4)2.2 实训题目要求 (4)3.实训报告内容 (5)3.1 需求分析 (5)3.2 概要设计 (5)3.3 详细设计 (6)3.4 编码 (7)3.5 测试 (19)4.总结 (24)实训指导教师评语 (26)1.实训目的随着经济社会的迅速发展,人们生活水平有了很大的提高,人们的生活观念也发生了巨大的改变。

高品质的生活、现代化得生活方式成为人们共同追求的目标;休闲、娱乐性活动作为时尚生活中的一部分,而被大多数的人所追捧。

棋类项目作为一种智力型项目,可以益智健心、修身养性,也可以满足人们对于娱乐和休闲的新需求。

一些项目比如五子棋等等,由于项目本身互动的特点,一直被人们所喜爱,因此得以生存和发展,成为许多人喜爱的休闲娱乐性棋类项目。

而今,以网络技术为核心和计算机技术的现代网络技术已经在现实生活得到了十分的广泛的使用。

休闲类网络游戏集合了益智性、趣味性、互动性、娱乐性于一体,已经成为多数人群的选择的休闲方式。

《Java程序设计》课程实训,学生可以将理论知识与具体实践相结合,巩固对JAVA相关方法和概念的理解,通过实训单机版五子棋游戏的编程,加深对所学知识的理解和应用。

如: 通过实训能够结合实例进一步理解面向对象程序设计的基本概念,掌握程序设计的基本方法和技巧,灵活的使用包,进一步的理解接口,熟练的掌握在接口中对事件的实现。

深入理解和灵活运用面向对象程序设计的基本特性,培养良好的程序设计风格,提高抽象思维、逻辑思维的能力。

并且让学生能够基本使用实训软件eclipse,以及安装JDK和环境变量的配置。

通过本次实训,可以开拓思维,增强编程思想,为深入学习JAVA打下良好基础,在学完此门课程后,能使用Java开发小型应用程序。

2.实训题目描述和要求2.1 实训题目描述实训题目:JAVA五子棋单机版游戏制作。

描述:五子棋在我国的历史可谓是源远流长,喜爱它的玩家也是大有人在,是很多人的娱乐首选,也是一种竞技项目。

但很多的五子棋软件一般都是单机版的,游戏无法在两个玩家之间进行。

基于上述原因,五子棋作为一个古老而又有广泛群众基础的游戏,他的完善性无疑是家玩家有很大的影响,在互联网迅速发展的今天,五子棋的流行已经不仅仅只是在现实生活中的面对面的娱乐竞技,在网上也已经是广大玩家的首选娱乐游戏已在各个游戏平台有应用。

通过JAVA的swing组件,实现五子棋简单的双人对弈并通过内部条件判断实现输赢的双方下棋过程。

2.2 实训题目要求1. 运用JAVA程序设计和Eclipse软件设计出一个五子棋程序。

2. 五子棋游戏的主窗口也就是游戏界面的实现(尽量制作一个界面美观的游戏界面)3. 棋子黑白色的设置及判定。

4. 完成判断某一横行是否连成五子及所有方向是否连成五子的判断。

5. 几个简单按钮的实现,“开始游戏”,“游戏设置”,“游戏说明”,“关于”,“认输”,“退出”。

6. 能够完成基本的下棋功能并能判断输赢7. 能够实现开始游戏的功能,随时重新开始一盘游戏。

8. 能够实现游戏设置的功能,可以对游戏玩家有时间的设定,且要求时间不能为负数,如果时间为0则无限制,9. 能够实现游戏说明的功能,可以解释游戏的基本规则。

10. 能够实现游戏认输的功能,当有一方认输时,游戏结束。

11. 能够实现游戏关于的功能,关于游戏的制作及问题解决指南。

12. 能够实现游戏退出的功能,当游戏结束时游戏退出。

13. 完成当某一方下棋是游戏界面会有游戏信息提示。

14. 完成游戏时间设置游戏界面下方会有时间走时功能。

3.实训报告内容3.1 需求分析一款小游戏的确立是建立在各种各样的需求上面的,这种需求往往来自于玩家的实际需求,其中玩家的实际需求最为重要.面对游戏拥有不同知识和理解层面的玩家,游戏制作人对玩家需求的理解程度,在很大程度上决定了此类游戏开发的成败因此如何更好地的了解,分析,明确玩家需求,并且能够准确,清晰以文档的形式表达给游戏制作人,保证开发过程按照满足玩家需求为目的正确开发方向进行,是游戏制作人需要面对的问题。

作为五子棋的设计需要考虑到的最基本的需求莫过于人机对战与人人对战功能的实现,当然还有下棋过程中的下棋悔棋功能以及判断游戏的胜负等方面的要求当然最好是要考虑到界面的友好性,作为一个娱乐软件,还应该考虑到玩家在游戏时的舒适性本次实训要求制作的是一个简单的单机版五子棋游戏,所以只需要完成一些最基本的功能即可,例如游戏开始功能、游戏设置功能、游戏认输功能以及游戏退出功能等。

3.2 概要设计制作的五子棋游戏整体界面设计为500*500像素大小,其中棋盘大小为360*360像素大小。

游戏界面上能够显示相关游戏信息,例如当前游戏玩家信息、游戏剩余时间、游戏输赢信息等。

3.3 详细设计整个游戏界面的上方显示当前游戏玩家信息,能够提醒黑白双方下棋。

中间靠左显示游戏棋盘,由纵横相互构成一个分割均匀的小正方形。

中间靠右放置各个游戏功能按钮,如:“开始游戏”“游戏设置”“游戏说明”“认输”“关于”“退出”,且它们都能各自实现自己的功能。

下方显示双方玩游戏玩家剩余时间信息。

而判断胜负是这个游戏的核心,一个游戏最重要的部分,如果连判断胜负都不可以实现的话,那么这个游戏程序是没有用的。

依据五子棋的基本规则,判断某一方向上是否有同一颜色的棋子连成五个或五个以上的,如果有,那么游戏就结束了,并判先连成五子的一方获得了胜利。

效果如下图所示:3.4 编码1. 导入包代码package org.liky.game.frame;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Toolkit;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;import javax.swing.JFrame;import javax.swing.JOptionPane;2. 窗口制作代码public FiveChessFrame() {//设置标题this.setTitle("五子棋") ;//设置窗体大小this.setSize(500,500);//设置窗体出现的位置this.setLocation((width - 500)/2, (height-500)/2);//设置窗体大小不可改变this.setResizable(false);//将窗体设置为默认关闭程序结束this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//为窗体加入监听器this.addMouseListener(this);//将窗体显示出来this.setVisible(true) ;t.start();t.suspend() ;//刷新屏幕,防止开始游戏时出现无法显示的情况3. 图片路径代码String imagePath = "" ;try {imagePath = System.getProperty("user.dir")+ "/bin/image/background.jpg" ;bgImage = ImageIO.read(new File(imagePath.replaceAll("\\\\", "/")));} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}this.repaint();}4. 双缓冲技术代码public void paint(Graphics g) {//双缓冲技术防止屏幕闪烁BufferedImage bi = new BufferedImage (500,500,BufferedImage.TYPE_INT_ARGB);Graphics g2 = bi.createGraphics() ;g2.setColor(Color.BLACK);5. 绘制界面信息代码//绘制背景g2.drawImage(bgImage, 1, 25, this) ;//输出标题信息g2.setFont(new Font("黑体",Font.BOLD,20));g2.drawString("游戏信息:" + message, 130, 60);//输出时间信息g2.setFont(new Font("宋体",0,16));g2.drawString("黑方时间: "+blackMessage, 40, 470);g2.drawString("白方时间: "+whiteMessage, 235, 470);6. 绘制棋盘,棋子代码//绘制棋盘for (int i = 0;i<19;i++){g2.drawLine(10, 70+20 * i, 370, 70+20 * i);g2.drawLine(10 + 20 * i, 70, 10 + 20 * i, 430);}g2.fillOval(188, 248, 4, 4);//绘制棋子x = (x-10) / 20*20+10; y = (y-70) / 20*20+70;//黑子/*g.fillOval(x-7, y-7, 14, 14); //白子 g.setColor (Color,WHTTE);g.fillOval(x-7,y-7,14,14); g.setColor(Color,BLACK);g.drawOval(x-7,y-7,14,14);//绘制全部棋子for (int i= 0; i<19;i++){for (int j = 0; j<19;j++) {if (allChess[i][j] == 1){//黑子int tempX = i * 20+10 ;int tempY = j * 20+70 ;g2.fillOval(tempX-7, tempY-7, 14, 14);}if (allChess[i][j] == 2) {//白子int tempX = i * 20+10 ;int tempY = j * 20+70;g2.setColor(Color.WHITE);g2.fillOval(tempX-7, tempY-7, 14, 14);g2.setColor(Color.BLACK);g2.drawOval(tempX-7,tempY-7,14,14);}}}g.drawImage(bi,0,0,this) ;}7. 判断鼠标按下棋子下落代码public void mousePressed(MouseEvent e) {// TODO Auto-generated method stub/*System.out.println("X:"+e.getX());System.out.println("y:"+e.getY());*/if (canPlay == true) {x = e.getX() ;y = e.getY() ;if (x >=10 && x <= 370 && y >= 70 && y <= 430){ if(((x - 10) - (x - 10) /20 * 20) <= 10){x = (x - 10) / 20;}else{x = (x - 10) / 20 + 1;}if(((y - 70) - (y - 70) / 20 * 20) <= 10){y = (y - 70) / 20;}else{y = (y - 70) /20 + 1;}8. 判断游戏胜利的代码//判断这个棋子和其他棋子连成5连,即判断游戏是否结束boolean winFlag = this.checkWin();if (winFlag == true) {JOptionPane.showMessageDialog(this, "游戏结束:"+ (allChess[x][y] == 1 ? "黑方" : "白方") + "获胜! ");t.suspend() ;canPlay = false ;}}else{JOptionPane.showMessageDialog(this,"当前位置已有棋子,请重新落子!");}this.repaint() ;}}9. 设置开始游戏代码//点击开始游戏按钮if (e.getX() >=390 && e.getX() <= 470 && e.getY() >=70 && e.getY() <= 95){int result = JOptionPane.showConfirmDialog(this, "是否重新开始游戏?");if (result == 0) {//现在重新开始游戏//重新开始要做的操作:1,把棋盘清空,allChess这个数组全部数据归0.//2.将游戏信息的显示回到开始位置//3.将一步下棋改为黑方for (int i = 0; i < 19;i++){for (int j = 0; j < 19; j++){allChess[i][j] = 0;}}//另一种方式allChess = new int[19][19];message = "黑方先行";isBlack = true ;blackMessage = "无限制";whiteMessage = "无限制";this.canPlay = true ;t.suspend() ;this.repaint() ;}}10. 设置游戏设置代码//点击游戏设置按钮if (e.getX() >=390 && e.getX() <= 470 && e.getY() >=120 && e.getY() <= 150){String input = JOptionPane.showInputDialog("请输入游戏最大时间(单位:分钟)如果输入0,表示没有时间限制:");try {maxTime = Integer.parseInt(input) * 60;if (maxTime < 0) {JOptionPane.showMessageDialog(this, "请输入正确信息,不允许输入负数!");}if (maxTime == 0) {intresult = JOptionPane.showConfirmDialog(this,"设置完成,是否重新开始游戏?");if (result == 0){for (int i = 0; i < 19;i++){for (int j = 0; j < 19; j++){ allChess[i][j] = 0;}}//另一种方式allChess = new int[19][19];message = "黑方先行";isBlack = true ;blackTime = maxTime ;whiteTime = maxTime ;blackMessage = "无限制";whiteMessage = "无限制";this.canPlay = true ;t.suspend() ;this.repaint() ;}}if (maxTime > 0) {int result = OptionPane.showConfirmDialog(this,"设置完成,是否重新开始游戏?");if (result == 0){for (int i = 0; i < 19;i++){for (int j = 0; j < 19; j++){allChess[i][j] = 0;}}//另一种方式allChess =new int[19][19];message = "黑方先行";isBlack = true ;blackTime = maxTime ;whiteTime = maxTime ;blackMessage = maxTime /3600 + ":" +(maxTime /60 -maxTime /3600 * 60) + ":" + (maxTime - maxTime / 60 * 60);iteMessage = maxTime / 3600 + ":" + (maxTime /60 -maxTime /3600 * 60) + ":"+ (maxTime - maxTime / 60 * 60);t.resume();this.canPlay = true ;this.repaint() ;}}} catch (NumberFormatException e1) {// TODO Auto-generated catch blockif(input!= null){JOptionPane.showMessageDialog(this, "请正确输入信息!");}}}11. 设置游戏说明代码//点击游戏说明按钮if (e.getX() >=390 && e.getX() <= 470 && e.getY() >=170& e.getY() <= 200){JOptionPane.showMessageDialog(this, "这是一个五子棋小游戏程序,黑白双方轮流下棋,当某一方连到五子时,游戏结束。

相关文档
最新文档