IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 五子棋-java -> 正文阅读

[Java知识库]五子棋-java

public class Temp {

    private static int CHESS = 1;
    private static int EMPTY = 0;

    void test() {
        Scanner scanner = new Scanner(System.in);

        //初始化

        int n = 6;

        int[][] chessBoard = new int[n][n];

        List<Integer[]> list = chessBoard(chessBoard);

        print(list);
    }

    void print(List<Integer[]> list) {
        for (Integer[] item : list) {
            System.out.print(item);
        }
    }

    List<Integer[]> chessBoard(int[][] chessboard) {
        List<Integer[]> list = new ArrayList<>();

        for (int x = 0; x < chessboard.length; x++) {
            for (int y = 0; y < chessboard.length; y++) {
                if (isWin(x, y,chessboard)) {
                    Integer[] integers = new Integer[2];
                    integers[0] = x;
                    integers[1] = y;
                    list.add(integers);
                }
            }
        }

        return list;
    }

    int[][] getDirection() {
        int[][] data = new int[][]{
                {0, 1},
                {0, -1},
                {1, 0},
                {-1, 0},
                {-1, -1},
                {1, -1},
                {-1, 1},
                {1, 1}
        };
        return data;
    }

    boolean isWin(int i, int j, int[][] chessboard) {
        // i当前的位置
        // j当前的位置
        int[][] directions = getDirection();
        for (int[] direction : directions) {

            //每次判断一个方向
            if (isWin(direction, i, j, chessboard)) {
                return true;
            }
        }
        return false;
    }

    boolean isWin(int[] direction, int x, int y, int[][] chessboard) {
        int i = x;
        int j = y;

        int count = 0;

        while (i >= 0 && j < direction.length) {

            //没有棋子
            if (chessboard[i][j] != CHESS) {
                return false;
            }

            if (count == 4) {
                return true;
            }

            i += direction[0];
            j += direction[1];
            ++count;

        }
        return false;
    }
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 11:52:17  更:2021-08-30 11:53:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:26:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码