查看完整图片、作弊码、判断胜利

2024-01-30 22:20

本文主要是介绍查看完整图片、作弊码、判断胜利,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

查看完整图片

package Puzzlegame.com.wxj.ui;import javax.swing.*;
import javax.swing.border.BevelBorder;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;public class GameJframe extends JFrame implements KeyListener {
//游戏主界面
//创建一个二维数组//目的:管理数据//加载图片的时候,会根据二维数组中的数据进行加载
int [][] data=new int[4][4];//记录空白方块在二维数组中的位置int x=0;int y=0;//定义一个变量,记录当前展示的路径String path="F:\\javaEE\\src\\Puzzlegame\\com\\wxj\\ui\\image\\animal\\animal3\\";
public GameJframe(){//初始化界面initJFrame();//初始化菜单initJmenuBar();//初始化数据(打乱)
initData();//初始化图片(根据打乱之后的结果去加载图片)initImage();//让界面显示出来this.setVisible(true);
}//初始化数据(打乱)private void initData() {//1.定义一个数组int []tempArr={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//2.打乱数组中的数据顺序//遍历数组,得到每一个元素,拿着每一个元素跟随机索引上的数据交换Random r=new Random();for (int i = 0; i < tempArr.length; i++) {//获取到随机索引int index=r.nextInt(tempArr.length);
//拿着遍历到的每一个数据,跟随机索引上的数据进行交换。int temp=tempArr[i];tempArr[i]=tempArr[index];tempArr[index]=temp;}//5.给二维数组添加数据//解法一//遍历一维数组tempArr得到每一个元素,把每一个元素依次添加到二维数组中for (int i = 0; i < tempArr.length; i++) {if(tempArr[i]==0){
x=i/4;
y=i%4;}else {data[i/4][i%4]=tempArr[i];}}}//初始化图片//添加图片的时候,就需要按照二维数组中的数据添加图片private void initImage() {//清除原本已经出现的图片this.getContentPane().removeAll();//路径分为两种;//绝对路径:一定是从盘符开始//相对路径:相对当前项目而言//细节://先加载的图片在上方,后加载的图片在下方//外循环for (int i = 0; i < 4; i++) {//内循环for (int j = 0; j < 4; j++) {//获取当前要加载图片的序号int num=  data[i][j];//创建一个JLabel对象(管理容器)JLabel jLabel=new JLabel(new ImageIcon(path+num+".jpg"));//指定图片的位置jLabel.setBounds(105*j+83,105*i+134,105,105);//给图片添加边框jLabel.setBorder(new BevelBorder(1));//把管理容器添加到界面中this.getContentPane().add(jLabel);}}//添加背景图片JLabel background=new JLabel(new ImageIcon("F:\\javaEE\\src\\Puzzlegame\\com\\wxj\\ui\\image\\background.png"));background.setBounds(40,40,508,560);//把背景图片添加到界面当中this.getContentPane().add(background);//刷新一下界面this.getContentPane().repaint();}private void initJmenuBar() {//创建整个菜单对象JMenuBar jMenuBar=new JMenuBar();//创建菜单上的两个选项的对象(功能 关于我们)JMenu functionJMenu=new JMenu("功能");JMenu aboutJMenu=new JMenu("关于我们");
//创建选项下面的条目对象JMenuItem replayItem=new JMenuItem("重新游戏");JMenuItem reLoginItem=new JMenuItem("重新登录");JMenuItem closeItem=new JMenuItem("关闭游戏");JMenuItem accountItem=new JMenuItem("公众号");
//将每一个选项下面的条目添加到选项中functionJMenu.add(replayItem);functionJMenu.add(reLoginItem);functionJMenu.add(closeItem);aboutJMenu.add(accountItem);//将菜单里的两个选项添加到菜单当中jMenuBar.add(functionJMenu);jMenuBar.add(aboutJMenu);//给整个界面设置菜单this.setJMenuBar(jMenuBar);}//初始化界面private void initJFrame() {//设置界面的宽高this.setSize(603,680);//设置界面的标题this.setTitle("拼图单机版 V1.0");//设置界面置顶this.setAlwaysOnTop(true);//设置界面居中this.setLocationRelativeTo(null);//设置游戏的关闭模式this.setDefaultCloseOperation(3);//取消默认的居中放置,只有取消了才能按照xy轴的形式添加组件this.setLayout(null);//给整个界面添加键盘监听事件this.addKeyListener(this);}@Overridepublic void keyTyped(KeyEvent e) {}//按下不松时会调用这个代码@Overridepublic void keyPressed(KeyEvent e) {int code = e.getKeyCode();if(code==65){//把界面中的所有图片全部删除this.getContentPane().removeAll();//加载第一张完整图片JLabel all=new JLabel(new ImageIcon(path+"all.jpg"));all.setBounds(83,134,420,420);this.getContentPane().add(all);//加载背景图片//添加背景图片JLabel background=new JLabel(new ImageIcon("F:\\javaEE\\src\\Puzzlegame\\com\\wxj\\ui\\image\\background.png"));background.setBounds(40,40,508,560);//把背景图片添加到界面当中this.getContentPane().add(background);//刷新一下界面this.getContentPane().repaint();}}@Overridepublic void keyReleased(KeyEvent e) {
//对上下左右进行判断//左:37,上:38,右:39,下:40int code=  e.getKeyCode();if(code==37){System.out.println("向左移动");if (y==3){return;}data[x][y]=data[x][y+1];data[x][y+1]=0;y++;initImage();}else if(code==38){System.out.println("向上移动");if(x==3){return;}data[x][y]=data[x+1][y];data[x+1][y]=0;x++;initImage();}else if(code==39){System.out.println("向右移动");if (y==0){return;}data[x][y]=data[x][y-1];data[x][y-1]=0;y--;initImage();}else if (code==40){System.out.println("向下移动");if (x==0){return;}data[x][y]=data[x-1][y];data[x-1][y]=0;x--;initImage();}else  if(code==65){initImage();}}
}

作弊码

package Puzzlegame.com.wxj.ui;import javax.swing.*;
import javax.swing.border.BevelBorder;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;public class GameJframe extends JFrame implements KeyListener {
//游戏主界面
//创建一个二维数组//目的:管理数据//加载图片的时候,会根据二维数组中的数据进行加载
int [][] data=new int[4][4];//记录空白方块在二维数组中的位置int x=0;int y=0;//定义一个变量,记录当前展示的路径String path="F:\\javaEE\\src\\Puzzlegame\\com\\wxj\\ui\\image\\animal\\animal3\\";
public GameJframe(){//初始化界面initJFrame();//初始化菜单initJmenuBar();//初始化数据(打乱)
initData();//初始化图片(根据打乱之后的结果去加载图片)initImage();//让界面显示出来this.setVisible(true);
}//初始化数据(打乱)private void initData() {//1.定义一个数组int []tempArr={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//2.打乱数组中的数据顺序//遍历数组,得到每一个元素,拿着每一个元素跟随机索引上的数据交换Random r=new Random();for (int i = 0; i < tempArr.length; i++) {//获取到随机索引int index=r.nextInt(tempArr.length);
//拿着遍历到的每一个数据,跟随机索引上的数据进行交换。int temp=tempArr[i];tempArr[i]=tempArr[index];tempArr[index]=temp;}//5.给二维数组添加数据//解法一//遍历一维数组tempArr得到每一个元素,把每一个元素依次添加到二维数组中for (int i = 0; i < tempArr.length; i++) {if(tempArr[i]==0){
x=i/4;
y=i%4;}else {data[i/4][i%4]=tempArr[i];}}}//初始化图片//添加图片的时候,就需要按照二维数组中的数据添加图片private void initImage() {//清除原本已经出现的图片this.getContentPane().removeAll();//路径分为两种;//绝对路径:一定是从盘符开始//相对路径:相对当前项目而言//细节://先加载的图片在上方,后加载的图片在下方//外循环for (int i = 0; i < 4; i++) {//内循环for (int j = 0; j < 4; j++) {//获取当前要加载图片的序号int num=  data[i][j];//创建一个JLabel对象(管理容器)JLabel jLabel=new JLabel(new ImageIcon(path+num+".jpg"));//指定图片的位置jLabel.setBounds(105*j+83,105*i+134,105,105);//给图片添加边框jLabel.setBorder(new BevelBorder(1));//把管理容器添加到界面中this.getContentPane().add(jLabel);}}//添加背景图片JLabel background=new JLabel(new ImageIcon("F:\\javaEE\\src\\Puzzlegame\\com\\wxj\\ui\\image\\background.png"));background.setBounds(40,40,508,560);//把背景图片添加到界面当中this.getContentPane().add(background);//刷新一下界面this.getContentPane().repaint();}private void initJmenuBar() {//创建整个菜单对象JMenuBar jMenuBar=new JMenuBar();//创建菜单上的两个选项的对象(功能 关于我们)JMenu functionJMenu=new JMenu("功能");JMenu aboutJMenu=new JMenu("关于我们");
//创建选项下面的条目对象JMenuItem replayItem=new JMenuItem("重新游戏");JMenuItem reLoginItem=new JMenuItem("重新登录");JMenuItem closeItem=new JMenuItem("关闭游戏");JMenuItem accountItem=new JMenuItem("公众号");
//将每一个选项下面的条目添加到选项中functionJMenu.add(replayItem);functionJMenu.add(reLoginItem);functionJMenu.add(closeItem);aboutJMenu.add(accountItem);//将菜单里的两个选项添加到菜单当中jMenuBar.add(functionJMenu);jMenuBar.add(aboutJMenu);//给整个界面设置菜单this.setJMenuBar(jMenuBar);}//初始化界面private void initJFrame() {//设置界面的宽高this.setSize(603,680);//设置界面的标题this.setTitle("拼图单机版 V1.0");//设置界面置顶this.setAlwaysOnTop(true);//设置界面居中this.setLocationRelativeTo(null);//设置游戏的关闭模式this.setDefaultCloseOperation(3);//取消默认的居中放置,只有取消了才能按照xy轴的形式添加组件this.setLayout(null);//给整个界面添加键盘监听事件this.addKeyListener(this);}@Overridepublic void keyTyped(KeyEvent e) {}//按下不松时会调用这个代码@Overridepublic void keyPressed(KeyEvent e) {int code = e.getKeyCode();if(code==65){//把界面中的所有图片全部删除this.getContentPane().removeAll();//加载第一张完整图片JLabel all=new JLabel(new ImageIcon(path+"all.jpg"));all.setBounds(83,134,420,420);this.getContentPane().add(all);//加载背景图片//添加背景图片JLabel background=new JLabel(new ImageIcon("F:\\javaEE\\src\\Puzzlegame\\com\\wxj\\ui\\image\\background.png"));background.setBounds(40,40,508,560);//把背景图片添加到界面当中this.getContentPane().add(background);//刷新一下界面this.getContentPane().repaint();}}@Overridepublic void keyReleased(KeyEvent e) {
//对上下左右进行判断//左:37,上:38,右:39,下:40int code=  e.getKeyCode();if(code==37){System.out.println("向左移动");if (y==3){return;}data[x][y]=data[x][y+1];data[x][y+1]=0;y++;initImage();}else if(code==38){System.out.println("向上移动");if(x==3){return;}data[x][y]=data[x+1][y];data[x+1][y]=0;x++;initImage();}else if(code==39){System.out.println("向右移动");if (y==0){return;}data[x][y]=data[x][y-1];data[x][y-1]=0;y--;initImage();}else if (code==40){System.out.println("向下移动");if (x==0){return;}data[x][y]=data[x-1][y];data[x-1][y]=0;x--;initImage();}else  if(code==65){initImage();}else if(code==87){data=new int[][]{{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,0}};initImage();}}
}

判断胜利

package Puzzlegame.com.wxj.ui;import javax.swing.*;
import javax.swing.border.BevelBorder;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;public class GameJframe extends JFrame implements KeyListener {
//游戏主界面
//创建一个二维数组//目的:管理数据//加载图片的时候,会根据二维数组中的数据进行加载
int [][] data=new int[4][4];//记录空白方块在二维数组中的位置int x=0;int y=0;//定义一个变量,记录当前展示的路径String path="F:\\javaEE\\src\\Puzzlegame\\com\\wxj\\ui\\image\\animal\\animal3\\";
//定义一个二维数组,存储正确的数据int[][] win={  {1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,0}};public GameJframe(){//初始化界面initJFrame();//初始化菜单initJmenuBar();//初始化数据(打乱)
initData();//初始化图片(根据打乱之后的结果去加载图片)initImage();//让界面显示出来this.setVisible(true);
}//初始化数据(打乱)private void initData() {//1.定义一个数组int []tempArr={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//2.打乱数组中的数据顺序//遍历数组,得到每一个元素,拿着每一个元素跟随机索引上的数据交换Random r=new Random();for (int i = 0; i < tempArr.length; i++) {//获取到随机索引int index=r.nextInt(tempArr.length);
//拿着遍历到的每一个数据,跟随机索引上的数据进行交换。int temp=tempArr[i];tempArr[i]=tempArr[index];tempArr[index]=temp;}//5.给二维数组添加数据//解法一//遍历一维数组tempArr得到每一个元素,把每一个元素依次添加到二维数组中for (int i = 0; i < tempArr.length; i++) {if(tempArr[i]==0){
x=i/4;
y=i%4;}else {data[i/4][i%4]=tempArr[i];}}}//初始化图片//添加图片的时候,就需要按照二维数组中的数据添加图片private void initImage() {//清除原本已经出现的图片this.getContentPane().removeAll();if (victory()) {//显示胜利的图片JLabel winJLabel=new JLabel(new ImageIcon("F:\\javaEE\\src\\Puzzlegame\\com\\wxj\\ui\\image\\win.png"));winJLabel.setBounds(203,283,197,73);this.getContentPane().add(winJLabel);}//路径分为两种;//绝对路径:一定是从盘符开始//相对路径:相对当前项目而言//细节://先加载的图片在上方,后加载的图片在下方//外循环for (int i = 0; i < 4; i++) {//内循环for (int j = 0; j < 4; j++) {//获取当前要加载图片的序号int num=  data[i][j];//创建一个JLabel对象(管理容器)JLabel jLabel=new JLabel(new ImageIcon(path+num+".jpg"));//指定图片的位置jLabel.setBounds(105*j+83,105*i+134,105,105);//给图片添加边框jLabel.setBorder(new BevelBorder(1));//把管理容器添加到界面中this.getContentPane().add(jLabel);}}//添加背景图片JLabel background=new JLabel(new ImageIcon("F:\\javaEE\\src\\Puzzlegame\\com\\wxj\\ui\\image\\background.png"));background.setBounds(40,40,508,560);//把背景图片添加到界面当中this.getContentPane().add(background);//刷新一下界面this.getContentPane().repaint();}private void initJmenuBar() {//创建整个菜单对象JMenuBar jMenuBar=new JMenuBar();//创建菜单上的两个选项的对象(功能 关于我们)JMenu functionJMenu=new JMenu("功能");JMenu aboutJMenu=new JMenu("关于我们");
//创建选项下面的条目对象JMenuItem replayItem=new JMenuItem("重新游戏");JMenuItem reLoginItem=new JMenuItem("重新登录");JMenuItem closeItem=new JMenuItem("关闭游戏");JMenuItem accountItem=new JMenuItem("公众号");
//将每一个选项下面的条目添加到选项中functionJMenu.add(replayItem);functionJMenu.add(reLoginItem);functionJMenu.add(closeItem);aboutJMenu.add(accountItem);//将菜单里的两个选项添加到菜单当中jMenuBar.add(functionJMenu);jMenuBar.add(aboutJMenu);//给整个界面设置菜单this.setJMenuBar(jMenuBar);}//初始化界面private void initJFrame() {//设置界面的宽高this.setSize(603,680);//设置界面的标题this.setTitle("拼图单机版 V1.0");//设置界面置顶this.setAlwaysOnTop(true);//设置界面居中this.setLocationRelativeTo(null);//设置游戏的关闭模式this.setDefaultCloseOperation(3);//取消默认的居中放置,只有取消了才能按照xy轴的形式添加组件this.setLayout(null);//给整个界面添加键盘监听事件this.addKeyListener(this);}@Overridepublic void keyTyped(KeyEvent e) {}//按下不松时会调用这个代码@Overridepublic void keyPressed(KeyEvent e) {int code = e.getKeyCode();if(code==65){//把界面中的所有图片全部删除this.getContentPane().removeAll();//加载第一张完整图片JLabel all=new JLabel(new ImageIcon(path+"all.jpg"));all.setBounds(83,134,420,420);this.getContentPane().add(all);//加载背景图片//添加背景图片JLabel background=new JLabel(new ImageIcon("F:\\javaEE\\src\\Puzzlegame\\com\\wxj\\ui\\image\\background.png"));background.setBounds(40,40,508,560);//把背景图片添加到界面当中this.getContentPane().add(background);//刷新一下界面this.getContentPane().repaint();}}@Overridepublic void keyReleased(KeyEvent e) {
//判断游戏是否胜利,如果胜利此方法需要直接结束,不能在执行下面的移动代码if (victory()) {//结束方法return;}//对上下左右进行判断//左:37,上:38,右:39,下:40int code=  e.getKeyCode();if(code==37){System.out.println("向左移动");if (y==3){return;}data[x][y]=data[x][y+1];data[x][y+1]=0;y++;initImage();}else if(code==38){System.out.println("向上移动");if(x==3){return;}data[x][y]=data[x+1][y];data[x+1][y]=0;x++;initImage();}else if(code==39){System.out.println("向右移动");if (y==0){return;}data[x][y]=data[x][y-1];data[x][y-1]=0;y--;initImage();}else if (code==40){System.out.println("向下移动");if (x==0){return;}data[x][y]=data[x-1][y];data[x-1][y]=0;x--;initImage();}else  if(code==65){initImage();}else if(code==87){data=new int[][]{{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,0}};initImage();}}//判断data数组中数据是否和win数组中相同//如果全部相同返回true否则返回falsepublic boolean victory(){for (int i = 0; i < data.length; i++) {for (int j = 0;  j< data[i].length; j++) {if(data[i][j]!=win[i][j]){
return  false;}}}return  true;}
}

这篇关于查看完整图片、作弊码、判断胜利的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/661732

相关文章

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

使用 Python 和 LabelMe 实现图片验证码的自动标注功能

《使用Python和LabelMe实现图片验证码的自动标注功能》文章介绍了如何使用Python和LabelMe自动标注图片验证码,主要步骤包括图像预处理、OCR识别和生成标注文件,通过结合Pa... 目录使用 python 和 LabelMe 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心

Java操作xls替换文本或图片的功能实现

《Java操作xls替换文本或图片的功能实现》这篇文章主要给大家介绍了关于Java操作xls替换文本或图片功能实现的相关资料,文中通过示例代码讲解了文件上传、文件处理和Excel文件生成,需要的朋友可... 目录准备xls模板文件:template.xls准备需要替换的图片和数据功能实现包声明与导入类声明与

Oracle数据库执行计划的查看与分析技巧

《Oracle数据库执行计划的查看与分析技巧》在Oracle数据库中,执行计划能够帮助我们深入了解SQL语句在数据库内部的执行细节,进而优化查询性能、提升系统效率,执行计划是Oracle数据库优化器为... 目录一、什么是执行计划二、查看执行计划的方法(一)使用 EXPLAIN PLAN 命令(二)通过 S

基于C#实现将图片转换为PDF文档

《基于C#实现将图片转换为PDF文档》将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片,所以本文将介绍如何使用C#将JPG/PNG图片转换为PDF文档,需要的可以参考下... 目录介绍C# 将单张图片转换为PDF文档C# 将多张图片转换到一个PDF文档介绍将图片(JPG、PNG)转

Qt QWidget实现图片旋转动画

《QtQWidget实现图片旋转动画》这篇文章主要为大家详细介绍了如何使用了Qt和QWidget实现图片旋转动画效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、效果展示二、源码分享本例程通过QGraphicsView实现svg格式图片旋转。.hpjavascript

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传