拼图小游戏

package li;import ui.tu;
//启动类
public class 主 {public static void main(String[] args) {new tu();  //创建登陆界面}
}
package ui;import javax.swing.*;
import javax.swing.border.BevelBorder;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;//游戏主界面
public class ru extends JFrame implements KeyListener, ActionListener {int [][] PosArr=new int[4][4];int [][] win=new int[][]{{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,0}};String path="拼图\\image\\animal\\animal3\\";int step=0; //计步器//记录空白方块在二维数组中的位置int x=0,y=0;//条目JMenuItem accountItem=new JMenuItem("支持我们(手动狗头)");JMenuItem prompt=new JMenuItem("提示");JMenuItem replayItem=new JMenuItem("重新游戏");JMenuItem reLoginItem=new JMenuItem("重新登录");JMenuItem closeItem=new JMenuItem("关闭游戏");JMenuItem BeautyPi=new JMenuItem("美女");JMenuItem AnimalPi=new JMenuItem("动物");JMenuItem MotionPi=new JMenuItem("运动");JMenuItem AboutUser=new JMenuItem("关于用户");//创建一个主界面public ru(){//初始化界面initJFrame();//初始化菜单initJMenuBar();//初始化并打乱二维数组中的下标ArrRandom();//初始化图片initImage();//将界面状态设置为显示this.setVisible(true);}//初始化图片private void initImage() {//清空所有图片this.getContentPane().removeAll();JLabel stepJlbel=new JLabel("步数:"+step);stepJlbel.setBounds(50,30,100,20);this.getContentPane().add(stepJlbel);//判断数组是否顺序相同,相同则代表图片位置同意一样if(OrderJudgment()){JLabel winJlabel=new JLabel(new ImageIcon("拼图/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 index=PosArr[i][j];ImageIcon icon = new ImageIcon(path+(index)+".jpg");JLabel jLabel = new JLabel(icon);jLabel.setBounds(105*j+83,105*i+134,105,105);jLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));this.getContentPane().add(jLabel);}}//添加背景ImageIcon background=new ImageIcon("拼图\\image\\background.png");JLabel dataJlabel=new JLabel(background);dataJlabel.setBounds(40,40,508,560);this.getContentPane().add(dataJlabel);//刷新界面this.getContentPane().repaint();}//数组随机public void ArrRandom() {Random r=new Random();int []tmparr={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0};for (int i = 0; i < tmparr.length; i++) {int index=r.nextInt(tmparr.length);int temp=tmparr[index];tmparr[index]=tmparr[i];tmparr[i]=temp;}for (int i = 0; i < tmparr.length; i++) {if(tmparr[i] == 0){x=i/4;y=i%4;}PosArr[i/4][i%4]=tmparr[i];}}//菜单设置private void initJMenuBar() {//初始化菜单JMenuBar jMenuBar = new JMenuBar();JMenu functionJMenu=new JMenu("功能");JMenu handoffPi=new JMenu("切换图片");JMenu aboutJMenu=new JMenu("关于");//添加functionJMenu.add(handoffPi);functionJMenu.add(replayItem);functionJMenu.add(reLoginItem);functionJMenu.add(closeItem);//将功能添加进切换图片这个项当中handoffPi.add(BeautyPi);handoffPi.add(AnimalPi);handoffPi.add(MotionPi);//关于此项添加aboutJMenu.add(accountItem);//给条目绑定事件//重新游戏replayItem.addActionListener(this);//重新登录reLoginItem.addActionListener(this);//关闭游戏closeItem.addActionListener(this);//关于我们accountItem.addActionListener(this);//提示prompt.addActionListener(this);//关于用户AboutUser.addActionListener(this);//更换图片功能绑定条目//美女、动物、运动BeautyPi.addActionListener(this);AnimalPi.addActionListener(this);MotionPi.addActionListener(this);//将其添加到大菜单当中jMenuBar.add(functionJMenu);jMenuBar.add(aboutJMenu);jMenuBar.add(prompt);jMenuBar.add(AboutUser);this.setJMenuBar(jMenuBar); //给界面设置菜单}//界面初始化private void initJFrame() {//设置界面长宽this.setSize(603,680);this.setTitle("拼图游戏单机版 V1.0");this.setAlwaysOnTop(true);this.setLocationRelativeTo(null);//设置关闭模式this.setDefaultCloseOperation(3);this.setLayout(null);//给整个界面添加键盘监听this.addKeyListener(this);}//判断两个数组数据是否相同public boolean OrderJudgment(){for (int i = 0; i < PosArr.length; i++) {for (int j = 0; j < PosArr[i].length; j++) {if(PosArr[i][j] != win[i][j]){return false;}}}return true;}//无内容@Overridepublic void keyTyped(KeyEvent e) {}//按键按着不松时执行@Overridepublic void keyPressed(KeyEvent e) {//获取当前按键的键值int code =e.getKeyCode();//判断是否 X 按键被按下 x的键盘值就是88if (code == 88) {//清空图片this.getContentPane().removeAll();//显示完整图片ImageIcon Fullmap=new ImageIcon(path+"\\all.jpg");JLabel dataJlabel=new JLabel(Fullmap);dataJlabel.setBounds(83,134,420,420);this.getContentPane().add(dataJlabel);//添加背景JLabel all=new JLabel(new ImageIcon("拼图\\image\\background.png"));all.setBounds(40,40,508,560);this.getContentPane().add(all);//刷新界面this.getContentPane().repaint();}}//按键松开时执行@Overridepublic void keyReleased(KeyEvent e) {//对 上 下 左 右 的操作进行判断//   38 40 37 39int code=e.getKeyCode();    //获取键盘按键的键值if(code == 37 && y != 0){PosArr[x][y]=PosArr[x][y-1];PosArr[x][y-1]=0;y--;//初始化图片initImage();System.out.println("向左移动");step++;}else if (code == 38 && x != 0) {PosArr[x][y]=PosArr[x-1][y];PosArr[x-1][y]=0;x--;//初始化图片initImage();System.out.println("向上移动");step++;}else if (code == 39 && y != 3) {PosArr[x][y]=PosArr[x][y+1];PosArr[x][y+1]=0;y++;//初始化图片initImage();System.out.println("向右移动");step++;}else if (code == 40 && x!= 3) {PosArr[x][y]=PosArr[x+1][y];PosArr[x+1][y]=0;x++;//初始化图片initImage();System.out.println("向下移动");step++;}//按下 X 显示全图else if (code == 88) {//初始化图片initImage();}//按下 A 键则执行一键通关else if (code == 65) {PosArr= new int[][]{{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,0},};x=y=3;  //将空白位置的坐标记录下来//初始化图片initImage();}//按下 C 键图片重新打乱,重新游戏else if (code == 67) {step=0; //计步器归零//将二维数组重新打乱以达到重新将图片打乱的效果ArrRandom();//初始化图片initImage();System.out.println("重新游戏");}else{return;}}//鼠标动作监听@Overridepublic void actionPerformed(ActionEvent e) {Object obj=e.getSource();//重新游戏if(obj == replayItem){step=0; //计步器归零//将二维数组重新打乱以达到重新将图片打乱的效果ArrRandom();//初始化图片initImage();System.out.println("重新游戏");}//重新登录else if (obj == reLoginItem) {this.dispose(); //关闭当前界面new ru();  //打开登录界面System.out.println("重新登录");}//关闭游戏else if (obj == closeItem) {//关闭虚拟机已到达退出游戏的效果System.exit(0);System.out.println("关闭游戏");}//收款码弹窗显示else if(obj == accountItem){//创建一个弹框对象JDialog jDialog =new JDialog();//创建一个图片对象并将其添加到管理容器当中JLabel jLabel=new JLabel(new ImageIcon("拼图\\image\\收款码.png"));//设置图片的位置与宽高jLabel.setBounds(0,0,516,506);//将管理容器添加到弹框中jDialog.getContentPane().add(jLabel);//设置弹框的大小jDialog.setSize(600,600);//设置弹框为界面顶置jDialog.setAlwaysOnTop(true);//设置弹框为初始居中显示jDialog.setLocationRelativeTo(null);//将弹框设置为未关闭则无法操作其他界面jDialog.setModal(true);//将弹框设置为显示jDialog.setVisible(true);System.out.println("关于我们");}//美女、动物、与运动等图片的切换else if (obj == BeautyPi) {System.out.println("美女图片");Random r=new Random();int index=r.nextInt(10)+1;//随机图片下标path=new String("拼图\\image\\girl\\girl"+(index)+"\\");step=0; //计步器归零ArrRandom();//生成图片initImage();} else if (obj == AnimalPi) {System.out.println("动物图片");Random r=new Random();int index=r.nextInt(8)+1;//随机图片下标path=new String("untitled/image/animal/animal"+(index)+"\\");step=0; //计步器归零ArrRandom();    //数组乱序initImage();    //生成图片} else if (obj == MotionPi) {System.out.println("运动图片");Random r=new Random();int index=r.nextInt(10)+1;  //随机图片下标path=new String("untitled/image/sport/sport"+(index)+"\\");step=0; //计步器归零ArrRandom();    //数组乱序initImage();    //生成图片}//提示弹框创建else if (obj == prompt) {showJDialog("x :显示全图; c :重新游戏;");}//关于用户动作监听else if (obj == AboutUser) {showJDialog("那年"+tu.userName+"双手插兜, 被我们打的不知如何还手");}else {return;}}public void showJDialog(String display){//创建一个弹框的对象,显示形参displayJDialog Error=new JDialog();//设置弹框的大小Error.setSize(300,300);JLabel data=new JLabel(display);data.setBounds(0,0,200,150);Error.getContentPane().add(data);Error.setTitle("提示");//将弹框设置为界面顶置Error.setAlwaysOnTop(true);//初始位置为居中显示Error.setLocationRelativeTo(null);//将弹框设置为不关闭弹框无法操作其他界面Error.setModal(true);//将弹框显示方式设置为显示Error.setVisible(true);}
}
package ui;import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;//游戏登录界面
public class tu extends JFrame implements MouseListener {//创建全集一个用户集合用于登录判断static ArrayList<ul> list=new ArrayList<>();static String userName;//添加用户集合成员,用于登录操作判断static{list.add(new ul("wuhu","yahu"));}//切换验证码按键JButton Switch_Captcha=new JButton();//设置注册按钮JButton enrollJButton=new JButton();//设置登录按钮JButton loginJButton = new JButton();//getCaptcha为验证码获取方法,传递的数据为需要返回的验证码的长度String str_Captcha=getCaptcha(5);/*登录与注册按钮的图片文件位置*/String Image_enroll="untitled/image/login/注册按钮.png";String Image_login="untitled/image/login/登录按钮.png";//显示用户名输入框JTextField NameFrame=new JTextField();//添加验证码文本框JTextField FrameCaptcha=new JTextField();//密码输入显示框JTextField PasswordFrame=new JTextField();//创建一个弹框对象JDialog Error;//登录界面的空参构造public tu(){initJFrame();   //界面初始化项目initView();     //界面元素添加//绑定监听enrollJButton.addMouseListener(this);loginJButton.addMouseListener(this);Switch_Captcha.addMouseListener(this);//将界面状态设置为显示this.setVisible(true);}//界面初始化类public void initView(){//清空界面this.getContentPane().removeAll();//显示用户名JLabel UsrtName = new JLabel(new ImageIcon("untitled/image/login/用户名.png"));UsrtName.setBounds(100,105,47,17);this.getContentPane().add(UsrtName);//配置用户名输入框NameFrame.setBounds(160,100,200,30);this.getContentPane().add(NameFrame);//显示密码JLabel UsrtPassword=new JLabel(new ImageIcon("untitled/image/login/密码.png"));UsrtPassword.setBounds(100,155,47,17);this.getContentPane().add(UsrtPassword);//配置密码框参数PasswordFrame.setBounds(160,150,200,30);this.getContentPane().add(PasswordFrame);//添加验证码JLabel CaptchaTxT=new JLabel(new ImageIcon("untitled/image/login/验证码.png"));CaptchaTxT.setBounds(100,215,47,17);this.getContentPane().add(CaptchaTxT);//配置验证码文本框参数FrameCaptcha.setBounds(160,210,100,30);this.getContentPane().add(FrameCaptcha);//验证码显示System.out.println(str_Captcha);JLabel Captcha=new JLabel(str_Captcha);Captcha.setBounds(280,215,50,20);this.getContentPane().add(Captcha);//设置验证码按钮Switch_Captcha.setBounds(275,215,50,20);Switch_Captcha.setBorderPainted(false);Switch_Captcha.setContentAreaFilled(false);this.getContentPane().add(Switch_Captcha);//配置登录按钮loginJButton.setIcon(new ImageIcon(Image_login));loginJButton.setBorderPainted(false);   //去除按钮的默认边框loginJButton.setContentAreaFilled(false);   //去除按钮的默认背景loginJButton.setBounds(123,310,128,47); //设置位置与大小this.getContentPane().add(loginJButton);//配置注册按钮enrollJButton.setIcon(new ImageIcon(Image_enroll));enrollJButton.setBorderPainted(false);   //去除按钮的默认边框enrollJButton.setContentAreaFilled(false);   //去除按钮的默认背景enrollJButton.setBounds(270,310,128,47); //设置位置与大小this.getContentPane().add(enrollJButton);//  添加背景图片//设置一个JLabel对象进行管理图片JLabel background_JLabel=new JLabel(new ImageIcon("untitled/image/register/background.png"));//设置图片的位置与宽高background_JLabel.setBounds(0,0,470,390);//将容器添加到界面当中this.getContentPane().add(background_JLabel);//刷新界面this.getContentPane().repaint();}//获取验证码方法 n 为需要返回的验证码长度public static String getCaptcha(int len){Random r=new Random();  //设置随机方法种子StringBuilder str=new StringBuilder();for (int i = 0; i < len-1; i++) {int num=r.nextInt(58)+65;   //字母范围的数值//跳过ascii表中的其他字符if(num > 90 && num < 97){num+=7;}str.append((char)num);  //将数值强制转换为字母并添加到字符串中}//将数字添加到字符串中int number=r.nextInt(10);str.append(number);//转换为字符数组更好进行乱序的操作char []arr= str.toString().toCharArray();//将其数组元素顺序打乱for (int i = 0; i < arr.length; i++) {int index=r.nextInt(arr.length);char temp=arr[i];arr[i]=arr[index];arr[index]=temp;}//将完成的验证码转换为字符串将其返回return new String(arr);}//注册界面初始化方法public void initJFrame(){//设置界面的宽高this.setSize(488,430);//设置界面的标题this.setTitle(" 登录界面 ");//设置界面为图层顶置this.setAlwaysOnTop(true);//设置界面为初始化居中显示this.setLocationRelativeTo(null);//设置关闭模式 3 代表当前界面被关闭后程序结束this.setDefaultCloseOperation(3);}/*事件监听*///鼠标松开后执行@Overridepublic void mouseClicked(MouseEvent e) {System.out.println("松开后");Object obj=e.getSource();   //获取点击是哪一个按键//登录按钮点击后的操作if(loginJButton == obj){Image_login=("untitled/image/login/登录按钮.png");initView();//界面显示方法//获取用户名、密码、验证码框内的内容String getName=NameFrame.getText();String getPasswodr=PasswordFrame.getText();String getCaptcha=FrameCaptcha.getText();//判断三个文本框内是否都有输入数据if((0 == getName.length()) || (0 == getPasswodr.length()) || (0 == getCaptcha.length())){showJDialog("输入有误,请检查是否已全部输入");return;}else if(!(str_Captcha.equals(getCaptcha))){showJDialog("验证码错误,请正确输入");str_Captcha=getCaptcha(5);initView();//界面显示方法}/*judgmentUser方法作用为判断输入的用户名与密码是否为正确的* 返回值为 bool类型,正确返回true,错误返回false* */else if ( judgmentUser(getName,getPasswodr) ){showJDialog("登录成功!欢迎进入游戏");this.dispose(); //关闭当前界面userName=getName;new ru();   //打开游戏界面}else {showJDialog("用户名或密码错误");return;}}//注册按钮点击后的操作else if (enrollJButton == obj) {Image_enroll=("untitled/image/login/注册按钮.png");showJDialog("功能未完善,敬请期待。");}//验证码显示范围地区被点击后else if (Switch_Captcha == obj) {str_Captcha=getCaptcha(5);  //传入的形参为返回的长度initView();//界面显示方法}/*判断整个弹窗对象是否被点击*/else if (Error == obj) {//将生成的弹窗关闭Error.dispose();} else {;}}//按键按着不松时@Overridepublic void mousePressed(MouseEvent e) {/*主要作用为当按键松开后,将按钮恢复为初始状态*/Object obj=e.getSource();   //获取点击是哪一个按键if(loginJButton == obj){Image_login=("untitled/image/login/登录按下.png");//界面显示方法initView();} else if (enrollJButton == obj) {Image_enroll=("untitled/image/login/注册按下.png");//界面显示方法initView();}else {;}}//鼠标点击后松开执行@Overridepublic void mouseReleased(MouseEvent e) {}//鼠标滑入监听@Overridepublic void mouseEntered(MouseEvent e) {}//鼠标滑出监听@Overridepublic void mouseExited(MouseEvent e) {}//判断用户名与密码是否相等方法public boolean judgmentUser(String strName,String strPassword){for (int i = 0; i < list.size(); i++) {if( list.get(i).getName().equals(strName) ){if( list.get(i).getPassword().equals(strPassword) ){return true;}return false;}}return false;}//弹框显示public void showJDialog(String display){//创建一个弹框的对象,显示形参displayError=new JDialog();//设置弹框的大小Error.setSize(200,150);JLabel data=new JLabel(display);data.setBounds(0,0,200,150);Error.getContentPane().add(data);Error.setTitle("提示");//将弹框设置为界面顶置Error.setAlwaysOnTop(true);//初始位置为居中显示Error.setLocationRelativeTo(null);//将弹框设置为不关闭弹框无法操作其他界面Error.setModal(true);//绑定监听Error.addMouseListener(this);//将弹框显示方式设置为显示Error.setVisible(true);}
}
package ui;//用户类
public class ul {private String Name;private String password;public ul() {}public ul(String name, String password) {this.Name = name;this.password = password;}public String getName() {return Name;}public void setName(String name) {this.Name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

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

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

相关文章

腾讯微服务平台TSF学习笔记(一)--如何使用TSF的Sidecar过滤器实现mesh应用的故障注入

Mesh应用的故障注入 故障注入前世今生Envoy设置故障注入-延迟类型设置故障注入-延迟类型并带有自定义状态码总结 故障注入前世今生 故障注入是一种系统测试方法&#xff0c;通过引入故障来找到系统的bug&#xff0c;验证系统的稳健性。istio支持延迟故障注入和异常故障注入。 …

MySQL的执行器是怎么工作的

作为优化器后的真正执行语句的层&#xff0c;执行器有三种方式和存储引擎&#xff08;一般是innoDB&#xff09;交互 主键索引查询 查询的条件用到了主键&#xff0c;这个是全表唯一的&#xff0c;优化器会选择const类型来查询&#xff0c;然后while循环去根据主键索引的B树结…

Zabbix Proxy分布式监控

目录 Zabbix Proxy简介 实验环境 proxy端配置 1.安装仓库 2.安装zabbix-proxy 3.创建初始数据库 4.导入初始架构和数据&#xff0c;系统将提示您输入新创建的密码 5.编辑配置文件 /etc/zabbix/zabbix_proxy.conf&#xff0c;配置完成后要重启。 agent客户端配置 zabbix…

day07_数组初识

数组的概述 数组就是用于存储数据的长度固定的容器&#xff0c;保证多个数据的数据类型要一致。 数组适合做一批同种类型数据的存储 数组是属于引用数据类型&#xff0c; 数组变量名中存储的数组在内存中的地址信息。 数组中的元素可以是基本数据类型&#xff0c;也可以是引用…

java智慧校园信息管理系统源码带微信小程序

一、智慧校园的定义 智慧校园指的是以云计算和物联网为基础的智慧化的校园工作、学习和生活一体化环境。以各种应用服务系统为载体&#xff0c;将教学、科研、管理和校园生活进行充分融合&#xff0c;让校园实现无处不在的网络学习、融合创新的网络科研、透明高效的校务治理、…

Kafka学习笔记(二)

目录 第3章 Kafka架构深入3.3 Kafka消费者3.3.1 消费方式3.3.2 分区分配策略3.3.3 offset的维护 3.4 Kafka高效读写数据3.5 Zookeeper在Kafka中的作用3.6 Kafka事务3.6.1 Producer事务3.6.2 Consumer事务&#xff08;精准一次性消费&#xff09; 第4章 Kafka API4.1 Producer A…

电子学会2023年6月青少年软件编程(图形化)等级考试试卷(四级)真题,含答案解析

青少年软件编程(图形化)等级考试试卷(四级) 一、单选题(共10题,共30分) 1. 下列积木运行后的结果是?( )(说明:逗号后面无空格) A.

Canal+Kafka实现MySQL与Redis数据同步(二)

CanalKafka实现MySQL与Redis数据同步&#xff08;二&#xff09; 创建MQ消费者进行同步 在application.yml配置文件加上kafka的配置信息&#xff1a; spring:kafka:# Kafka服务地址bootstrap-servers: 127.0.0.1:9092consumer:# 指定一个默认的组名group-id: consumer-group…

08.智慧商城——购物车布局、全选反选、功能实现

01. 购物车 - 静态布局 基本结构 <template><div class"cart"><van-nav-bar title"购物车" fixed /><!-- 购物车开头 --><div class"cart-title"><span class"all">共<i>4</i>件商品…

STM32存储左右互搏 SPI总线FATS文件读写FLASH W25QXX

STM32存储左右互搏 SPI总线FATS文件读写FLASH W25QXX FLASH是常用的一种非易失存储单元&#xff0c;W25QXX系列Flash有不同容量的型号&#xff0c;如W25Q64的容量为64Mbit&#xff0c;也就是8MByte。这里介绍STM32CUBEIDE开发平台HAL库实现FATS文件操作W25Q各型号FLASH的例程。…

好莱坞罢工事件!再次警醒人类重视AI监管,人工智能矛盾一触即发!

原创 | 文 BFT机器人 关注国外新闻的应该都知道&#xff0c;最近焦点新闻是好莱坞史上最大规模的一场罢工运动。这场维持118天的罢工运动&#xff0c;终于在11月9号早上12点在好莱坞宣布结束。这场罢工运动虽是演员工会和代表资方的影视制片人联盟的茅盾&#xff0c;但直接引发…

求二叉树的高度(可运行)

输入二叉树为&#xff1a;ABD##E##C##。 运行环境&#xff1a;main.cpp 运行结果&#xff1a;3 #include "bits/stdc.h" using namespace std; typedef struct BiTNode{char data;struct BiTNode *lchild,*rchild;int tag; }BiTNode,*BiTree;void createTree(BiTre…

【数据结构】详解链表结构

目录 引言一、链表的介绍二、链表的几种分类三、不带头单链表的一些常用接口3.1 动态申请一个节点3.2 尾插数据3.3 头插数据3.4 尾删数据3.5 头删数据3.6 查找数据3.7 pos位置后插入数据3.8 删除pos位置数据3.9 释放空间 四、带头双向链表的常见接口4.1创建头节点&#xff08;初…

有趣的按钮分享

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 广告打完&#xff0c;我们进入正题&#xff0c;先看效果&#xff1a; 废话不多&#xff0c;上源码&#xff1a; <button class&quo…

【LeetCode刷题日志】232.用栈实现队列

&#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;C/C领域新星创作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;LeetCode 刷题日志&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;…

竞赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python

文章目录 1 简介2 传统机器视觉的手势检测2.1 轮廓检测法2.2 算法结果2.3 整体代码实现2.3.1 算法流程 3 深度学习方法做手势识别3.1 经典的卷积神经网络3.2 YOLO系列3.3 SSD3.4 实现步骤3.4.1 数据集3.4.2 图像预处理3.4.3 构建卷积神经网络结构3.4.4 实验训练过程及结果 3.5 …

负载均衡简介

负载均衡 负载均衡&#xff08;Load Balance&#xff0c;简称 LB&#xff09;是高并发、高可用系统必不可少的关键组件&#xff0c;目标是 尽力将网络流量平均分发到多个服务器上&#xff0c;以提高系统整体的响应速度和可用性。 负载均衡的分类和OSI模型息息相关&#xff0c…

【广州华锐互动】VR可视化政务服务为公众提供更直观、形象的政策解读

虚拟现实&#xff08;VR&#xff09;技术正在逐渐应用于政务服务领域&#xff0c;为公众提供更加便捷、高效和个性化的服务体验。通过VR眼镜、手机等设备&#xff0c;公众可以在虚拟环境中参观政务服务中心&#xff0c;并根据自己的需求选择不同的办事窗口或事项进行咨询和办理…

03 前后端数据交互【小白入门SpringBoot + Vue3】

项目笔记&#xff0c;教学视频来源于B站青戈 https://www.bilibili.com/video/BV1H14y1S7YV 前两个笔记。是把前端页面大致做出来&#xff0c;接下来&#xff0c;把后端项目搞一下。 后端项目&#xff0c;使用IDEA软件、jdk1.8、springboot2.x 。基本上用的是稳定版。 还有My…

【Linux】vscode远程连接ubuntu失败

VSCode远程连接ubuntu服务器 这部分网上有很多&#xff0c;都烂大街了&#xff0c;自己搜吧。给个参考连接&#xff1a;VSCode远程连接ubuntu服务器 注意&#xff0c;这里我提前设置了免密登录。至于怎么设置远程免密登录&#xff0c;可以看其它帖子&#xff0c;比如这个。 …