java五子棋判断_JAVA 五子棋 判断输赢的代码实现
//定义棋盘大小,宽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 五子棋 判断输赢的代码实现相关推荐
- java年份判断_java怎么判断年份是否是闰年
java怎么判断年份是否是闰年 发布时间:2020-06-25 14:33:57 来源:亿速云 阅读:125 作者:Leah 本篇文章为大家展示了java怎么判断年份是否是闰年,代码简明扼要并且容易理 ...
- java 字符串 判断_Java中判断字符串是否相等的实现
在最近的开发中,我踩到一个坑,过程是这样的.我需要在Java中判断两个字符串是否相等,按照以往的经历使用 == 双等号的操作符来判断,但是在Java中,这样写却没有实现我想要的效果.经过查阅资料后,把 ...
- java五子棋棋盘_java五子棋项目(一)
一.实现功能(人人对战模式) 1.点击开始下棋,黑棋先手,再下白棋 2.拖动界面,棋子和棋盘依旧存在(实现重绘) 2.每下一颗棋子判断输赢,获胜方弹出游戏提示 3.点击悔棋按钮,实现悔棋 4.点击认输 ...
- java五子棋图片_java五子棋游戏如何加载图片
展开全部 直接上程序吧: //wuziqi.java import java.applet.Applet; import java.awt.Button; import java.awt.Checkb ...
- java五子棋源代码_java 五子棋游戏源码
[实例简介] [实例截图] [核心代码] package game; import java.applet.Applet; import java.applet.AudioClip; import j ...
- java中文字符_Java 完美判断中文字符
Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比 ...
- java识别中文_Java 完美判断中文字符的方法
Java判断一个字符串是否有中文一般情况是利用Unicode编码正则来做判断,但是其实这个区间来判断中文不是非常精确,以下是比较完善的判断方法 Java判断一个字符串是否有中文一般情况是利用Unico ...
- java 时间判断_java怎样判断日期的先后?
展开全部 Java判段两个日期的先后,方法如下: import java.util.Date; import java.text.ParseException; import java.text.Si ...
- java 对象为空判断_java中判断对象是否为空的方法
判断Java对象是否为null的方法: 首先,直接使用 object == null 去判断,对象为null的时候返回true,不为null的时候返回false.然后,在object != null ...
最新文章
- OpenCV人脸检测与三角剖分绘制
- python好学-html和Python哪个好学?
- 【数字信号处理】线性常系数差分方程 ( 概念 | 线性常系数差分方程解法 )
- train,dev,test数据集作用
- 自动语音识别(ASR)自监督方法研究综述
- hdu 4545 魔法串 2013金山西山居创意游戏程序挑战赛——初赛(1)
- 不显示参数名_Houdini自定义参数Folder的几种模式
- Java IO实战操作(四)
- 聊聊springboot2的embeded container的配置改动 1
- 单片机课设-电子时钟设计(仿真图、代码全)
- WinRAR v5.90 正式版简体中文汉化特别版本
- 最新的QQ跳转支付宝并自动领红包脚本。
- 简单使用SAXReader解析xml数据
- ENVI/SARscape软件处理问题小结
- 2021acm-icpc区域赛(南京)补题笔记
- JAVA7所有版本下载地址 JRE jre jdk JDK
- 国内外低代码开发平台调研(2022)
- ANSYS Workbench并行计算设置方法
- Springboot快速整合通用Mapper
- selenium模拟登录淘宝
热门文章
- STM32时钟学习之STM3210X_RCC.H解读
- 文献阅读 | Epigenetics in ENS development and Hirschsprung disease
- json串转成list
- Scrapy框架实现爬虫
- java理论之java基础
- 树言树语:AIR的 应用方向在哪里?
- Android Studio Flutter 调试技巧 Flutter Inspector 提升你的维护开发效率 轻松定位复杂嵌套Widget代码位置
- vue中Axios网络请求之Vue知识点归纳(十)
- H3C DHCP特点
- 正则表达式2--re方法--match()--search()