当前位置: 首页 > news >正文

做垂直导购网站还行吗网络管理员是做什么的

做垂直导购网站还行吗,网络管理员是做什么的,用discuz做行业网站,网站建设如何快速增加用户本文实例为大家分享了java实现2048游戏源代码#xff0c;供大家参考#xff0c;具体内容如下一.主要功能#xff1a;1、游戏初始化#xff1a;新建游戏44的16宫格画布#xff0c;随机格子上生成2或者4两个数字2、格子的移动#xff1a;先判断能否移动#xff0c;移动后判…本文实例为大家分享了java实现2048游戏源代码供大家参考具体内容如下一.主要功能1、游戏初始化新建游戏4×4的16宫格画布随机格子上生成2或者4两个数字2、格子的移动先判断能否移动移动后判断能否合并合并后改变格子颜色和数字3、新格子的生成移动一次就在剩余的空格子中随机生成一个2或者44、判赢16宫格中合并出了“2048”则为游戏胜利5、判输16宫格中没有剩余空格子且不能再向任何方向移动则为游戏失败二.项目的主要结构在项目2018游戏中有4个源文件此外还有3个.png和两个.wav格式的音乐文件。一个音乐是按键移动的声音另外一个是碰撞后的消除的声音。然后游戏的最高分保存是在Recording源文件中之后附上所需的图片文件和音乐文件来了来了.三.代码1、Game.javapackage shixun;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JFrame;import javax.swing.JLabel;public class Game extends JFrame {private static final long serialVersionUID 1L;public static void main(String[] args) {Game UI new Game();UI.IntUI();}// 用于存放数据的数组,构成游戏4*4界面的数值private int Numbers[][] new int[4][4] ;private void IntUI() {this.setTitle(2048小游戏);this.setLocation(450, 100);this.setSize(400, 500);this.setLayout(null);// 开始游戏按钮ImageIcon imgicon new ImageIcon(res/start.png);JButton bt new JButton(imgicon);bt.setFocusable(false);bt.setBorderPainted(false);bt.setFocusPainted(false);bt.setContentAreaFilled(false);bt.setBounds(5, 10, 120, 30);// 设置按钮的xy坐标位置和宽度与高度this.add(bt);//后退一步按钮ImageIcon backicon new ImageIcon(res/backicon.png);JButton back new JButton(backicon);back.setFocusable(false);back.setBorderPainted(false);back.setFocusPainted(false);back.setContentAreaFilled(false);back.setBounds(270, 10, 120, 30);// 设置按钮的xy坐标位置和宽度与高度this.add(back);// 关于按钮ImageIcon imgicon2 new ImageIcon(res/about.png);JButton about new JButton(imgicon2);about.setFocusable(false);about.setBorderPainted(false);about.setFocusPainted(false);about.setContentAreaFilled(false);about.setBounds(160, 10, 70, 30);this.add(about);// 分数显示JLabel lb new JLabel(分数0);lb.setBounds(40, 45, 120, 30);lb.setFont(new Font(幼圆, Font.CENTER_BASELINE, 18));lb.setForeground(new Color(0x000000));this.add(lb);//最高分数Recorder.getRecording();int maxscore Recorder.getMaxscore_2048();JLabel Mnew JLabel(最高分0);M.setBounds(150,45,120,30);M.setFont(new Font(幼圆, Font.CENTER_BASELINE, 18));M.setForeground(new Color(0x000000));this.add(M);//静音JCheckBox isSoundBoxnew JCheckBox(静音);isSoundBox.setBounds(290, 45, 120, 30);isSoundBox.setFont(new Font(幼圆, Font.CENTER_BASELINE, 18));isSoundBox.setFocusable(false);isSoundBox.setBorderPainted(false);isSoundBox.setFocusPainted(false);isSoundBox.setContentAreaFilled(false);this.add(isSoundBox);this.setDefaultCloseOperation(3);this.setResizable(false);this.setVisible(true);// 显示界面// 创建事件处理类MyListener cl new MyListener(this,Numbers,lb,M, bt, about,back,isSoundBox);bt.addActionListener(cl);about.addActionListener(cl);back.addActionListener(cl);isSoundBox.addActionListener(cl);this.addKeyListener(cl);}// 重写窗体Overridepublic void paint(Graphics g) {super.paint(g);g.setColor(new Color(0xBBADA0));g.fillRoundRect(15, 110, 370, 370, 15, 15);// 大矩形框g.setColor(new Color(0xCDC1B4));for (int i 0; i 4; i) {for (int j 0; j 4; j) {g.fillRoundRect(25 i * 90, 120 j * 90, 80, 80, 15, 15);// 小矩形框}}// 调整数字的位置并上色for (int i 0; i 4; i) {for (int j 0; j 4; j) {if (Numbers[j][i] ! 0) {int FontSize 30;int MoveX 0, MoveY 0;switch (Numbers[j][i]) {case 2:g.setColor(new Color(0xeee4da));FontSize 30;MoveX 0;MoveY 0;break;case 4:g.setColor(new Color(0xede0c8));FontSize 30;MoveX 0;MoveY 0;break;case 8:g.setColor(new Color(0xf2b179));FontSize 30;MoveX 0;MoveY 0;break;case 16:g.setColor(new Color(0xf59563));FontSize 29;MoveX -5;MoveY 0;break;case 32:g.setColor(new Color(0xf67c5f));FontSize 29;MoveX -5;MoveY 0;break;case 64:g.setColor(new Color(0xf65e3b));FontSize 29;MoveX -5;MoveY 0;break;case 128:g.setColor(new Color(0xedcf72));FontSize 28;MoveX -10;MoveY 0;break;case 256:g.setColor(new Color(0xedcc61));FontSize 28;MoveX -10;MoveY 0;break;case 512:g.setColor(new Color(0xedc850));FontSize 28;MoveX -10;MoveY 0;break;case 1024:g.setColor(new Color(0xedc53f));FontSize 27;MoveX -15;MoveY 0;break;case 2048:g.setColor(new Color(0xedc22e));FontSize 27;MoveX -15;MoveY 0;break;default:g.setColor(new Color(0x000000));break;}g.fillRoundRect(25 i * 90, 120 j * 90, 80, 80, 15, 15);// 小矩形框上色g.setColor(new Color(0x000000));g.setFont(new Font(Kristen ITC, Font.PLAIN, FontSize));g.drawString(Numbers[j][i] , 25 i * 90 30 MoveX,120 j * 90 50 MoveY);}}}}}2、MyListener.javapackage shixun;import java.awt.Component;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.util.Arrays;import java.util.Random;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JLabel;import javax.swing.JOptionPane;public class MyListener extends KeyAdapter implements ActionListener {/*** KevinWu*/private Game UI;// 界面对象private int Numbers[][];// 存放数据的数组private Random rand new Random();private int BackUp[][] new int[4][4];//用于备份数组供回退时使用private int BackUp2[][] new int[4][4];//用于备份数组供起死回生时使用public JLabel lb;public JLabel M;int score 0;int maxscoreRecorder.getMaxscore_2048();int tempscore,tempscore2;//记录回退isWin的分数值public JButton bt,about,back;public JCheckBox isSoundBox;private boolean isWinfalse,relivefalse,hasBackfalse,isSoundtrue;public MyListener(Game UI, int Numbers[][], JLabel lb,JLabel M ,JButton bt,JButton about,JButton back,JCheckBox isSoundBox) {this.UI UI;this.Numbers Numbers;this.lb lb;this.btbt;this.aboutabout;this.backback;this.isSoundBoxisSoundBox;this.MM;}Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource() bt ){isWinfalse;for (int i 0; i 4; i)for (int j 0; j 4; j)Numbers[i][j] 0;score 0;// 保证每次重置游戏都是0分开始lb.setText(分数 score);M.setText(最高分:maxscore);int r1 rand.nextInt(4);int r2 rand.nextInt(4);int c1 rand.nextInt(4);int c2 rand.nextInt(4);while (r1 r2 c1 c2) {r2 rand.nextInt(4);c2 rand.nextInt(4);}// 生成数字(2或者4)int value1 rand.nextInt(2) * 2 2;int value2 rand.nextInt(2) * 2 2;// 把数字存进对应的位置Numbers[r1][c1] value1;Numbers[r2][c2] value2;UI.paint(UI.getGraphics());}else if(e.getSource()about){JOptionPane.showMessageDialog(UI, 游戏规则\n 开始时棋盘内随机出现两个数字出现的数字仅可能为2或4\n 玩家可以选择上下左右四个方向若棋盘内的数字出现位移或合并视为有效移动\n 玩家选择的方向上若有相同的数字则合并每次有效移动可以同时合并但不可以连续合并\n 合并所得的所有新生成数字想加即为该步的有效得分\n 玩家选择的方向行或列前方有空格则出现位移\n 每有效移动一步棋盘的空位(无数字处)随机出现一个数字(依然可能为2或4)\n 棋盘被数字填满无法进行有效移动判负游戏结束\n 棋盘上出现2048判胜游戏结束。\n);}else if(e.getSource()backhasBackfalse){hasBacktrue;if(relivefalse){scoretempscore;lb.setText(分数 score);for(int i0;iNumbers[i]Arrays.copyOf(BackUp[i], BackUp[i].length);}}else{scoretempscore2;lb.setText(分数 score);for(int i0;iNumbers[i]Arrays.copyOf(BackUp2[i], BackUp2[i].length);}relivefalse;}UI.paint(UI.getGraphics());}else if(e.getSource().equals(isSoundBox)){if (isSoundBox.isSelected())isSoundfalse;elseisSoundtrue;}}// 键盘监听public void keyPressed(KeyEvent event) {int Counter 0;// 计算器判断是否移动了int NumCounter 0;// 用于统计整个大方框中数字的个数判断是否已满int NumNearCounter 0;// 用于统计相邻格子数字相同的个数/** 方向键键值左37上38右39下40*/hasBack false;if (BackUp ! null || BackUp.length ! 0) {tempscore2 tempscore;// 先把分数备份好// 下面的for循环调用java.util.Arrays.copyOf()方法复制数组实现备份for (int i 0; i BackUp.length; i) {BackUp2[i] Arrays.copyOf(BackUp[i], BackUp[i].length);}}tempscore score;// 先把分数备份好// 下面的for循环调用java.util.Arrays.copyOf()方法复制数组实现备份for (int i 0; i Numbers.length; i) {BackUp[i] Arrays.copyOf(Numbers[i], Numbers[i].length);}if (isWin false) {switch (event.getKeyCode()) {case 37:// 向左移动if (isSound true)new PlaySound(move.wav).start();for (int h 0; h 4; h)for (int l 0; l 4; l)if (Numbers[h][l] ! 0) {int temp Numbers[h][l];int pre l - 1;while (pre 0 Numbers[h][pre] 0) {Numbers[h][pre] temp;Numbers[h][pre 1] 0;pre--;Counter;}}for (int h 0; h 4; h)for (int l 0; l 4; l)if (l 1 4 (Numbers[h][l] Numbers[h][l 1]) (Numbers[h][l] ! 0 || Numbers[h][l 1] ! 0)) {if (isSound true)new PlaySound(merge.wav).start();Numbers[h][l] Numbers[h][l] Numbers[h][l 1];Numbers[h][l 1] 0;Counter;score Numbers[h][l];if (Numbers[h][l] 2048) {isWin true;}}for (int h 0; h 4; h)for (int l 0; l 4; l)if (Numbers[h][l] ! 0) {int temp Numbers[h][l];int pre l - 1;while (pre 0 Numbers[h][pre] 0) {Numbers[h][pre] temp;Numbers[h][pre 1] 0;pre--;Counter;}}break;case 39:// 向右移动if (isSound true)new PlaySound(move.wav).start();for (int h 3; h 0; h--)for (int l 3; l 0; l--)if (Numbers[h][l] ! 0) {int temp Numbers[h][l];int pre l 1;while (pre 3 Numbers[h][pre] 0) {Numbers[h][pre] temp;Numbers[h][pre - 1] 0;pre;Counter;}}for (int h 3; h 0; h--)for (int l 3; l 0; l--)if (l 1 4 (Numbers[h][l] Numbers[h][l 1]) (Numbers[h][l] ! 0 || Numbers[h][l 1] ! 0)) {if (isSound true)new PlaySound(merge.wav).start();Numbers[h][l 1] Numbers[h][l] Numbers[h][l 1];Numbers[h][l] 0;Counter;score Numbers[h][l 1];if (Numbers[h][l 1] 2048) {isWin true;}}for (int h 3; h 0; h--)for (int l 3; l 0; l--)if (Numbers[h][l] ! 0) {int temp Numbers[h][l];int pre l 1;while (pre 3 Numbers[h][pre] 0) {Numbers[h][pre] temp;Numbers[h][pre - 1] 0;pre;Counter;}}break;case 38://向上移动if (isSound true)new PlaySound(move.wav).start();for (int l 0; l 4; l)for (int h 0; h 4; h)if (Numbers[h][l] ! 0) {int temp Numbers[h][l];int pre h - 1;while (pre 0 Numbers[pre][l] 0) {Numbers[pre][l] temp;Numbers[pre 1][l] 0;pre--;Counter;}}for (int l 0; l 4; l)for (int h 0; h 4; h)if (h 1 4 (Numbers[h][l] Numbers[h 1][l]) (Numbers[h][l] ! 0 || Numbers[h 1][l] ! 0)) {if (isSound true)new PlaySound(merge.wav).start();Numbers[h][l] Numbers[h][l] Numbers[h 1][l];Numbers[h 1][l] 0;Counter;score Numbers[h][l];if (Numbers[h][l] 2048) {isWin true;}}for (int l 0; l 4; l)for (int h 0; h 4; h)if (Numbers[h][l] ! 0) {int temp Numbers[h][l];int pre h - 1;while (pre 0 Numbers[pre][l] 0) {Numbers[pre][l] temp;Numbers[pre 1][l] 0;pre--;Counter;}}break;case 40:// 向下移动if (isSound true)new PlaySound(move.wav).start();for (int l 3; l 0; l--)for (int h 3; h 0; h--)if (Numbers[h][l] ! 0) {int temp Numbers[h][l];int pre h 1;while (pre 3 Numbers[pre][l] 0) {Numbers[pre][l] temp;Numbers[pre - 1][l] 0;pre;Counter;}}for (int l 3; l 0; l--)for (int h 3; h 0; h--)if (h 1 4 (Numbers[h][l] Numbers[h 1][l]) (Numbers[h][l] ! 0 || Numbers[h 1][l] ! 0)) {if (isSound true)new PlaySound(merge.wav).start();Numbers[h 1][l] Numbers[h][l] Numbers[h 1][l];Numbers[h][l] 0;Counter;score Numbers[h 1][l];if (Numbers[h 1][l] 2048) {isWin true;}}for (int l 0; l 4; l)for (int h 0; h 4; h)if (Numbers[h][l] ! 0) {int temp Numbers[h][l];int pre h - 1;while (pre 0 Numbers[pre][l] 0) {Numbers[pre][l] temp;Numbers[pre 1][l] 0;pre--;Counter;}}break;case 40:// 向下移动if (isSound true)new PlaySound(move.wav).start();for (int l 3; l 0; l--)for (int h 3; h 0; h--)if (Numbers[h][l] ! 0) {int temp Numbers[h][l];int pre h 1;while (pre 3 Numbers[pre][l] 0) {Numbers[pre][l] temp;Numbers[pre - 1][l] 0;pre;Counter;}}for (int l 3; l 0; l--)for (int h 3; h 0; h--)if (h 1 4 (Numbers[h][l] Numbers[h 1][l]) (Numbers[h][l] ! 0 || Numbers[h 1][l] ! 0)) {if (isSound true)new PlaySound(merge.wav).start();Numbers[h 1][l] Numbers[h][l] Numbers[h 1][l];Numbers[h][l] 0;Counter;score Numbers[h 1][l];if (Numbers[h 1][l] 2048) {isWin true;}}for (int l 3; l 0; l--)for (int h 3; h 0; h--)if (Numbers[h][l] ! 0) {int temp Numbers[h][l];int pre h 1;while (pre 3 Numbers[pre][l] 0) {Numbers[pre][l] temp;Numbers[pre - 1][l] 0;pre;Counter;}}break;default:break;}if(maxscorescore) {maxscorescore;Recorder.setMaxscore(maxscore);Recorder.keepRecording();}for (int i 0; i 3; i) {for (int j 0; j 3; j) {if (Numbers[i][j] Numbers[i][j 1] Numbers[i][j] ! 0) {NumNearCounter;}if (Numbers[i][j] Numbers[i 1][j] Numbers[i][j] ! 0) {NumNearCounter;}if (Numbers[3][j] Numbers[3][j 1] Numbers[3][j] ! 0) {NumNearCounter;}if (Numbers[i][3] Numbers[i 1][3] Numbers[i][3] ! 0) {NumNearCounter;}}}for (int i 0; i 4; i) {for (int j 0; j 4; j) {if (Numbers[i][j] ! 0) {NumCounter;}}}if (Counter 0) {lb.setText(分数 score);M.setText(最高分maxscore);int r1 rand.nextInt(4);int c1 rand.nextInt(4);while (Numbers[r1][c1] ! 0) {r1 rand.nextInt(4);c1 rand.nextInt(4);}int value1 rand.nextInt(2) * 2 2;Numbers[r1][c1] value1;}if (isWin true){UI.paint(UI.getGraphics());JOptionPane.showMessageDialog(UI, 恭喜你赢了!\n您的最终得分为 score);}if (NumCounter 16 NumNearCounter 0) {relive true;JOptionPane.showMessageDialog(UI, 没地方可以合并咯!! \n很遗憾您输了~_ \n说不定能扭转乾坤捏 (^_~));}UI.paint(UI.getGraphics());}}}3、PlaySound.javapackage shixun;import java.io.File;import java.io.IOException;import javax.sound.sampled.AudioFormat;import javax.sound.sampled.AudioInputStream;import javax.sound.sampled.AudioSystem;import javax.sound.sampled.DataLine;import javax.sound.sampled.SourceDataLine;//播放声音的线程public class PlaySound extends Thread {private String filename;public PlaySound(String wavfile) {filename res/ wavfile;}public void run() {File soundFile new File(filename);AudioInputStream audioInputStream null;try {audioInputStream AudioSystem.getAudioInputStream(soundFile);} catch (Exception e1) {e1.printStackTrace();return;}AudioFormat format audioInputStream.getFormat();SourceDataLine auline null;DataLine.Info info new DataLine.Info(SourceDataLine.class, format);try {auline (SourceDataLine) AudioSystem.getLine(info);auline.open(format);} catch (Exception e) {e.printStackTrace();return;}auline.start();int nBytesRead 0;// 这是缓冲byte[] abData new byte[512];try {while (nBytesRead ! -1) {nBytesRead audioInputStream.read(abData, 0, abData.length);if (nBytesRead 0)auline.write(abData, 0, nBytesRead);}} catch (IOException e) {e.printStackTrace();return;} finally {auline.drain();auline.close();}}}4、Recorder.javapackage shixun;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class Recorder {private static int maxscore_20480;public static int getMaxscore_2048() {// TODO Auto-generated method stubreturn maxscore_2048;}public static void setMaxscore(int maxscore_2048) {// TODO Auto-generated method stubRecorder.maxscore_2048maxscore_2048;}private static FileReader frnull;private static BufferedReader brnull;private static FileWriter fwnull;private static BufferedWriter bwnull;//从文件中读取记录public static void getRecording(){boolean flag false;//判断文件是否新建try {File fnew File(src/myRecording.txt);if(f.exists()){frnew FileReader(f);brnew BufferedReader(fr);String nbr.readLine();maxscore_2048Integer.parseInt(n);}else {flagf.createNewFile();}}catch(Exception e) {e.printStackTrace();}finally {try {if(!flag) {br.close();fr.close();}}catch(Exception e2) {e2.printStackTrace();}}}//保存最高分记录public static void keepRecording(){try {File fnew File(src/myRecording.txt);fwnew FileWriter(f);bwnew BufferedWriter(fw);bw.write(maxscore_2048\r\n);}catch(IOException e) {e.printStackTrace();}finally {try {bw.close();fw.close();}catch(IOException e) {e.printStackTrace();}}}}四.游戏截图更多有趣的经典小游戏实现专题分享给大家以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。
http://www.zqtcl.cn/news/197991/

相关文章:

  • 厦门网站建设开发公司企业网站设计源代码
  • 微网站服务器酒店手机网站首页设计
  • 网站交互做的比较好的怎样营销网站建设
  • 电子商务网站设计代码凡科做的网站能被收录吗
  • 设计网站教程自动点击器永久免费版
  • 深圳 网站建设设计如何用公众号做网站
  • 免费微信网站制作北风淘淘网站开发
  • 建筑模型设计网站建设网站设计 分辨率
  • 网站规划包括哪些内容西部建设网站
  • 网站html静态化网站整体色彩的建设
  • 长春比较有名的做网站建设宁波网站建设联系电话查询
  • 建网站中企动力推荐网络营销外包总代理
  • 网站怎么续费网站内链检测
  • 织梦网站地图样式中国品牌网站
  • 上海金山区建设局网站临淄信息港发布信息
  • 保定外贸网站建设学生网站建设首页
  • 商城网站备案要求wordpress插件 手机版
  • 北京市网站备案查询石家庄建设信息网必须交费吗
  • 北京优化网站方法四川省建设局网站
  • 怎么做网站能快速赚钱重庆快速建站
  • 河南专业网站建设公司首选培训心得简短200字
  • 销售网站开发业务高端建网站多少钱
  • 几个做ppt的网站知乎青岛高品质网站制作
  • 网站seo插件wordpress模板中文版
  • 夹江移动网站建设手机网站微信登陆
  • 浏阳做网站网易企业邮箱注册官网
  • 东莞网站建设是什么意思自己怎么做企业网站建设
  • 免费的网站申请泰州网站整站优化
  • 毕业设计做企业门户网站过期域名网站
  • 网站建设和风险分析简单网页制作代码模板