关键词不能为空

当前您在: 首页 > 育儿 >

基于JAVA的五子棋游戏系统设计与实现(互联网+)

作者:陕西保健网
来源:http://www.xapfxb.com/yuer
更新日期:2021-01-27 06:22

后楼梯的少女-

2021年1月27日发(作者:强建华)

基于
JA
V
A
的五子棋游戏系统设计与实现













电子信息工程


































董永杰




























指导教师




曾玉






























互联网
2







目前,
随 着计算机网络的的发展,
以计算机技术和网络技术为核心的现代网
络技术已经在现实生活和生产 中得到了广泛的使用,
已经成为多数人群的休闲方
式,也为多数人所喜好。当然,为了满足没有 网络同样能娱乐的要求,许多小游
戏做成了单机和网络的双功能。


本软件使用
JAVA
语户端之间的连接,利用多线程技术言实现,通过对图形
界面,< br>绘图,
布局管理器等去构造出游戏的单机功能,
在此基础上,
利用
SC OKET
的知识,
建立起服务器与客来处理服务器端与客户端之间的数据传输,
通信问 题,
使得客户端和服务器端之间能够同步的进行处理。

通过对软件的编写,
更深入的理解了面向对象的概念,
也体会到利用面向对
象语言处理一些问题的优势。
同 时也加深了对多线程,
流套接字等高级技术的理
解。


关键词


多线程;流套接字;数据传输;同步。
互联网
2

ABSTRACT

At
present,
With
the
rapid
development
of
computer
network.
Taking
computer
technology
and
the
network
technology
as
the
core,
modern
network
technology
is
already used in the real life and the production
and already became the leisure mode
of the most peo
ple. And most people like them. Of course, it’s a pity that there still
have some clients lacking of network because of various causes.
In order to satisfy the above clients’ requirements. A large number of games ,usually
named as “small games” by players,
are designed for involving two kinds of different
function. The former game is often played by these players whose computers never
connect with the network. It’s called for stand
-alone version games. Just as its name
implies, the later is named as online version games This software implemented with
JAVA
language,
and
according
to
the
understanding
of
SCOKET
,GUI
and
paint
image ichnology. Established in these foundation , the server co ects with the multi-
client, and
transmission
the information between many clients using the multi- thread
proceeding
technology.
it
is
very
convenient
for
both
client
and
server
to
do
the
synchronous processing.
Through
to
the
software
compilation,
deepen
understanding
and
grasp
to
the
technology above understanding and holding.

Key Words

: multiple thread, Socket, transmission-data, synchronism.
互联网
2

目录


第一章

绪论

..............................................
1
1.1
开发背景

.................... ..................................
1
1.2
课题意义

.......................... ............................
1
1.3
五子棋游戏的发展与现状

........................................
2
1.4
论文的组织结构

....................... .........................
3
第二章

五子棋程序相关技术介绍

............................
4
2.1
软件的基本功能

....................... .........................
4
2.2
开发运行环境

........................ ..........................
4
2.3
软件的开发手段以及工具的介绍

..................................
5
2.3.1 Java
简介
..................................................
5
2.3.2 MyEclipse10
开发环境简介
...................................
6
2.4
软件的实现目的

....................... .........................
8
第三章

五子棋程序分析与设计

..............................
9
3.1
用户需求分析

........................ ..........................
9
3.2
软件功能结构图

....................... .........................
9
3.3
软件各个功能的简要说明

.......................................
10
3.4
软件设计中使用到的
JAVA
软件包以及类和方法

....................
12
3.5
五子棋界面设计

.............................. .................
13
3.6
五子棋算法设计
< br>...............................................
14
3.6.1
五子棋棋盘设计

............................................
15
3.6.2
棋子设计

................ ..................................
16
3.6.3
落子算法设计

..............................................
17
3.6.4
判断输赢设计

..............................................
19
3.7
网络五子棋算法设计

...........................................
21
第四章

软件的具体实现

...................................
23
4.1
准备工作

.......................... ...........................
23
4.2
游戏窗口界面的实现

...........................................
23
4.3
下棋算法的实现

................ ...............................
25
4.4
完成判断胜负的功能

...........................................
27
4.5
系统测试

.................. ...................................
30
4.6
测试计划

................................. ....................
31
4.6.1
界面功能测试

..............................................
31
4.6.2
单机游戏测试

..............................................
32
4.6.3
联网游戏测试

..............................................
33
4.7
测试结果

.................. ...................................
34
第五章

总结与展望

.......................................
35
互联网
2

致谢

................. ...................................
36
附录

................................... .................
37

程序
:
..... ............................................
37

部分程序
:
.............................................
37
参考文献

.......................... ......................
44
互联网
2

第一章

绪论


1.1
开发背景


随着计算机的快速发展,
各种游戏被纷纷请进了电脑。
而像五子棋这 类不仅
能增强思维能力,
提高智力,
而且富含哲理,
有助于修身养性的棋类游 戏更是备
受推崇。这使得那些喜爱下棋,又常常苦于没有对手的棋迷们能随时过足棋瘾。
而且这 类软件个个水平颇高,
大有与人脑分庭抗礼之势。
其中战胜过国际象棋世
界冠军
-
卡斯帕罗夫的“深蓝”便是最具说服力的代表,其它像围棋的“手淡”

象棋的< br>“将族”
等也以其优秀的人工智能深受棋迷喜爱。

五子棋是我国古代的、传统的黑白棋种之一,大约在南北朝时期随围棋一起先后传入朝鲜、日本等地。
现代五子棋日文称之 为
“连珠”

英译为

Ren-ju


英文称之为

Gobang



FIR

(Five in a Row
的缩写
)
,亦有“连五子”

“五 子连”

“串珠”

“五目”

“五目
碰”

“五格”
等多种称谓。
通过一系列的规则变化使连珠五子棋这一简单的游戏
复杂化、
规范化,
而最终成为今天的职业连珠五子棋,
同时也成为一种国际比赛棋。


五子棋既有现代休闲的明显特征“短、平、快”
,又有古 典哲学的高深学问
“阴阳易理”
;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的 技
巧和高水平的国际性比赛;
它的棋文化源渊流长,
具有东方的神秘和西方的直观;< br>既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的
结晶。五子棋起源 于古代中国,发展于日本,风靡于欧洲。它在不同的国度也有
着不同的称谓,如韩国人称其为“情侣棋”
;欧洲人称其为“绅士棋”
;日本人称
其为
“中老年棋”

美国人则喜欢将其称为
“商业棋”

由此可见,
尽管国度不同,
语言 各异,
但人们都可以借助这一简单又深奥的棋艺进行交流、
比赛,
增进友谊。

1.2
课题意义

人类之所以不断在进步,是因为我们人类一直不断的在思考 ,五子棋游戏程
序的开发符合人类进步也是促进人类进步的一大动力之一。
五子棋游戏程序让人
互联网
2

们方便快捷的可以下五子棋,让人们在何时都能通过下棋来提高 逻辑思维能力,
同时也培养儿童的兴趣以及爱好,让孩子更加聪明。

同时,五子棋游 戏程序的开发也使得五子棋这个游戏得到了广泛的推广,让
世界各地的人们知道五子棋,
玩上五 子棋,
这已经不是局限。
五子棋游戏程序使
得越来越多的人喜欢上了五子棋,
热爱下五子棋,
它是具有很好的带动性的。

着互联网络的不断普及,越来越多的人可 以在网络上就能够与他人下五子棋了。

1.3
五子棋游戏的发展与现状
< br>目前,连珠这一棋类运动已迅速在国际上发展起来。外国人都十分看好这
一不起眼的智力游戏,并 认为五子棋不仅能提高思维、开发智力、手脑并用、
修身养性

而且富含哲理,具有东 方的神秘和西方的直观,是中西文化的交汇
点。许多国家的人对五子棋都有不同的爱称,例如韩国人把五 子棋称之为“情
侣棋”,言下之意是情人之间下五子棋有利于增加情感的交流;欧洲人称之为
“ 中老年棋”,表示五子棋适合中老年人的生理特点和思维方式;美洲人喜欢
将五子棋称之为“商业棋”, 就是说商人谈生意时可边下棋边谈生意,棋下完
了生意也谈成了。由此可见,尽管国度不同,语言各异, 但人们都可以借助五
子棋这一简单而又深奥的棋艺进行交流、比赛,增进友谊。

当前 ,有40多个国家和地区都在下五子棋,并有各种规模和级别的比
赛。1989年8月在日本京都、19 91年8月在俄罗斯联邦的莫斯科、1
993年8月在瑞典、1995年8月在爱沙尼亚的塔林分别举行 了第一、
二、三、四届世界锦标赛。除第三届的冠军是爱沙尼亚人之外,其余三届的冠
军都是日 本人。五子棋

的世界锦标赛,每两年举办一次,其申国竞争也十分激
烈。日本目前拥 有自己的五子棋职业棋手,并且对连珠
(五子棋)
技术的研究也
相当普遍和全面,就水 平也正在日益增强。同时,五子棋的理论研究与探索也
呈现蓬勃发展的势头,从1858年第一部五子棋 专著问世以来,目前,全世
界有2000多种五子棋的书籍及期刊,分别以日文、俄文、英文、瑞典文及
中文出版发行。五子棋在我国的北京、上海、天津、云南、浙江、广东、四
川、湖北、辽宁、新 疆、河北等省
(区)
市都有很大的发展。北京多次举办了北
京地区的五子棋赛,如“思 曼杯”、“京空杯”、“奇奇童杯”、“北京第六
互联网
2

届民族团结杯 ”和“北京第四岂民族运动会”的五子棋比赛。上海地区举办了
“上文杯”五子棋大赛。云南省以及其他 省市亦举办过许多五子棋比赛。所有
这些赛事都越来越多地吸引了无数人们的关注,表明了根埴于中国的 五子棋有
着广泛的群众基础,是群众喜闻乐见的体育活动。

而现在,很多很多游戏平 台上面都有五子棋游戏供我们玩,任何游戏平台
上面只要有棋牌类游戏的,那么它就有五子棋在里面,网 络五子棋比赛,在联
众,
263

QQ
游戏,
UC
里进行了
10
几年了。可见,五子棋游戏在网络上面是非
常火暴的。而且在棋牌游戏里 面玩家人数排名总会占到很前面,不愧是风靡全
球的棋牌游戏啊!在未来中,将会有越来越多的人关注五 子棋,喜欢五子棋,
那么将其变为商业化也会越来越多,而且还可以以教育孩子的方式来将其嵌套
进去,或者用来做测试等等,可以说以后的五子棋游戏会是那么的精彩,那么
的让人憧憬。那么对于它 的游戏开发和发展也将会上升到举足轻重的地位去,
它的发展会是相当之快的,就让我们拭目以待吧。< br>

1.4
论文的组织结构

本文由第一章绪论,
第 二章五子棋程序相关技术介绍,
第三章五子棋程序分
析与设计,第四章软件的具体实现,第五章 总结与展望
,
最后由致谢、附录和参
考文献八部分组成。

第一章绪 论由研究背景、
五子棋的发展前景、
五子棋程序的基本步骤和本文
的组织结构组成。< br>
第二章介绍软件的开发工具和和软件的基本功能,
另外介绍软件所要实现的
目 标。

第三章软件总体分析与设计。

第四章详细分析软件各模块的设计与实 现包括绘制棋盘、
下棋功能、
判断胜
负、下棋信息、时间设置、认输等功能组成。
第五章是总结与展望。

第六章是致谢。

第七章是附录。

第八章是介绍参考文献。
互联网
2

第二章

五子棋程序相关技术介绍

2.1
软件的基本功能

1)

显示一个十五行十五列的围棋棋盘。

2)

在棋盘上面在对应位置 通过点击鼠标下子,棋盘上将在相应的位置上显
示棋子,并且棋子在横纵交点上。

3)

可以自动判断游戏是否结束,是否黑方或者是白方已经胜利,并且跳出
对话框来提示玩家。

4)

在游戏棋盘上方会有一个游戏信息,这个游戏信 息是用来提示当前是黑
白双方的哪一方下子,玩家可以根据这个提示来相应的下棋,而不会导


不清楚轮到哪一方下棋。

5)

可以重新开始游戏, 并且有认输功能,在下棋提示上提示哪方时点认
输,哪一方就输了,并且有悔棋功能。

6)

还可以对游戏时间进行设置,判断是否超出规定的时间,如果超出时间
则自动判断为输。


2.2
开发运行环境

1)

中心处理器:
Intel Core i5-3230M,2.6GHZ


2)

内存:
4G


3)

硬盘:
750G


4)

操作系统:
WINDOWS 7


5)

开发工具:
MyEclipse10


6)

编程语言:
JAVA



互联网
2

2.3
软件的开发手段以及工具的介绍

2.3.1 Java
简介

Java
编程语言的风格十分接近
C

C++
语言。
Java
是一个纯的面向对象
的程序设计语 言,它继承了
C++
语言面向对象技术的核心,
Java
舍弃了
C ++
语言中容易引起错误的指针(以引用取代)、运算符重载(
operator
o verloading
)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于
回收不 再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担
忧。

Java
SE
1.5
版本中,
Java
又引入了泛型编程

Generic
Programming
)< br>、
类型安全的枚举、不定长参数和自动装
/
拆箱等语言特性。
Java
不同于一般的
编译执行计算机语言和解释执行计算机语言。
它首先将源代码 编译成二进制字节

(bytecode)

然后依赖各种不同平台上的虚拟 机来解释执行字节码,
从而实现
了“一次编译、到处执行”的跨平台特性。不过,每次的编译执 行需要消耗一定
的时间,
这同时也在一定程度上降低了
Java
程序的运行效率。
但在
J2SE
1.4.2
发布后,
Java
的执行速度有了大幅提升。

与传统程序不同,
Sun
公司在推
Java


际就将其作为一种开放的技术。
全球数以万计的
Java
开发公司被要求所设
计的
Java
软件必须相互兼容。“
Java
语言靠群体的力量而非公司的力量”是

Sun
公司的口号之一,
并获得了广大软件开发商的认同。
这与微软公司所 倡导的
注重精英和封闭式的模式完全不同。
Sun
公司对
Java
编程语言的解释是:
Java
编程语言是个简单、面向对象、分布式、解释性、健壮 、安全与系统无关、可移
植、高性能、多线程和动态的语言。
Java
平台是基于
Java
语言的平台。这样
的平台目前非常流行,
因 此微软公司推出了与之竞争的
.NET
平台以及模仿
Java

C#
语言。

Java
技术的重要性就不讲了,
从最近流行 的一个统计数据上来说,
目前
世界上编程语言
Java

C
VB

C++
依次排名前
4
位,这排名本身不说明什 么,
但至少也是工业界对编程语言使用上一个侧面的反映。

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

行)。编译只进行一次,而解释 在每次运行程序时都会进行。编译后的字节码采
用一种针对
JVM
优化过的机器码形式;解释器是
JVM
的实现。

Jav a
具有众多优点,比如平台无关性,安全性,面向对象,健壮式,分
布式等。与
c++
相比,
Java
去掉了其中的指针运算、结构、
typedefs

#define

需要释放内存等功能,减少了平常出错的
50%
, 让
Java
的语言功能很精炼。而
且,因为
Java
很小,所以整个 解释器只需
215K

RAM
,并增加了一些很有用的
功能。


2.3.2 MyEclipse10
开发环境简介



MyEclipse10
是一个开放源代码的、基于
Java
的可扩展开发平台。就
其本身而言,
它只是一个框架和一组服务,
用于通过插 件组件构建开发环境。

运的是,
MyEclipse10
附带了一个标准的插件集,包括
Java
开发工具。
MyEclipse 10
的本身只是一个框架平台,但是众多插件的支持使得
MyEclipse10
拥有 其他功能相对固定的
IDE
软件很难具有的灵活性。许多软件开发商以
MyEclip se10
为框架开发自己的
IDE

MyEclipse10
是一 个开放源代码的软件开
发项目,
专注于为高度集成的工具开发提供一个全功能的、
具有 商业品质的工业
平台。它主要由
MyEclipse10
项目、
MyEcli pse10
工具项目和
MyEclipse10
技术
项目三个项目组成,具体 包括四个部分组成——
MyEclipse
Platform

JDT
CDT

PDE

JDT
支持
Java开发、
CDT
支持
C
开发、
PDE
用来支持插件开发,
MyEclipse
Platform
则是一个开放的可扩展
IDE

提供了一个通用的开发平台。
它提供建造
块和构造并运行集成软件开发工具的基础 。
MyEclipse Platform
允许工具建造
者独立开发与他人工具无缝集 成的工具从而无须分辨一个工具功能在哪里结束,
而另一个工具功能在哪里开始。

虽然大多数用户很乐于将
MyEclipse10
当作
Java IDE
来使用,但
MyEclipse10
的目标不仅限于此。
MyEcl ipse10
还包括插件开发环境(
Plug-in
Development Environment

PDE
),这个组件主要针对希望扩展
MyEclipse10
的软件开发人员,因为它允许他们构建与
MyEclipse10
环境无缝集成的工具。
由于
MyEclipse10
中的每样东西都是插件,对于给
MyEclipse10
提供插件,以
互联网
2

及给用户提供一致和统一的集成开发环境 而言,
所有工具开发人员都具有同等的
发挥场所。

MyEclipse SDK
(软件开发者包)是
MyEclipse Platform

JDT

PDE
所生
产的组件合并,
它们可以一次下载。
这些部分 在一起提供了一个具有丰富特性的
开发环境,允许开发者有效地建造可以无缝集成到
MyEcl ipse Platform
中的工
具。
MyEclipse
SDK

MyEclipse10
项目生产的工具和来自其它开放源代码的第
三方软件组合 而成。
MyEclipse10
项目生产的软件以
GPL
发布,
第三方组件有各
自自身的许可协议。
MyEclipse10
的基础是富客户机平台(
Rich Client
Platform,

RCP
)。
RCP
包括下列组件:



?

核心平台
(
启动
MyEclipse10
,运行插件)

?

OSGi
(标准集束框架)



?

SWT
(可移植构件工具包)

?

JFace
(文件缓冲,文本处理,文本编辑器)

?

MyEclipse10
工作台(即
Workbench
,包含视图(views
)、编辑器

editors
)、视角(
persp ectives
)、和向导(
wizards
))

MyEcl ipse10
采用的技术是
IBM
公司开发的(
SWT
),这是一种 基于
Java
的窗口组件,类似
Java
本身提供的
AWT

Swing
窗口组件;不过
IBM
声称
SWT
比其他Java
窗口组件更有效率。
MyEclipse10
的用户界面还使用了
GUI
中间层
JFace
,从而简化了基于
SWT
的应用程序的构 建。
MyEclipse10
的插件机制是轻
型软件组件化架构。在富客户机平台上< br>,
MyEclipse10
使用插件来提供所有的附
加功能,
例如支 持
Java
以外的其他语言。

已有的分离的插件已经能够支持
C/ C++

CDT
)、
Perl

Ruby

Python

telnet
和数据库开发。插件架构能够支持将任
意的扩 展加入到现有环境中,
例如配置管理,
而决不仅仅限于支持各种编程语言。
MyEcl ipse10
的设计思想是:一切皆插件。
MyEclipse10
核心很小,其它所 有功
能都以插件的形式附加于
MyEclipse10
核心之上。
MyEcl ipse10
基本内核包括:
图形
API
(SWT/Jface)

Java
开发环境插件
(JDT )
,插件开发环境
(PDE)


互联网
2

2.4
软件的实现目的

五子棋游戏程序所要实现的目的是让我们可以在电脑 上下棋,而不需要去
买,可以随时玩,也可以联机对战,方便快捷。而且能更好的推广五子棋于世
界各地,此软件也在于提供给爱好五子棋的人,也吸引更多的人喜欢上五子
棋,也具有很大的商业价值 。使五子棋游戏程序在以后的制作中功能越来越强
大,外观越来越好看。
互联网
2

第三章

五子棋程序分析与设计


3.1
用户需求分析


通过软件功能的分析,根据五子棋爱好者的需求,得出以下需求信息:

1.

具有重新开始功能;

2.

具有认输功能;

3.

具有提示该轮到哪一方下棋的功能;

4.

退出游戏功能;

5.

判断胜负功能;

6.

时间设置功能;

7.

五子棋难度选择功能;

8.

联机功能。

还有 用户对游戏界面的要求,通过上述的用户需求,可以得出一个总体的
设计方案。由上述的用户需要,可以 对程序的基本功能进行一个有效的分析,
规定下游戏的基本功能。


3.2
软件功能结构图

此五子棋程序最主要的五大功能是:下棋,判断胜负 ,重新开始与认输,
联网游戏的设置与五子棋难度的选择。大体的功能如图
3-1
:< br>
互联网
2

五子棋程序







互联网
2




































3.3
软件各个功能的简要说明

1.

绘制十五行十五列 的棋盘:首先是每行每列的距离都是一样的,并
且棋盘上面有五个星,棋盘中间有个天元点,跟围棋的棋 盘一样。

2.

点击鼠标以后,会在相应位置落下棋子,并被绘制出来,黑 子是一
个实心的黑圆,白子是一个实心的白圆加上一个等大空心的黑圆。
棋子落在交点上:我们 在下五子棋棋的时候,棋子都是会落在交点



3-1
五子棋功能设定图



上的,而并非落在格子里面,那么我们就要 规定当我点击鼠标时,
选取距离鼠标所取点的最近的左上交点为绘制棋子的中心点,那么
就可以 实现棋子落在交点上了。

3.

黑白双方轮流落子:黑方落子以后就要轮到 白方,交替进行,这是
下棋的基本要求,因此我们就要弄一个互斥事件进去,让他们交替
的落子 。不能落在相同位置:当我们落子时,会不小心落到相同位
置上去,那么就要出现提示,不能落在相同位 置上,需要重新落
子,实现的设想是当这个点已经绘制过棋子以后,我们就要给一个
布尔变量, 让它为假,那么只能在它为真时才能绘制棋子,否则就
要重新落子到别的地方去。

4.

判断输赢:当五个相同颜色子都连在了一起的时候,我们就要判其
为赢 ,这五个子可以在横竖方向上连起,也可以在斜方向上连起。

5.

游戏信 息:我们应该在棋盘的上面设置一个游戏信息的,用来提示
当前轮到哪一方下棋了,以便于玩家知道谁在 下,这个功能只要在
黑白双方轮流下棋功能的过程中添加一个提示信息用于显示到界面
上的就可 以了。

6.

重新开始游戏就是把棋盘上的子全部清空,回复到一开始的时 候的
状态,重置之前所有的数据。认输的功能就是在判断输赢功能的基
础上添加的,让玩家对自 己没信心的时候使用。退出游戏的功能就
是直接把窗口关闭就可以了。

7.

游戏难度选择:游戏难度选择是由玩家自主选择的与电脑下五子棋
的一个重要方法。可以根据自 身的下棋水平来选择和那种电脑来
下。难度分为三种,分别是:简单、中等与困难。而且电脑的思维是根据难度提升而提升。

8.

联机对战:联机对战是为了方便玩家与 玩家相互之间切磋棋艺而设
定的一大功能模块,可以在一个局域网里面,然后联机对战。当双
方 建立联系以后,点击开始就可以进行联网对战了。这极大的提高
了五子棋的娱乐程度。

互联网
2

3.4
软件设计中使用到的
JAVA
软件包以及类和方法

在用
JAVA
设计软件的时候,使用到
SUM
公司提供的一些软件包,这样使 得
我们编写程序更加简便,以下是使用到的软件包:

//
软件包提供一组“轻量级”(全部

Java
语言)
组件,尽量让这些组件在所有平台上的工作方式都相同。
JFrame
类是

的扩展版本,该版本添加了对
JFC/Swing
组件架构的支
持。
JFrame
是用来创建窗体的
swing < br>类,用来创建一个图形界面的原始窗
口,并且可以设置其大小,位置等属性,是
swin g
编程的基础类之一。

//
软件包包含用于创建用户界面和绘制图形图像的
所有类。

t //Toolkit
此类是所有
Abstract Window Toolkit
实际实现的抽象超类。
Toolkit
的子类被用于将各种组件绑定到特定本机工具
包实现。

aultToolkit().getScreenSize().width;
aultToolkit().getScreenSize().height; //
以上这两
个方法的作用是取得我们电脑显示屏幕的宽度以及高度。
geiDefaultTo olkit()
为获取默认工具包,
如果名为

的系统属性被设置为
true

则使用
Toolkit

headless
实现。

如果不存在




被设置
false

且存在名为

的系统属性,
则该属性将被视为
Toolkit
子类的名称;否则将使用特定于平台的默认

Toolkit
实现。
getScreenSize()
这个方法是获取屏幕的大小。
在具 有多个显示
屏的系统上,
使用主显示屏。

GraphicsConfiguration

GraphicsDevice

以获得多屏幕感知显示尺寸。

nPane // JOptionPane
有助于方便地弹出要求用户
提供值或向其发出通知的标准对话框

istener //MouseLinstener
是鼠标监听,
功能< br>是接收用户通过鼠标所做的操作,
可以取得用户点击鼠标的坐标,
从而进行其他
的操作。

互联网
2

Graphics
类,

它的功能是类似于画笔的功能,
用来在窗口中绘制文字以及
图形等。他的调用是通过覆 写
JFrame

paint()
方法来使用的,通过

repaint()
方法来调用。

//
这个是产生中断 并且调用文件用到的类。

通过
数据流、序列化和文件系统提供系统输入和输出。
File
类文件和目录路径名的
抽象表示形式。

edImage //

BufferedImage
子类描述具有可访问图
像数据缓冲区的
Image

BufferedImage
由图像数据的
ColorModel

Raster
组成。
Raster

SampleModel

band
的数量和类型必须与
ColorModel
所要
求的数量和类型相匹配,
以表示其颜色和
alpha
分量。
所有
BufferedImage

象的左上角坐标都为
(0,
0)

因此,
用来构造
BufferedImage
的任何
Raster
都必须满足:
minX=0

minY=0


可以用来调用一个图片作为我们下棋的背景
图片使用。

3.5
五子棋界面设计

开始开发游戏的第一步就是先制作出游戏的窗口界面,
一个 漂亮美丽大方的
游戏界面,
往往先能吸引玩家去尝试,
所以这个地方不能够马虎。首先我们得按
照大家的习惯,也就是游戏风格。

按照国人的五子棋游戏风格。< br>一般是在木质的棋盘上下,
这样能够显示出棋
类游戏的沉稳、
大气而又不失典雅 的气质。
所以我们设计界面的时候需要按照木
质棋盘的颜色来设计底色。

在 一般的五子棋游戏比赛中,
需要有比赛的信息显示,
方便下棋者与观看者
根据信息思考 。
所以在我们设计的界面上,
必要的信息是不可缺少的。
国人多喜
欢把棋盘放 在左边,
然后右边显示下棋的信息,
所以设计棋盘的时候应该按照国
人的喜好摆放位置 。基本流程如图
3-2
所示:

互联网
2

棋盘 的设计
棋盘的底色
下棋信息显示设计
棋盘位置的摆放
设计完毕


3-2
五子棋界面设计流程图


综上所述,棋盘的设 计是以木质颜色为棋盘底色,画上棋盘线条,把棋
盘摆设在左边,然后再右边添加下棋的信息,如:状态 ,时间显示,开始游
戏等一些按钮。

3.6
五子棋算法设计


五子棋算法设计可以包括如图
3-3
所示设计:

五子棋 算法设计








落< br>子







互联网
2


3-3
五子棋算法设计图
五子棋的算法设计包括棋盘设计,
棋子设计,
落子设计以及输赢判断。
能设计出< br>这四个算法,一个基本的五子棋算法就算完成了。

3.6.1
五子棋棋盘设计


五子棋棋盘设计可以使用
JAVA
自带 的画图算法。设计成十五行十五列的小
型棋盘即可,
然后按照围棋棋盘的设定,
画上天 元以及天星等标记,
那么此棋盘
就已经设计完成了。


设计图如下:

设置棋盘边界
设子棋盘底色,并
且设置线条颜色行设置一个整值,
初始值为
0
,且每
次运行自动加
1


列设置一个整值,
初始值为
0
,且每
次运行自动加
1

是否大于
14
是否大于
14

找准棋盘线条 交叉
点画上天元、天星
棋盘完成

互联网
2


3-4
棋盘设计流程图

棋盘设计如上图所示,
首先是 设计棋盘大小,
然后设计棋盘底色
(这里设计底色
一般为木质颜色,如:蜡黄色)和线 条颜色,接下来就可以画棋盘线条了,执行
一个循环,循环次数为
15
次,画出行线, 然后再执行一个
15
次循环,画列线。
最后找到相对应的点,
画上天元和天星 。
如此下来,
一个优质的棋盘就已经完成
了。
颜色、
线条等个方面符 合国人的审美观。
让玩家下起来有一种和现实下五子
棋一样的感觉。

3.6.2
棋子设计

棋子设计也可以使用
JAVA
自带 的画图算法,分为黑白两种颜色的棋子,画一个
实心圆即可表示棋子。具体的实现设计如图
3- 5
所示:

获取点击坐标
寻找横竖交叉点
画半径为
13的圆
填充刚才画的这个

画棋结束

是否属于当前
已画 圆

在填充圆画一个小
的红心圆,表示这
手是我刚下


3-5
棋子设计流程图

互联网
2

棋子设计就需要使用
java
自带的画图方法,获取横竖交叉点,然后以该点
为圆心 ,画一个半径为
13
的圆,然后填充两种颜色:黑色和白色。完成后判定
该圆是否属于 刚刚落下的棋子,
如果是,
则在填充一个半径为
6
的红色圆,
表示< br>该棋子刚刚走完。

3.6.3
落子算法设计


由于需要设计单机游戏和联机对战。但是该算法不涉及到联机对战,所以该
算法只针对单机游戏。


初步设定单机游戏分为三种难度等级。分别为容易、中等和困难。我们可以
通过 一个算法来体现不同难度,
电脑只能从玩家手中获取玩家下棋的情况,
包括
以下几种情 况:

1.

当计算出的自己已经有四个连珠并且没有被堵住的情况下当然也 就是说
下一颗子就必赢的情况

2.

当计算出的对方已经有四个连珠并且没有被堵住的情况下当然也就是说
必须堵住

3.

当计算出的自己已经有三个连珠并且没有被堵住的情况下当然也就是说
下一颗子就必赢的情况

4.

当计算出的对方已经有三个连珠并且没有被堵住的情况下当然也就是说
必须堵住

5.

四三连的情况

6.

三三连的情况



其算法流程图如图
3-6
所示:

互联网
2
< br>开始游戏
黑方先下(自己)
判定是否结束

分析是否结束
(得 到每个点重要
性)

判断重要性是
否最高


将白 子下算法
设计的地方

提起下一个点
判断是否结束

结束< br>

3-6
五子棋算法流程图


开始下子,系 统赋予该棋子(
Value
)初始值,然后系统自动分“




/


“–”


|
”这四个方向进行判断是否结束。

当系统定义为简单的时候只能满足以下情况:

1.

当计算出的自 己已经有四个连珠并且至少有一个没有被其他颜色棋子拦
截的情况下,就会自动去补齐。

2.

当计算出的对方已经有四个连珠并且没有被拦截住的情况就会去拦截。

互联网
2


其他情况则不拦截。所以简单的电脑较为容易。

中等难度算法

1.

当自己已经有四个连珠并且至少有一个没有被其他颜色棋子拦截的情况
下,就会自动去补齐。

2.

当计算出的对方已经有四个连珠并且没有被拦截住的情况就会去拦截。

3.

当计算出的自己已经有三个连珠并且没有被拦截的情况下就会继续补齐
到第四颗棋子,然后继续
1
号操作。

4.

当计算出的对方已经有三个连珠并且没有被拦截的情况就会主动去拦
截。

当为棋盘出现四三连(三三连)连子的情况时候它不拦截

当系统设定为困难的时候

1.

当计算出的自己已经有四个连珠并 且至少有一个没有被其他颜色棋子拦
截的情况下,就会自动去补齐。

2.

当计算出的对方已经有四个连珠并且没有被拦截住的情况就会去拦截。

3.

当计算出的自己已经有三个连珠并且没有被拦截的情况下就会继续补齐
到第四颗棋子,然后继续
1
号操作。

4.

当计算出的对方已经有三个连珠并且没有被拦截的情况就会主动去拦
截。

5.

当计算机即将出现四三连的情况时候,计算机就会自动去补齐。

6.

当计算机即将出现三三连的情况时候,计算机就会自动去补齐。

7.


当对方快或者已经出现四三连子的时候,
电脑就会视优先级去拦截一个
方向。

8.

当对方快或者已经出现三三连子的时候,电脑就会视优先级去拦截一个
方向。

3.6.4
判断输赢设计

五子棋判断输赢的规则就是连续五个颜色相同的 子,
代表该颜色所代表的一
方获胜。其具体设计流程图如图
3-7
所示:

互联网
2

后楼梯的少女-


后楼梯的少女-


后楼梯的少女-


后楼梯的少女-


后楼梯的少女-


后楼梯的少女-


后楼梯的少女-


后楼梯的少女-



本文更新与2021-01-27 06:22,由作者提供,不代表本网站立场,转载请注明出处:http://www.xapfxb.com/yuer/429918.html

基于JAVA的五子棋游戏系统设计与实现(互联网+)的相关文章