Java---二维数组

news2024/12/27 0:08:04

一.数组的维数

假象:一维数组

二维数组:数组中的元素是一维数组

二.五子棋游戏

import javax.swing.*;

public class Array06 {

    static String[][] matrix = new String[15][15];
    static String black = "⚫";
    static String white = "⚪";
    static boolean blackOrWhite = true;   //默认为黑棋

    public static void main(String[] args) {
        init();
        draw();
        play();
    }

    public static void init(){
        for (int i = 0;i < 15;i++){
            for (int j = 0;j < 15;j++){
                matrix[i][j] = "+";
            }
        }
    }

    //画出一个棋盘,并将+号存入二维数组
    public static void draw(){

        for (int i = 0;i < 15;i++){
            System.out.print("\t" + i);
        }
        System.out.println();

        for (int i = 0;i < 15;i++){
            System.out.print(i);
            for (int j = 0;j < 15;j++){
                System.out.print("\t" + matrix[i][j]);
            }
            System.out.println();
        }
    }

    public static void play(){
        while (true) {
            String player = blackOrWhite ? "黑棋" : "白棋";
            String input = JOptionPane.showInputDialog("请" + player + "请输入落子方位(例如[2,3])");
            // System.out.println(input);

            String[] split = input.split(",");
            int x = Integer.parseInt(split[0]);
            int y = Integer.parseInt(split[1]);
            if (x > 15||y > 15||x < 0||y < 0){
                JOptionPane.showMessageDialog(null,"落子方位超出范围");
            }
            System.out.println("坐标(" + x + "," + y + ")");

            matrix[x][y] = blackOrWhite ? black : white;
            draw();
            System.out.println(horizontalWin(matrix[x][y],x,y));
            blackOrWhite = !blackOrWhite;
        }
    }

    public static boolean horizontalWin(String color,int x,int y){
        int result = 1;
        int left = y;
        int right = x;

        while (left > 0){
            if (result >= 3) return true;

            if (matrix[x][--left].equals(color)){
                result++;
            }
        }

        while (right < 14){
            if (result >= 3) return true;
            if (matrix[x][++right].equals(color)){
                result++;
            }
        }
        return false;
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2059050.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL进阶技巧:多维分析之如何还原任意维度组合下的维度列簇名称?【利用grouping_id逆向分析】

目 录 0 需求描述 1 数据准备 2 问题分析 3 小结 0 需求描述 现有用户访问日志表 visit_log ,每一行数据表示一条用户访问日志。 需求: (1)按照如下维度组合 (province), (province, city), (province, city, device_type) 计算用户访问量,要求一条SQL语句统计所所…

[000-01-018].第3节:Linux环境下ElasticSearch环境搭建

我的后端学习笔记大纲 我的ElasticSearch学习大纲 1.Linux系统搭建ES环境&#xff1a; 1.1.单机版&#xff1a; a.安装ES-7.8版本 1.下载ES: 2.上传与解压&#xff1a;将下载的tar包上传到服务器software目录下&#xff0c;然后解压缩&#xff1a;tar -zxvf elasticsearch-7…

logstash入门学习

1、入门示例 1.1、安装 Redhat 平台 rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch cat > /etc/yum.repos.d/logstash.repo <<EOF [logstash-5.0] namelogstash repository for 5.0.x packages baseurlhttp://packages.elasticsearch.org…

以太坊 Pectra 升级四个月倒计时,哪些更新值得期待?

撰文&#xff1a;Ignas&#xff0c;DeFi Research 编译&#xff1a;J1N&#xff0c;Techub News 现在市场有充分的理由看空以太坊。因为自 2023 年初的市场低点以来&#xff0c; SOL 的涨幅比以太坊高 6.8 倍&#xff0c; 过去两年内 ETH/BTC 交易对的跌幅为 47%。 现在是以太…

Maven高级使用指南

在开发大型项目时&#xff0c;Maven作为一个强大的构建和项目管理工具&#xff0c;能显著提升项目管理和构建的效率。然而&#xff0c;随着项目的扩大&#xff0c;维护和管理的复杂性也随之增加。本文将探讨一些高级的Maven用法和解决方案&#xff0c;以帮助你更好地管理大型项…

在ISIS中什么是IP从地址

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

win11安装python及pycharm与webots联合仿真

1、查看Windows系统 是否已安装Python及版本 【冰糖Python】Windows系统 查看已安装的Python版本_怎么确定windows上成功安装python-CSDN博客 好&#xff0c;确认没装下面装python37 2、安装python3.7.9 参考教程Python 3.82安装教程&#xff08;Windows11、超详细版&#x…

Linux Shell 编程基础入门(一)

&#x1f600;前言 本篇博文是关于自动化工具Shell 编程的基本介绍&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动…

微服务:配置管理和配置热更新

参考&#xff1a;黑马程序员之微服务 &#x1f4a5; 该系列属于【SpringBoot基础】专栏&#xff0c;如您需查看其他SpringBoot相关文章&#xff0c;请您点击左边的连接 目录 一、引言 二、配置共享 1. 添加共享配置到nacos &#xff08;1&#xff09;jdbc的共享配置 shared…

点灯案例优化(三)宏定义特定位名称

前面利用位运算对代码进行二次优化以后&#xff0c;确实可读性更好&#xff0c;精确性更高了。但是吧&#xff0c;你乍一看这个代码 你可能一下都反应不过来这些的啥意思了&#xff0c;表达式右边上来就是一顿运算&#xff0c;可能刚开始大多数人都看不懂这写的什么&#xff0c…

用Python解决优化问题_模拟退火模板

一、模拟退火算法简介 模拟退火&#xff08;Simulated Annealing&#xff09;是一种启发式算法&#xff0c;用于在优化问题中找到一个好的解。启发式是指一种用于找到解决问题方法的原则或策略&#xff0c;它不保证找到最优解&#xff0c;但可以快速找到一个足够好的解。在许多…

资产全生命周期管理系统 固定资产全生命周期管理解决方案

什么是资产全生命周期管理系统 资产全生命周期管理系统是指对企业资产从采购、使用、维护、到报废的整个过程进行全方位管理的软件系统。通过这个系统&#xff0c;企业可以实现对资产的实时监控和管理&#xff0c;确保资产的利用率最大化。这个系统不仅能够跟踪资产的状态&…

C语言 数据存储

整形在内存中的存储&#xff08;之前的操作符讲过些许但不是很全&#xff0c;现在详细记录&#xff09; 对于一个整型变量来说&#xff0c;在内存中需要怎样存储&#xff1f; 之前了解到内存中存放的是补码&#xff08;正数的原反补都相同。回忆一下负数原码&#xff0c;反码…

IPD开发流程:项目风险画像

目录 1、内容简介 2、IPD 工具&#xff1a;项目风险画像 首先是独特性。 第二个是不确定性。 第三个是临时性。 第四个是跨职能性。 最后一个是变革性。 作者简介 1、内容简介 在 IPD 开发流程中&#xff0c; 经常会提到开发是一项投资行为、 产品/项目的商业价值等…

精细化管理和智慧化运营的智慧油站开源了

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。用…

【数据分享】2018-2023年全国范围10米分辨率的耕地利用强度数据(免费获取)

耕地利用强度数据是评估农业生产力、规划土地使用、监测粮食安全与环境可持续性的关键&#xff0c;对政策制定和资源管理具有重要指导意义。然而&#xff0c;目前国家范围的耕地利用数据集在时空连续性、分辨率和精度方面存在局限性。 本次我们分享的是2018年至2023年分辨率为…

Rocky 8.10安装流程步骤详细教程

Rocky 8.10安装流程步骤详细教程 1. Rocky 8.10 安装2. 登录3. 配置修改3.1 打开命令行窗口3.2 网卡配置3.3 修改网卡名3.4 配置镜像源3.5 删除网卡多余内容3.5.1 删除virbr03.5.2 删除altname enp3s03.5.3 删除ipv63.5.4 修改ip地址(这步没有需要可以忽略) 3.6 升级openssh3.7…

【文献阅读】Lorentzian Linear Graph Convolutional Networks For Node Classification

Abstract 大多数现有的线性GCN模型在欧几里得空间中执行神经网络操作&#xff0c;并未明确捕捉到真实世界数据集中以图形式建模的树状层次结构。本文尝试将双曲空间引入线性GCN&#xff0c;并提出了一种新的洛伦兹线性GCN框架。 具体而言&#xff0c;将图节点的学习特征映射到…

函数作为返回值

复习闭包时注意到的 function lazy_sum(arr) {let sum function () {return arr.reduce(function (x, y) {return x y;});}return sum; }当我们调用lazy_sum()时&#xff0c;返回的并不是求和结果&#xff0c;而是求和函数&#xff1a; let f lazy_sum([1, 2, 3, 4, 5]); …

uniapp在线视频监控开发

我这里是uniapp开发的H5项目 视频流是flv模式 用到的插件是flv.js Flv.js Flv.js 是 HTML5 Flash 视频&#xff08;FLV&#xff09;播放器&#xff0c;纯原生 JavaScript 开发&#xff0c;没有用到 Flash。。由 bilibili 网站开源。 常见直播协议 RTMP: 底层基于TCP&…