//定义棋盘大小,宽w,高h

int w = 11;

int h = w;

//用一个二维数组保存棋盘数据,1代表红棋,2代表黑棋

int[][] chess = new int[h][w];

//定义控制循环的布尔变量

boolean game_over = false;

boolean win_red = false;

boolean win_black = false;

//判断输赢的函数,传入当前点位置坐标

public void judge(int y3, int x3) {

//创建4个StringBuffer对象分别保存横向,纵向,两个斜向棋盘数据

StringBuffer buf21 = new StringBuffer();

StringBuffer buf14 = new StringBuffer();

StringBuffer buf13 = new StringBuffer();

StringBuffer buf24 = new StringBuffer();

// 横向数据流

for (int y = y3, x = 0; x < w; x++) {

buf21.append(chess[y][x]);

}

//System.out.println(buf21);

// 纵向数据流

for (int y = 0, x = x3; y < h; y++) {

buf14.append(chess[y][x]);

}

//System.out.println(buf14);

// 二四象限数据流

if (y3 >= x3) {

for (int y = y3 - x3, x = 0; y < h; y++, x++) {

buf24.append(chess[y][x]);

}

} else {

for (int y = 0, x = x3 - y3; x < w; y++, x++) {

buf24.append(chess[y][x]);

}

}

//System.out.println(buf24);

// 一三象限数据流

if ((x3 + y3) < h) {

for (int x = x3 + y3, y = 0; y <= x3 + y3; y++, x--) {

buf13.append(chess[y][x]);

}

} else {

for (int x = h - 1, y = x3 + y3 - (h - 1); y < h; y++, x--) {

buf13.append(chess[y][x]);

}

}

//System.out.println(buf13);

//使用正则表达式匹配数据判断输赢,连续5个1表示红棋赢,连续5个二表示黑棋赢

if (buf21.toString().matches("\\d*1{5}\\d*")

|| buf14.toString().matches("\\d*1{5}\\d*")

|| buf13.toString().matches("\\d*1{5}\\d*")

|| buf24.toString().matches("\\d*1{5}\\d*")) {

win_red =true;

}

if (buf21.toString().matches("\\d*2{5}\\d*")

|| buf14.toString().matches("\\d*2{5}\\d*")

|| buf13.toString().matches("\\d*2{5}\\d*")

|| buf24.toString().matches("\\d*2{5}\\d*")) {

win_black =true;

}

if (win_red) {

JOptionPane.showMessageDialog(null, "红棋赢!");

} else if (win_black) {

JOptionPane.showMessageDialog(null, "黑棋赢!");

}

}

java五子棋判断_JAVA 五子棋 判断输赢的代码实现相关推荐

  1. java年份判断_java怎么判断年份是否是闰年

    java怎么判断年份是否是闰年 发布时间:2020-06-25 14:33:57 来源:亿速云 阅读:125 作者:Leah 本篇文章为大家展示了java怎么判断年份是否是闰年,代码简明扼要并且容易理 ...

  2. java 字符串 判断_Java中判断字符串是否相等的实现

    在最近的开发中,我踩到一个坑,过程是这样的.我需要在Java中判断两个字符串是否相等,按照以往的经历使用 == 双等号的操作符来判断,但是在Java中,这样写却没有实现我想要的效果.经过查阅资料后,把 ...

  3. java五子棋棋盘_java五子棋项目(一)

    一.实现功能(人人对战模式) 1.点击开始下棋,黑棋先手,再下白棋 2.拖动界面,棋子和棋盘依旧存在(实现重绘) 2.每下一颗棋子判断输赢,获胜方弹出游戏提示 3.点击悔棋按钮,实现悔棋 4.点击认输 ...

  4. java五子棋图片_java五子棋游戏如何加载图片

    展开全部 直接上程序吧: //wuziqi.java import java.applet.Applet; import java.awt.Button; import java.awt.Checkb ...

  5. java五子棋源代码_java 五子棋游戏源码

    [实例简介] [实例截图] [核心代码] package game; import java.applet.Applet; import java.applet.AudioClip; import j ...

  6. java中文字符_Java 完美判断中文字符

    Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比 ...

  7. java识别中文_Java 完美判断中文字符的方法

    Java判断一个字符串是否有中文一般情况是利用Unicode编码正则来做判断,但是其实这个区间来判断中文不是非常精确,以下是比较完善的判断方法 Java判断一个字符串是否有中文一般情况是利用Unico ...

  8. java 时间判断_java怎样判断日期的先后?

    展开全部 Java判段两个日期的先后,方法如下: import java.util.Date; import java.text.ParseException; import java.text.Si ...

  9. java 对象为空判断_java中判断对象是否为空的方法

    判断Java对象是否为null的方法: 首先,直接使用 object == null 去判断,对象为null的时候返回true,不为null的时候返回false.然后,在object != null ...

最新文章

  1. OpenCV人脸检测与三角剖分绘制
  2. python好学-html和Python哪个好学?
  3. 【数字信号处理】线性常系数差分方程 ( 概念 | 线性常系数差分方程解法 )
  4. train,dev,test数据集作用
  5. 自动语音识别(ASR)自监督方法研究综述
  6. hdu 4545 魔法串 2013金山西山居创意游戏程序挑战赛——初赛(1)
  7. 不显示参数名_Houdini自定义参数Folder的几种模式
  8. Java IO实战操作(四)
  9. 聊聊springboot2的embeded container的配置改动 1
  10. 单片机课设-电子时钟设计(仿真图、代码全)
  11. WinRAR v5.90 正式版简体中文汉化特别版本
  12. 最新的QQ跳转支付宝并自动领红包脚本。
  13. 简单使用SAXReader解析xml数据
  14. ENVI/SARscape软件处理问题小结
  15. 2021acm-icpc区域赛(南京)补题笔记
  16. JAVA7所有版本下载地址 JRE jre jdk JDK
  17. 国内外低代码开发平台调研(2022)
  18. ANSYS Workbench并行计算设置方法
  19. Springboot快速整合通用Mapper
  20. selenium模拟登录淘宝

热门文章

  1. STM32时钟学习之STM3210X_RCC.H解读
  2. 文献阅读 | Epigenetics in ENS development and Hirschsprung disease
  3. json串转成list
  4. Scrapy框架实现爬虫
  5. java理论之java基础
  6. 树言树语:AIR的 应用方向在哪里?
  7. Android Studio Flutter 调试技巧 Flutter Inspector 提升你的维护开发效率 轻松定位复杂嵌套Widget代码位置
  8. vue中Axios网络请求之Vue知识点归纳(十)
  9. H3C DHCP特点
  10. 正则表达式2--re方法--match()--search()