美文网首页
我眼中的五子棋游戏开发

我眼中的五子棋游戏开发

作者: 彭普蓝 | 来源:发表于2017-03-06 17:16 被阅读94次

这是我在简书的第一篇博客,刚好最近用java开发了五子棋游戏,现将开发过程以及感想总结记录下来,如果真的有人看到了这篇文章,希望里面的内容能够帮到你。

首先是原型设计,先看图看图,见下图

设计图如下

解释一下我眼中的五子棋游戏。在开发之前,我一直再思考,现在传统的五子棋游戏还有没有改进玩法的可能性,从而让它变得更加有趣呢?我首先给了自己肯定的答案,然后每天开脑洞,终于想到了在本游戏中的核心玩法--“让子”。

所谓的“让子”操作就是当前玩家回合中,该玩家选择不下子而让对方玩家下子,即打破黑白子的数量平衡,这是我眼中的五子棋的核心玩法。

原型有了,设计图也ok了,接下来就是逻辑流程图+技术实现了。

部分逻辑图如下(流程太长,只截取部分)

相关类、实体如下

其中关键的棋盘数据采用二维数组进行建模,所有的逻辑操作的实现均转换成对二维数组的处理。

下面是关键代码的张贴,判定输赢的逻辑代码如下

/**

* 判断游戏是否结束

*/

public int isOver() {

int tmp = NONE;// 记录棋子

for (int i = 0; i < this.size; i++) {

for (int j = 0; j < this.size; j++) {

tmp = gobang[i][j];

if (tmp != NONE) {

// 判断斜上方

if (i >= 4 && j <= this.size - 5) {

for (int k = 1; k <= 4; k++) {

if (tmp != gobang[i - k][j + k]) {

break;

}

if (k == 4) {

// 判断是哪一方赢了

if (tmp == BLACK)

return BLACK_WIN;

if (tmp == WHITE)

return WHITE_WIN;

}

}

}

// 判断斜下方

if (i <= this.size - 5 && j <= this.size - 5) {

for (int k = 1; k <= 4; k++) {

if (tmp != gobang[i + k][j + k]) {

break;

}

if (k == 4) {

// 判断是哪一方赢了

if (tmp == BLACK)

return BLACK_WIN;

if (tmp == WHITE)

return WHITE_WIN;

}

}

}

// 判断横向

if (j <= this.size - 5) {

for (int k = 1; k <= 4; k++) {

if (tmp != gobang[i][j + k]) {

break;

}

if (k == 4) {

// 判断是哪一方赢了

if (tmp == BLACK)

return BLACK_WIN;

if (tmp == WHITE)

return WHITE_WIN;

}

}

}

// 判断纵向

if (i <= this.size - 5) {

for (int k = 1; k <= 4; k++) {

if (tmp != gobang[i + k][j]) {

break;

}

if (k == 4) {

// 判断是哪一方赢了

if (tmp == BLACK)

return BLACK_WIN;

if (tmp == WHITE)

return WHITE_WIN;

}

}

}

}

}

}

return NOT_OVER;

}

服务器和客户端的采用socket进行通信,服务器会和每个玩家建立专门的线程进行通信,客户端在正式进入游戏之前需要用户输入用户名进行登录,本程序中输入任意用户名即可(只要不与另外一个玩家重复),登录完成后等待另外一个玩家登录后即可进入游戏。

整个开发完成之后的效果如下图

源码点击下面的链接:

http://download.csdn.net/download/pulan_peng/9771289

PS:下载可能需要积分,我也实在不想搞需要积分下载这一套,但是CSDN不允许我编辑,所以将就一下。

相关文章

  • 我眼中的五子棋游戏开发

    这是我在简书的第一篇博客,刚好最近用java开发了五子棋游戏,现将开发过程以及感想总结记录下来,如果真的有人看到了...

  • pygame 欢乐五子棋 (一)

    Hello, 大家好,从本期开始,我们就开始开发我们五子棋小游戏!五子棋游戏,规则简单,比较适合我这种新手~ 我们...

  • 基于Python实现的五子棋tkinter版小游戏 课程设计

    五子棋小游戏-tkinter版 目录 五子棋小游戏-tkinter版 1 一、实现内容 1 游戏规则 2 博弈树 ...

  • 贝贝五子棋 - 单机双人联机

    贝贝五子棋是一款画风简洁,棋力强大,功能丰富的五子棋游戏。集联网五子棋、单机五子棋于一体,是一款经典小游戏。联网模...

  • 五子棋AI算法的实现

    五子棋 五子棋五子棋是比较流行的棋类游戏了,玩法简单,基本上人人会玩,在此就不介绍游戏规则了。下面使用 swift...

  • 暑假作文(五子棋规则)

    五子棋我想必大家都知道吧!大家肯定会玩下面我就来说一说五子棋的游戏规则 游戏规则: 1.进入游戏或者一局结...

  • 寒假作文 (五子棋的游戏规则)

    五子棋我想必大家都知道吧!大家肯定会玩下面我就来说一说五子棋的游戏规则 游戏规则: 1.进入游戏或者一局结束...

  • 2022-06-08

    今天我和爸爸一起下五子棋,今天下五子棋黑子的个数是我和爸爸下五子棋游戏来最多的一次,我先手,所以我用的黑紫,这场比...

  • 我眼中的游戏

    前段时间参加一个活动,给业外的一些小伙伴做了一次分享,其实蛮浅显的,毕竟听众是业外人士嘛。大家听完纷纷反馈说改变了...

  • 我眼中的“游戏”

    年龄分级:PG-13偶尔/轻微的愤世嫉俗频繁/强烈的回忆杀一丁点/都没有的疑车无据点赞喜欢评论收藏转发不等于已阅!...

网友评论

      本文标题:我眼中的五子棋游戏开发

      本文链接:https://www.haomeiwen.com/subject/oxeugttx.html