亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java編寫貪吃蛇小游戲

2019-11-26 15:14:27
字體:
來源:轉載
供稿:網友

廢話不多說,直接奉上代碼:

Frame.java

package snake; import java.awt.Graphics;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener; import javax.swing.JFrame; public class Frame extends JFrame implements KeyListener {   /**   *    */     Boolean isAlive;  Boolean isPause;  Panel panel;  Character direction;  private static final long serialVersionUID = 1L;   public Frame(){    // TODO Auto-generated constructor stub    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    setSize(300,300);    addKeyListener(this);    panel = new Panel();    add(panel);    setVisible(true);    isAlive = true;    isPause = false;    direction = new Character('d');     MenuBar menuBar = new MenuBar();    Menu menu = new Menu("menu");    MenuItem reset = new MenuItem("newgame");    MenuItem pause= new MenuItem("pause");         pause.addActionListener(new ActionListener(){       @Override      public void actionPerformed(ActionEvent e) {        // TODO Auto-generated method stub        if(!isPause) isPause= true;        else     isPause= false;       }           });          reset.addActionListener(new ActionListener(){       @Override      public void actionPerformed(ActionEvent e) {        // TODO Auto-generated method stub        reset();      }           });         menu.add(reset);    menu.add(pause);    menuBar.add(menu);    setMenuBar(menuBar);            }     public void reset(){    panel.reset();    isAlive = true;  }   @Override  public void keyTyped(KeyEvent e) {    // TODO Auto-generated method stub       }   @Override  public void keyPressed(KeyEvent e) {    // TODO Auto-generated method stub    if(e.getKeyCode()==KeyEvent.VK_UP)  direction = 'w';    if(e.getKeyCode()==KeyEvent.VK_DOWN) direction = 's';    if(e.getKeyCode()==KeyEvent.VK_LEFT) direction = 'a';    if(e.getKeyCode()==KeyEvent.VK_RIGHT) direction = 'd';  }   @Override  public void keyReleased(KeyEvent e) {    // TODO Auto-generated method stub       }     public void paint(Graphics g){    panel.repaint();  } }

Launch.java

package snake; import java.util.Timer;import java.util.TimerTask; public class Launch extends TimerTask {   Frame frame = new Frame();  public Launch() {    // TODO Auto-generated constructor stub       }     boolean crashWall(){    SnakeBody sb = frame.panel.snake.getFirst();    if((sb.x<0)||(sb.y<0)||(sb.x>=Panel.LINE)||(sb.y>=Panel.LINE))      return true;    else      return false;  }  void initial(){    frame.panel.snake.add(newBody());    frame.panel.food = newBody();   }  @Override  public void run() {    // TODO Auto-generated method stub    if(frame.panel.snake.isEmpty())      initial();    if(frame.isAlive)      if(!frame.isPause){        if(goStraight())           frame.isAlive = false;        frame.repaint();      }    if(crashWall()) frame.isAlive = false;  }     SnakeBody newBody(){    SnakeBody sb = new SnakeBody();     boolean overlap = true;    while(overlap){      overlap =false;      sb.x = (int) (Math.random()*(Panel.LINE-2)+1);      sb.y = (int) (Math.random()*(Panel.LINE-2)+1);      if(!frame.panel.snake.isEmpty())      for(SnakeBody s : frame.panel.snake)        if(sb.equals(s))          overlap =true;    }         return sb;  }      void eat(SnakeBody sb){    frame.panel.snake.addFirst(sb);  }  boolean goStraight(){         boolean result = false;         SnakeBody sb =new SnakeBody(frame.panel.snake.getFirst());    frame.panel.snake.removeLast();    if(frame.direction=='w')      sb.turnUp();    if(frame.direction=='s')      sb.turnDown();    if(frame.direction=='a')      sb.turnLeft();    if(frame.direction=='d')      sb.turnRight();         for(SnakeBody s : frame.panel.snake){      if(sb.equals(s)) result = true;    }         frame.panel.snake.addFirst(sb);    if(sb.equals(frame.panel.food)){      if(frame.direction=='w')        frame.panel.food.turnUp();      if(frame.direction=='s')        frame.panel.food.turnDown();      if(frame.direction=='a')        frame.panel.food.turnLeft();      if(frame.direction=='d')        frame.panel.food.turnRight();      eat(frame.panel.food);      frame.panel.food = newBody();    }         return result;  }         public static void main(String[] args){    // TODO Auto-generated method stub     Launch timertask = new Launch();     Timer timer = new Timer();          timer.schedule(timertask,0,500);  } }

Panel.java

package snake; import java.awt.Color;import java.awt.Graphics;import java.util.LinkedList; import javax.swing.JPanel;  public class Panel extends JPanel {     /**   *    */  private static final long serialVersionUID = 1L;  public LinkedList<SnakeBody> snake = new LinkedList<SnakeBody>();  static final int LINE = 10;  SnakeBody food = new SnakeBody(-99,-99);      public Panel() {    // TODO Auto-generated constructor stub  }     public void reset(){    snake.clear();    }     public void paint(Graphics g){    g.setColor(Color.white);    g.fillRect(0, 0, getWidth(), getHeight());       for(SnakeBody sb : snake){      g.setColor(Color.black);      g.drawRect(sb.x*getWidth()/LINE,sb.y*getHeight()/LINE,getWidth()/LINE,getHeight()/LINE);      g.setColor(Color.orange);      g.fillRect(sb.x*getWidth()/LINE,sb.y*getHeight()/LINE,getWidth()/LINE,getHeight()/LINE);    }    g.setColor(Color.red);    g.fillRect(food.x*getWidth()/LINE,food.y*getHeight()/LINE,getWidth()/LINE,getHeight()/LINE);       }}

SnakeBody.java

package snake;  class SnakeBody {     int x;  int y;     public SnakeBody() {    // TODO Auto-generated constructor stub    x = 0;    y = 0;  }     public SnakeBody(int a,int b){    x = a;    y = b;  }  public SnakeBody(SnakeBody sb){    this(sb.x,sb.y);  }     public void turnUp(){    y--;  }  public void turnDown(){    y++;  }  public void turnLeft(){    x--;  }  public void turnRight(){    x++;  }     boolean equals(SnakeBody s){    if((x==s.x)&&(y==s.y)) return true;    else          return false;  } }

以上所述就是本文給大家分享的貪吃蛇的全部代碼了,希望能夠對大家熟練掌握java有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女av在线免费观看| 亚洲欧美国内爽妇网| 欧美精品一区二区免费| 国产91精品高潮白浆喷水| 国产精品999| 欧美肥臀大乳一区二区免费视频| 成人久久一区二区三区| 欧美高清视频在线| 97在线视频免费| 国产在线观看91精品一区| 亚洲精品720p| 国外成人在线直播| 亚洲国产精品va在线观看黑人| 日本道色综合久久影院| 91精品视频在线| 伊人伊成久久人综合网小说| 亚洲欧美日韩精品久久亚洲区| 欧美午夜精品久久久久久人妖| 日韩电影中文字幕在线| 欧美一级片免费在线| 久久久久久有精品国产| 亚洲国产第一页| 亲爱的老师9免费观看全集电视剧| 国产成人中文字幕| 亚洲欧美精品中文字幕在线| 国产区亚洲区欧美区| 日本成人精品在线| 精品国偷自产在线视频99| 亚洲精品视频免费在线观看| 国产精品日韩在线观看| 欧美日韩一区二区三区在线免费观看| 亚洲国产欧美自拍| 欧美成人免费一级人片100| 久久99精品久久久久久噜噜| 精品动漫一区二区| 日韩精品免费视频| 69视频在线免费观看| 日韩av综合中文字幕| 国产suv精品一区二区三区88区| 精品国产91久久久久久| 久久亚洲欧美日韩精品专区| 亚洲欧美综合精品久久成人| 91tv亚洲精品香蕉国产一区7ujn| 久久久国产精彩视频美女艺术照福利| 国产午夜精品全部视频在线播放| 日韩在线一区二区三区免费视频| 亚洲性夜色噜噜噜7777| 久久精视频免费在线久久完整在线看| 人体精品一二三区| 国产亚洲欧美aaaa| 亚洲综合国产精品| 亚洲天堂精品在线| 欧美视频免费在线| 日韩精品中文字幕久久臀| 91国内产香蕉| 日韩激情av在线播放| 国产一区二区三区毛片| 久久韩国免费视频| 国产精品va在线播放我和闺蜜| 91爱视频在线| 成人综合网网址| 久久91亚洲精品中文字幕奶水| 国产经典一区二区| 久久久噜噜噜久久久| 国产精品日韩欧美大师| 91精品视频观看| 国产精品免费久久久久影院| 色www亚洲国产张柏芝| 亚洲最大的网站| 在线视频欧美日韩| 亚洲一区二区福利| 日韩精品欧美激情| 国产精品国产自产拍高清av水多| 欧美日韩黄色大片| 岛国av一区二区在线在线观看| 日韩欧美在线视频观看| 不卡中文字幕av| 激情av一区二区| 日本电影亚洲天堂| 国产视频久久久| 青草青草久热精品视频在线观看| 91精品国产色综合久久不卡98| 欧美怡红院视频一区二区三区| 久久影院在线观看| 欧美极品少妇与黑人| 66m—66摸成人免费视频| 久久99亚洲热视| 久久人体大胆视频| 欧美性猛交xxxx乱大交蜜桃| 欧美日本高清一区| 欧美亚洲视频在线观看| 日韩免费av片在线观看| 日韩中文在线中文网三级| 日本韩国欧美精品大片卡二| 欧美精品在线观看| 欧美性视频精品| 2018日韩中文字幕| 97人洗澡人人免费公开视频碰碰碰| 国产精品盗摄久久久| 日韩av网址在线| 久久精品国产69国产精品亚洲| 国产日韩综合一区二区性色av| 97国产suv精品一区二区62| 欧美电影在线播放| 日韩av电影中文字幕| 欧美黄色性视频| 亚洲电影第1页| 亚洲欧美精品伊人久久| 国产日产久久高清欧美一区| 国产精品久久久久久久久久久新郎| 成人午夜一级二级三级| 欧美视频二区36p| 亚洲无线码在线一区观看| 自拍偷拍亚洲在线| 久久免费福利视频| 91po在线观看91精品国产性色| 日韩一区二区久久久| 中文字幕欧美日韩精品| 日本高清不卡的在线| 欧美丰满少妇xxxxx| 亚洲国产精品va| 日韩在线观看免费网站| 欧美成在线视频| 国产精品久久久久久久app| 久久精品国产欧美激情| 亚洲激情视频在线播放| 欧美大片在线看免费观看| 国产一区私人高清影院| 亚洲经典中文字幕| 亚洲一区二区福利| 夜夜嗨av色一区二区不卡| 日韩高清人体午夜| 一区二区三区四区在线观看视频| 黑人极品videos精品欧美裸| 欧美激情综合色综合啪啪五月| 九九热在线精品视频| 久久久久这里只有精品| 日韩av影视综合网| 亚洲深夜福利网站| 国产伊人精品在线| 精品国产一区二区在线| 国产精品爱久久久久久久| 久久久女女女女999久久| 亚洲国产精品成人va在线观看| 欧美亚洲成人xxx| 亚洲欧美国产一本综合首页| 97视频免费看| 九九久久久久久久久激情| 欧美日韩色婷婷| 亚洲一级黄色av| 国内精品一区二区三区四区| 精品一区二区亚洲| 久色乳综合思思在线视频| 久久久精品久久久| 色av吧综合网| 91精品国产高清久久久久久91| 久久久极品av| 日本韩国欧美精品大片卡二| 午夜精品一区二区三区在线播放| 久久久国产精品x99av| 日本成人激情视频| 国产精品999999| 不卡av在线网站| 亚洲精品乱码久久久久久金桔影视|