3月25号

添加图片的一些例子:

//    创建一个二维数组,用来管理数据int[][] data = new int[4][4];
//    记录空白方块的位置int x=0;int y=0;
//    定义一个变量,记录当前展示图片的路径String path="E:\\java\\jigsawgame\\路飞\\路飞";
//        加载图片细节:
//        先加载的图片在上面,后加载的图片在下面for(int i = 0; i < 4; i++){for(int j = 0; j < 4; j++){
//                创建一个JLabel的对象(管理容器)JLabel jLabel=new JLabel(new ImageIcon(path+data[i][j]+".png"));
//                指定图片位置jLabel.setBounds(180*j+18,180*i+45,180,180);
//                给图片添加边框jLabel.setBorder(new BevelBorder(1));
//                把管理容器添加到界面中this.getContentPane().add(jLabel);}}//        添加背景图片ImageIcon icon = new ImageIcon("E:\\java\\jigsawgame\\背景.png");JLabel background = new JLabel(icon);background.setBounds(0, 0, 770, 830);
//        把背景图片添加到界面当中this.getContentPane().add(background);
//        刷新一下界面this.getContentPane().repaint();
加载图片细节:先加载的图片在上面,后加载的图片在下面

代码运行是这样的

 还有按键的一些操作:

基于完整的图片为0;以它为基准开始移动

    public void keyReleased(KeyEvent e) {
//        对上下左右进行判断
//        左:37 上:38 右:39 下:40int keyCode=e.getKeyCode();
//        System.out.println(keyCode);if(keyCode==37){if(y==0){return;}data[x][y]=data[x][y-1];data[x][y-1]=0;y--;initImage();} else if (keyCode==38) {if(x==0){return;}data[x][y]=data[x-1][y];data[x-1][y]=0;x--;initImage();} else if (keyCode==39) {if(y==3){return;}data[x][y]=data[x][y+1];data[x][y+1]=0;y++;initImage();} else if (keyCode==40) {if(x==3){
//                空白方块已经在最下方了,他的下面没有图片在能移动了return;}
//            逻辑:把空白方块下的数字往上移动
//            x,y表示空白方块  x+1,y表示空白方块下面的数字//            把空白方块下面的数字赋值给空白方块data[x][y]=data[x+1][y];data[x+1][y]=0;x++;
//            调用方法,按照最新的数字加载图片initImage();} else if (keyCode==65) {
//            按A键查看完整图片initImage();} else if (keyCode==87) {
//            按W键为作弊器,直接通过data=new int[][]{{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,0}};initImage();}}

按下上下左右就可以看出编号

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

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

相关文章

【机器学习】什么是支持向量机?

什么是支持向量机&#xff1f; 支持向量机&#xff08;SVM&#xff0c;Support Vector Machine&#xff09;是一种强大的机器学习算法&#xff0c;常用于分类问题&#xff0c;也可以用于回归问题。它的核心思想是通过找到一个最佳的“超平面”来将不同类别的数据分开&#xff…

10分钟打造专属AI助手!ToDesk云电脑/顺网云/海马云操作DeepSeek哪家强?

文章目录 一、引言云计算平台概览ToDesk云电脑&#xff1a;随时随地用上高性能电脑 二 .云电脑初体验DeekSeek介绍版本参数与特点任务类型表现 1、ToDesk云电脑2、顺网云电脑3、海马云电脑 三、DeekSeek本地化实操和AIGC应用1. ToDesk云电脑2. 海马云电脑3、顺网云电脑 四、结语…

Spring Boot 一个接口实现任意表的 Excel 导入导出

Java的web开发需要excel的导入导出工具&#xff0c;所以需要一定的工具类实现&#xff0c;如果是使用easypoi、Hutool导入导出excel&#xff0c;会非常的损耗内存&#xff0c;因此可以尝试使用easyexcel解决大数据量的数据的导入导出&#xff0c;且可以通过Java8的函数式编程解…

QT原子变量:QAtomicInteger、QAtomicPointer、QAtomicFlag

引言&#xff1a;原子变量为何重要&#xff1f; 在多线程编程中&#xff0c;共享数据的原子性访问是保证线程安全的核心。传统互斥锁虽然有效&#xff0c;但会带来性能损耗和死锁风险。QT提供的原子类型&#xff08;QAtomicInteger、QAtomicPointer、QAtomicFlag&#xff09;通…

大模型金融企业场景落地应用

一、商业银行体系 1. 江苏银行 企业背景&#xff1a;江苏银行是总部位于江苏南京的全国性股份制商业银行&#xff0c;在城商行中资产规模位居前列&#xff0c;积极拥抱金融科技&#xff0c;将数字化转型作为核心战略之一。近年来&#xff0c;江苏银行持续加大在人工智能、大数…

卡特兰数在数据结构上面的运用

原理 Catalan数是一个数列&#xff0c;其第n项表示n个不同结点可以构成的二叉排序树的数量。Catalan数的第n项公式为&#xff1a; &#xfffc; 其中&#xff0c;&#xfffc;是组合数&#xff0c;表示从2n个元素中选择n个元素的组合数。 Catalan数的原理可以通过以下方式理解&…

影视后期工具学习之PR(中)

pr剪辑之旅----声音设计 第五课 镜头语言和绿幕抠像 超级键效果(超级键通过简单的吸管取色和参数调整,即可实现专业级抠像与合成效果。无论是绿幕替换背景,还是创意双重曝光,都能轻松驾驭。建议结合「Alpha 通道」视图观察透明区域,逐步优化细节,最终导出高质量视频。)…

使用BootStrap 3的原创的模态框组件,没法弹出!估计是原创的bug

最近在给客户开发一个CRM系统&#xff0c;其中用到了BOOTSTRAP的模态框。版本是3。由于是刚开始用该框架。所以在正式部署到项目中前&#xff0c;需要测试一下&#xff0c;找到框架中的如下部分。需要说明的是。我用的asp.net mvc框架开发。测试也是在asp.net mvc环境下。 复制…

Camera2 与 CameraX 闲谈

目录 &#x1f4c2; 前言 1. &#x1f531; Camera2 2. &#x1f531; CameraX 3. &#x1f531; Camera2 与 CameraX 1&#xff09;使用复杂度与开发效率 2&#xff09;控制能力与应用场景 3&#xff09;设备兼容性与稳定性 4&#xff09;更新与维护 4. &#x1f4a0…

【大语言模型_8】vllm启动的模型通过fastapi封装增加api-key验证

背景&#xff1a; vllm推理框架启动模型不具备api-key验证。需借助fastapi可以实现该功能 代码实现&#xff1a; rom fastapi import FastAPI, Header, HTTPException, Request,Response import httpx import logging# 创建 FastAPI 应用 app FastAPI() logging.basicConfig(…

基于SpringBoot的名著阅读网站

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

Langchain 自定义工具和内置工具

使用介绍 自定义工具时的元素概念介绍 在Langchain中&#xff0c;工具&#xff08;Tool&#xff09;是与语言模型交互的基本单元。以下是自定义工具时的关键元素&#xff1a; name 定义&#xff1a;工具的名称&#xff0c;用于唯一标识该工具。作用&#xff1a;当工具被集成…

Gitee上库常用git命令

Gitee上库常用git命令 1、Fork 项目2、个人仓库修改3、追加提交4、创建PR5、多笔commit合一 1、Fork 项目 2、个人仓库修改 git add . // -s 表示自动添加邮箱签名信息&#xff0c;-m表示其后跟随commit描述 git commit -sm “add transition freeze” git push origin [目标…

Java 大视界 -- Java 大数据在智慧农业精准灌溉与施肥决策中的应用(144)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

Redux,React-redux。基础

状态管理库&#xff0c;集中式存储状态&#xff0c;管理状态 ✅ redux //简单实现 redux源码 export function createStore(reducer) {// reducer由用户编写&#xff0c; 必须是一个函数&#xff0c;dispatch的时候&#xff0c;reducer要执行if (typeof reducer ! function) t…

5.2 位运算专题:LeetCode 268. 丢失的数字

1. 题目链接 LeetCode 268. 丢失的数字 2. 题目描述 给定一个包含 [0, n] 范围内 n 个不同整数的数组 nums&#xff08;实际长度为 n&#xff09;&#xff0c;找出数组中缺失的那个数字。 示例&#xff1a; 输入&#xff1a;nums [3,0,1] → 输出&#xff1a;2&#xff08;…

基于第三方库的人脸识别系统的设计与实现

标题:基于第三方库的人脸识别系统的设计与实现 内容:1.摘要 本文针对传统人脸识别系统开发复杂、效率低的问题&#xff0c;旨在设计并实现基于第三方库的人脸识别系统。通过选用合适的第三方人脸识别库&#xff0c;利用其成熟的算法和接口&#xff0c;简化系统开发流程。对收集…

【Android】VehiclePropertyAccess引起CarService崩溃

VehiclePropertyAccess引起CarService崩溃 VehiclePropertyAccess VehiclePropertyAccess属性&#xff0c;用于定义车辆属性的访问权限。权限包括 读&#xff1a;READ&#xff0c;只可以读取&#xff0c;不能写入。 VehiclePropertyAccess:READ写&#xff1a;WRITE&#xf…

【Go】Go语言并发模型:MPG

Go 语言并发模型&#xff1a;MPG Go 的并发模型主要由三个部分构成&#xff1a; M (Machine) 系统线程&#xff0c;用于实际执行任务。 P (Processor) 逻辑处理器&#xff0c;负责管理和调度 goroutine。每个 P 拥有一个本地队列和关联的全局 G 队列。 G (Goroutine) Go 语言…

SpringCloud配置中心:Config Server与配置刷新机制

文章目录 引言一、Config Server基础架构1.1 Server端配置1.2 配置文件命名规则 二、Config Client配置2.1 Client端配置2.2 配置注入与使用 三、配置刷新机制3.1 手动刷新配置3.2 使用Spring Cloud Bus实现自动刷新3.3 配置仓库Webhook自动触发刷新 四、高级配置管理策略4.1 配…