亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mainframe.java

?? Java編寫的小游戲
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package snake;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;

/**
 * <p>Title: 貪食蛇游戲</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: </p>
 * @author zsb
 * @version 1.0
 */

public class MainFrame extends JFrame {
  private JPanel contentPane;//窗體內(nèi)容網(wǎng)格
  private JToolBar jToolBar1 = new JToolBar();//工具欄
  private JButton jButton1 = new JButton();//游戲開始按鈕
  private JButton jButton2 = new JButton();//游戲暫停按鈕
  private JButton jButton3 = new JButton();//游戲退出按鈕
  private JButton jButton4 = new JButton();//幫助按鈕
  private JPanel jPanel1 = new JPanel();//游戲主體面板容器
  private JPanel jPanel_PlayArea = new JPanel();//游戲區(qū)面板容器

  private XYLayout xYLayout1 = new XYLayout();//容器布局管理器
  private XYLayout xYLayout2 = new XYLayout();
  private XYLayout xYLayout3 = new XYLayout();
  private static final int UP = 1, LEFT = 2, DOWN = 3, RIGHT = 4;//貪食蛇運(yùn)動方向
  private static final int BEGINNER = 1, MIDDLE = 2, EXPERT = 3;//游戲級別常量
  private static final int ROWS = 30;//游戲區(qū)行數(shù)
  private static final int COLS = 50;//游戲區(qū)列數(shù)
  private boolean isPause = false;//游戲暫停標(biāo)志
  private boolean isEnd;//游戲結(jié)束標(biāo)志
  private SnakeBody snake ;//貪食蛇
  private int score = 0;//當(dāng)前得分
  private int level = BEGINNER;//當(dāng)前游戲級別
  SnakeThread thread = new SnakeThread();//游戲主線程
  private GridLayout gridLayout1 = new GridLayout(ROWS, COLS, 0, 0);//游戲區(qū)布局
  private JButton[][] playBlocks;//游戲區(qū)的所有方塊

  JPanel jPanel2 = new JPanel();
  JLabel jLabel1 = new JLabel();
  JLabel jLabel2 = new JLabel();
  JLabel jLabel3 = new JLabel();
  JLabel jLabel4 = new JLabel();
  JLabel jLabel5 = new JLabel();
  JLabel jLabel6 = new JLabel();
  JLabel jLabel7 = new JLabel();
  ButtonGroup buttonGroup1 = new ButtonGroup();
  JRadioButton jRadioButton1 = new JRadioButton();
  JRadioButton jRadioButton2 = new JRadioButton();
  JRadioButton jRadioButton3 = new JRadioButton();


  //Construct the frame
  public MainFrame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  //Component initialization
  private void jbInit() throws Exception {
    //setIconImage(Toolkit.getDefaultToolkit().createImage(MainFrame.class.getResource("[Your Icon]")));
    contentPane = (JPanel)this.getContentPane();
    contentPane.setLayout(xYLayout2);
    this.setResizable(false);
    this.setSize(new Dimension(512, 414));
    this.setTitle("貪食蛇");
    this.addKeyListener(new MainFrame_this_keyAdapter(this));
    jButton1.setFont(new java.awt.Font("DialogInput", 0, 12));
    jButton1.setMaximumSize(new Dimension(79, 39));
    jButton1.setMinimumSize(new Dimension(79, 39));
    jButton1.setPreferredSize(new Dimension(79, 39));
    jButton1.setFocusPainted(false);
    jButton1.setText("開始");
    jButton1.addActionListener(new MainFrame_jButton1_actionAdapter(this));
    jButton1.addKeyListener(new MainFrame_this_keyAdapter(this));
    jButton2.setText("暫停");
    jButton2.addActionListener(new MainFrame_jButton2_actionAdapter(this));
    jButton2.setPreferredSize(new Dimension(79, 39));
    jButton2.setFocusPainted(false);
    jButton2.setMinimumSize(new Dimension(79, 39));
    jButton2.setMaximumSize(new Dimension(79, 39));
    jButton2.setFont(new java.awt.Font("DialogInput", 0, 12));
    jButton2.addKeyListener(new MainFrame_this_keyAdapter(this));
    jButton3.setText("退出");
    jButton3.addActionListener(new MainFrame_jButton3_actionAdapter(this));
    jButton3.setPreferredSize(new Dimension(79, 39));
    jButton3.setFocusPainted(false);
    jButton3.setMinimumSize(new Dimension(79, 39));
    jButton3.setMaximumSize(new Dimension(79, 39));
    jButton3.setFont(new java.awt.Font("DialogInput", 0, 12));
    jButton3.addKeyListener(new MainFrame_this_keyAdapter(this));
    jButton4.setText("幫助");
    jButton4.addActionListener(new MainFrame_jButton4_actionAdapter(this));
    jButton4.setPreferredSize(new Dimension(79, 39));
    jButton4.setFocusPainted(false);
    jButton4.setMinimumSize(new Dimension(79, 39));
    jButton4.setMaximumSize(new Dimension(79, 39));
    jButton4.setFont(new java.awt.Font("DialogInput", 0, 12));
    jButton4.addKeyListener(new MainFrame_this_keyAdapter(this));
    jPanel1.setLayout(xYLayout1);
    jPanel1.addKeyListener(new MainFrame_this_keyAdapter(this));
    jPanel_PlayArea.setLayout(gridLayout1);
    jPanel_PlayArea.setBorder(BorderFactory.createEtchedBorder());
    jPanel_PlayArea.addKeyListener(new MainFrame_this_keyAdapter(this));
    jLabel1.setFont(new java.awt.Font("DialogInput", 0, 12));
    jLabel1.setText("得分:");
    jPanel2.setLayout(xYLayout3);
    jLabel2.setFont(new java.awt.Font("DialogInput", 0, 12));
    jLabel2.setToolTipText("");
    jLabel2.setText("0");
    jLabel3.setText("穿身:");
    jLabel3.setFont(new java.awt.Font("DialogInput", 0, 12));
    jLabel4.setFont(new java.awt.Font("DialogInput", 0, 12));
    jLabel4.setText("0");
    jLabel5.setText("穿墻:");
    jLabel5.setFont(new java.awt.Font("DialogInput", 0, 12));
    jLabel5.setToolTipText("");
    jLabel6.setText("0");
    jLabel6.setFont(new java.awt.Font("DialogInput", 0, 12));
    jLabel6.setToolTipText("");
    jRadioButton1.setFont(new java.awt.Font("DialogInput", 0, 12));
    jRadioButton1.setText("初級");
    jRadioButton1.addActionListener(new MainFrame_jRadioButton1_actionAdapter(this));
    jRadioButton1.addKeyListener(new MainFrame_this_keyAdapter(this));
    jRadioButton2.setText("中級");
    jRadioButton2.addActionListener(new MainFrame_jRadioButton2_actionAdapter(this));
    jRadioButton2.addKeyListener(new MainFrame_this_keyAdapter(this));
    jRadioButton2.setFont(new java.awt.Font("DialogInput", 0, 12));
    jRadioButton3.setText("高級");
    jRadioButton3.addActionListener(new MainFrame_jRadioButton3_actionAdapter(this));
    jRadioButton3.setFont(new java.awt.Font("DialogInput", 0, 12));
    jRadioButton3.addKeyListener(new MainFrame_this_keyAdapter(this));
    buttonGroup1.add(jRadioButton1);
    buttonGroup1.add(jRadioButton2);
    buttonGroup1.add(jRadioButton3);
    jRadioButton1.setSelected(true);
    jLabel7.setFont(new java.awt.Font("DialogInput", 0, 12));
    jLabel7.setText("等級:");
    contentPane.add(jToolBar1,  new XYConstraints(0, 0, 512, -1));
    jToolBar1.add(jButton1, null);
    jToolBar1.add(jButton2, null);
    jToolBar1.add(jButton3, null);
    jToolBar1.add(jButton4, null);
    jToolBar1.addKeyListener(new MainFrame_this_keyAdapter(this));
    contentPane.add(jPanel1,  new XYConstraints(0, 43, 512, 371));
    jPanel1.add(jPanel_PlayArea, new XYConstraints(0, 33, 524, 314));
    jPanel1.add(jPanel2,                  new XYConstraints(0, 0, 498, 30));
    jPanel2.add(jRadioButton1, new XYConstraints(331, 1, -1, -1));
    jPanel2.add(jRadioButton3,    new XYConstraints(443, 1, -1, -1));
    jPanel2.add(jRadioButton2, new XYConstraints(390, 1, -1, -1));
    jPanel2.add(jLabel6, new XYConstraints(245, 6, 30, -1));
    jPanel2.add(jLabel7, new XYConstraints(287, 5, 47, -1));
    jPanel2.add(jLabel5, new XYConstraints(197, 6, 47, -1));
    jPanel2.add(jLabel4, new XYConstraints(166, 7, 26, -1));
    jPanel2.add(jLabel3,  new XYConstraints(120, 6, 38, -1));
    jPanel2.add(jLabel1, new XYConstraints(23, 6, 39, -1));
    jPanel2.add(jLabel2, new XYConstraints(62, 6, 54, -1));
    //創(chuàng)建并初始化游戲區(qū)方塊
    playBlocks = new JButton[ROWS][COLS];
    for (int i = 0; i < ROWS; i++) {
      for (int j = 0; j < COLS; j++) {
        playBlocks[i][j] = new JButton();
        playBlocks[i][j].setBackground(Color.lightGray);
        playBlocks[i][j].setVisible(false);
        jPanel_PlayArea.add(playBlocks[i][j]);
      }
    }

  }

  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }

  public void start() {
    //初始化游戲參數(shù)
    score = 0;
    isPause = false;
    isEnd = false; //
    jButton2.setText("暫停");
    //初始化游戲區(qū)
    for (int i = 0; i < ROWS; i++) {
     for (int j = 0; j < COLS; j++) {
       playBlocks[i][j].setBackground(Color.lightGray);
       playBlocks[i][j].setVisible(false);
     }
    }
    //創(chuàng)建蛇身
    snake = new SnakeBody();
    //在游戲區(qū)內(nèi)隨機(jī)放置食物
    int x = (int) (Math.random() * ROWS);
    int y = (int) (Math.random() * COLS);
    while (playBlocks[x][y].isVisible()) {
      x = (int) (Math.random() * ROWS);
      y = (int) (Math.random() * COLS);
    }
    playBlocks[x][y].setBackground(Color.yellow);
    playBlocks[x][y].setVisible(true);
    //初始化狀態(tài)提示區(qū)
    jLabel2.setText(Integer.toString(score));
    jLabel4.setText(Integer.toString(snake.throughbody));
    jLabel2.setText(Integer.toString(snake.throughwall));

    try {
      //啟動游戲
      thread.start();
    }
    catch (IllegalThreadStateException illegalThreadStateException) {}

  }

  class SnakeBody {
    // private int snake[][] = new int [MainFrame.ROWS][MainFrame.COLS];										//0位背景,1為蛇身,2為食物,3為穿身,4為穿墻,5為墻壁
    public int length = 3;
    public int rows[];
    public int columes[];
    public int direction = RIGHT;
    public int lastdirection = RIGHT;
    public long speed = 300;
    public int throughbody = 0;
    public int throughwall = 0;
    public SnakeBody() {
      length = 3;
      throughbody = 1;
      throughwall = 1;
      direction = RIGHT;
      lastdirection = RIGHT;
      switch(level){
        case BEGINNER:speed = 300;break;
        case MIDDLE:speed = 200;break;
        case EXPERT:speed = 100;break;
        default:speed = 200;
      }
      throughbody = 0;
      throughwall = 0;
      rows = new int[ROWS];
      columes = new int[COLS];
      for (int i = 0; i <= length; i++) {
        rows[i] = 1;
        columes[i] = length - i;
      }

    }

    public void move() {
      //去掉蛇尾
      playBlocks[rows[length]][columes[length]].setVisible(false);
      playBlocks[rows[length]][columes[length]].setBackground(Color.lightGray);
      //顯示除蛇頭外蛇身
      for (int i = 0; i < length; i++) {
        playBlocks[rows[i]][columes[i]].setBackground(Color.green);
        playBlocks[rows[i]][columes[i]].setVisible(true);
      }
      //移動除蛇頭外蛇身

      for (int i = length; i > 0; i--) {
        rows[i] = rows[i - 1];
        columes[i] = columes[i - 1];
      }
      //根據(jù)蛇身運(yùn)動方向,決定蛇頭位置
      switch (direction) {
        case UP: {
          if (lastdirection == DOWN)
            rows[0] += 1;
          else {
            rows[0] -= 1;
            lastdirection = UP;
          }
          break;
        }
        case LEFT: {
          if (lastdirection == RIGHT)
            columes[0] += 1;
          else {
            columes[0] -= 1;
            lastdirection = LEFT;
          }
          break;
        }
        case DOWN: {
          if (lastdirection == UP)
            rows[0] -= 1;
          else {
            rows[0] += 1;
            lastdirection = DOWN;
          }
          break;
        }
        case RIGHT: {
          if (lastdirection == LEFT)
            columes[0] -= 1;
          else {
            columes[0] += 1;
            lastdirection = RIGHT;
          }
          break;
        }
      }
      //處理有穿墻寶物時的穿墻操作
      if (throughwall != 0) {

        if (rows[0] >= ROWS) {
          throughwall--;
          jLabel6.setText(Integer.toString(throughwall));
          rows[0] = ROWS - rows[0];

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲欧美色| 久久精品日产第一区二区三区高清版 | 欧美一级搡bbbb搡bbbb| 国产成人综合亚洲网站| 午夜视频一区二区| 亚洲日本免费电影| 久久久777精品电影网影网| 欧美精三区欧美精三区| jlzzjlzz国产精品久久| 精品一区二区久久| 亚洲国产成人av网| 最近日韩中文字幕| 国产区在线观看成人精品 | 日韩一区二区高清| 欧美系列在线观看| 成人h动漫精品一区二区| 麻豆成人av在线| 青青草伊人久久| 亚洲国产日韩a在线播放性色| 中文一区二区在线观看| 久久婷婷成人综合色| 欧美一级欧美一级在线播放| 欧美写真视频网站| 日本高清成人免费播放| 99麻豆久久久国产精品免费优播| 国产一区二区精品久久91| 日本亚洲视频在线| 日韩精品成人一区二区三区 | 精品亚洲成a人| 日本少妇一区二区| 日韩国产精品久久久| 婷婷中文字幕综合| 日韩主播视频在线| 视频一区中文字幕| 偷拍亚洲欧洲综合| 日日摸夜夜添夜夜添国产精品 | 成人av先锋影音| 成人a级免费电影| 成人av在线播放网站| 波多野结衣精品在线| 高清不卡在线观看| 成人黄色在线看| 北条麻妃国产九九精品视频| 96av麻豆蜜桃一区二区| 91免费国产在线观看| 一本一道久久a久久精品综合蜜臀| 色哟哟国产精品| 欧美日韩综合在线| 欧美日本在线观看| 日韩免费看网站| 久久久国际精品| 国产精品嫩草影院av蜜臀| 日韩一区日韩二区| 亚洲资源中文字幕| 蜜桃在线一区二区三区| 精品一区二区av| 成人激情午夜影院| 欧洲一区在线电影| 日韩欧美综合在线| 国产亚洲欧美在线| 一区二区三区在线视频免费| 亚洲成a天堂v人片| 久久99精品一区二区三区| 国产91精品露脸国语对白| 色999日韩国产欧美一区二区| 欧美日韩一级片网站| 精品国产99国产精品| 久久伊99综合婷婷久久伊| 国产精品污网站| 一区二区三区在线播放| 日韩国产欧美三级| 国产99久久久久久免费看农村| 91社区在线播放| 日韩一卡二卡三卡国产欧美| 国产日韩视频一区二区三区| 亚洲综合在线免费观看| 麻豆精品视频在线观看免费| proumb性欧美在线观看| 制服丝袜亚洲网站| 中日韩免费视频中文字幕| 婷婷国产在线综合| 国产福利一区二区三区视频在线| 日本高清视频一区二区| 久久欧美一区二区| 一区二区成人在线观看| 精品一区二区免费视频| 日本电影亚洲天堂一区| 久久久99精品免费观看不卡| 亚洲在线视频网站| 国产乱子伦视频一区二区三区 | 成人免费不卡视频| 欧美一区二区在线观看| 国产精品初高中害羞小美女文| 日本亚洲天堂网| 一本色道亚洲精品aⅴ| 久久综合狠狠综合久久综合88| 亚洲精品免费看| 国产精品原创巨作av| 欧美肥妇bbw| 亚洲精品国产成人久久av盗摄| 国产一区欧美二区| 欧美日韩aaaaa| 亚洲精品欧美在线| 成人18视频在线播放| 精品久久一二三区| 视频一区视频二区在线观看| 色偷偷成人一区二区三区91| 国产区在线观看成人精品| 久久草av在线| 日韩一区二区三区免费看| 亚洲精品高清在线| 99久久精品国产一区二区三区| 欧美不卡视频一区| 日韩精品一级中文字幕精品视频免费观看 | 久久综合久久鬼色中文字| 日韩福利视频网| 欧美日韩一级黄| 亚洲一区二区三区四区在线观看| 成人激情综合网站| 精品国产电影一区二区 | 91视视频在线观看入口直接观看www | 五月天视频一区| 欧洲精品视频在线观看| 国产精品久久毛片| 国产不卡视频一区| 久久精品一区二区三区不卡牛牛| 日韩黄色在线观看| 欧美精选在线播放| 偷拍日韩校园综合在线| 欧美丰满高潮xxxx喷水动漫| 亚洲午夜电影网| 欧美视频在线一区| 亚洲五码中文字幕| 欧美精品久久天天躁| 香蕉影视欧美成人| 欧美丰满美乳xxx高潮www| 偷窥少妇高潮呻吟av久久免费| 欧美精品一级二级| 日韩激情一二三区| 欧美成人精品3d动漫h| 久久99精品久久久久久久久久久久| 91精品欧美综合在线观看最新| 日本不卡一二三区黄网| 欧美成人伊人久久综合网| 韩国欧美国产一区| 国产校园另类小说区| 成人国产一区二区三区精品| 综合欧美一区二区三区| 91免费版在线| 亚洲第一成人在线| 日韩欧美一区二区久久婷婷| 韩国欧美国产1区| 国产精品久久久久婷婷二区次| 色综合久久综合网97色综合| 亚洲电影中文字幕在线观看| 欧美一区二区三区四区视频 | 91激情在线视频| 亚洲高清中文字幕| 欧美成人精品3d动漫h| 国产成人精品综合在线观看 | 天天综合色天天综合色h| 欧美一区二区三区在线电影| 国产美女视频91| 亚洲视频在线观看三级| 欧美日韩1区2区| 日韩不卡一区二区三区| 久久综合久久综合亚洲| 97se亚洲国产综合自在线观| 亚洲韩国一区二区三区| 日韩久久精品一区| gogogo免费视频观看亚洲一| 亚洲国产精品久久人人爱| 精品美女在线观看| 成人午夜伦理影院| 亚洲国产aⅴ天堂久久| 国产日韩亚洲欧美综合| 欧美日韩免费一区二区三区| 美女精品一区二区| 亚洲品质自拍视频| 日韩美女在线视频| 一本到不卡精品视频在线观看| 青草av.久久免费一区| 国产精品久久久久久久浪潮网站| 欧美日韩在线观看一区二区| 国产在线不卡一卡二卡三卡四卡| 亚洲另类在线一区| 2024国产精品视频| 欧美色精品在线视频| 成人免费视频视频| 日韩国产精品久久| 亚洲男人天堂av网| 久久久久久久久97黄色工厂| 欧美日韩国产另类一区| 国产成人鲁色资源国产91色综 | 欧美一区二区视频观看视频| 91网站视频在线观看| 激情久久久久久久久久久久久久久久| 亚洲精品一二三四区| 久久综合色一综合色88| 欧美酷刑日本凌虐凌虐|