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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? snake.java

?? 實現了一個貪吃蛇的基本功能
?? JAVA
字號:
package calculator;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import static java.lang.Math.*;//靜態導入

public class Snake extends JPanel{
private String dir;//要走的方向


private int blockWidth=10;//塊大小
private int blockSpace=2;//塊之間的間隔
private long sleepTime;//重畫的進間間隔
private MySnake my;
private int total;//代表蛇的長度
private Rectangle food;//代表蛇的食物
private volatile boolean go;
private int round;//表示第幾關
public Snake(JFrame jf){
  initOther();
  //為頂級窗口類JFrame添加事件處理函數
  jf.addKeyListener(new KeyAdapter(){
   public void keyReleased(KeyEvent ke){
    int code=ke.getKeyCode();
    if(code==KeyEvent.VK_RIGHT){
     if(dir!="WEST")
      dir="EAST";
    }
     
    else if(code==KeyEvent.VK_LEFT){
     if(dir!="EAST")
      dir="WEST";
    }
     
    else if(code==KeyEvent.VK_UP){
     if(dir!="SOUTH")
      dir="NORTH";
    }
     
    else if(code==KeyEvent.VK_DOWN){
     if(dir!="NORTH")
      dir="SOUTH";
    }
    else if(code==KeyEvent.VK_ENTER){
     if(!go)
     initOther();
    }
   }
  });
  this.setBounds(300,300,400,400);
  this.setVisible(true);
}
//隨機生成一個食物的位置
private void makeFood(){
  int x=40+(int)(random()*30)*12;
  int y=10+(int)(random()*30)*12;
  food=new Rectangle(x,y,10,10);
}
//做一些初始化的工作
private void initOther(){
  dir="EAST";
  sleepTime=500;
  my=new MySnake();
  makeFood();
  total=3;
  round=1;
  new Thread(new Runnable(){
   public void run(){
    go=true;
    while(go){
     try{
      Thread.sleep(sleepTime);
      repaint();
     }
     catch(Exception exe){
      exe.printStackTrace();
     }
    }
   }
  }).start();
}
//處理多少關的函數
private void handleRound(){
  if(total==6){
   round=2;
   sleepTime=300;
  }
  else if(total==10){
   round=3;
   sleepTime=200;
  }
  else if(total==15){
   round=4;
   sleepTime=100;
  }
  else if(total==18){
   round=5;
   sleepTime=50;
  }
  else if(total==20){
   round=6;
   sleepTime=20;
  }
  else if(total>21){
   round=7;
   sleepTime=15;
  }
}
//把自己的組件全部畫出來
public void paintComponent(Graphics g){
   g.setColor(Color.PINK);
   g.fillRect(0,0,this.getWidth(),this.getHeight());
   g.setColor(Color.BLACK);
   g.drawRect(40,10,358,360);
   if(go){
    my.move();
    my.draw(g);
    g.setFont(new Font("黑體",Font.BOLD,20));
    g.drawString("您的得分:"+(total*10)+"      第"+round+"關",40,400);
   }
   else{
    g.setFont(new Font("黑體",Font.BOLD,20));
    g.drawString("游戲結束,按回車(ENTER)鍵重玩!",40,440);
   }
   g.setColor(Color.RED);
   g.fillRect(food.x,food.y,food.width,food.height);
}
private class MySnake{
  private ArrayList<Rectangle> list;//改為private ArrayList list;后面的都去掉//<Rectangle>
  public MySnake(){
   list=new ArrayList<Rectangle>();
   list.add(new Rectangle(160+24,130,10,10));
   list.add(new Rectangle(160+12,130,10,10));
   list.add(new Rectangle(160,130,10,10));
  }
  //蛇移動的方法
  public void move(){
   if(isDead()){
    go=false;
    return;
   }
   if(dir=="EAST"){
    Rectangle rec=list.get(0);//找到蛇頭
    Rectangle rec1=new Rectangle(rec.x+(blockWidth+blockSpace),rec.y,rec.width,rec.height);
    list.add(0,rec1);
   }
   else if(dir=="WEST"){
    Rectangle rec=list.get(0);
    Rectangle rec1=new Rectangle(rec.x-(blockWidth+blockSpace),rec.y,rec.width,rec.height);
    list.add(0,rec1);
   }
   else if(dir=="NORTH"){
    Rectangle rec=list.get(0);
    Rectangle rec1=new Rectangle(rec.x,rec.y-(blockWidth+blockSpace),rec.width,rec.height);
    list.add(0,rec1);
   }
   else if(dir=="SOUTH"){
    Rectangle rec=list.get(0);
    Rectangle rec1=new Rectangle(rec.x,rec.y+(blockWidth+blockSpace),rec.width,rec.height);
    list.add(0,rec1);
   }
   if(isEat()){
    handleRound();
    makeFood();
   }
   else{
    list.remove(list.size()-1);
   }
   
  }
  //判斷是否吃到了食物
  private boolean isEat(){
   if(list.get(0).contains(food)){
    total++;
    return true;
   }
   else 
    return false;
  }
  //判斷是否死了,如果碰壁或者自己吃到自己都算死了
  private boolean isDead(){
   Rectangle temp=list.get(0);
   if(dir=="EAST"){
    if(temp.x==388)
     return true;
    else{
     Rectangle comp=new Rectangle(temp.x+12,temp.y,10,10);
     for(Rectangle rec:list){
      if(rec.contains(comp))
       return true;
     }
    }
     return false;
   }
   else if(dir=="WEST"){
    if(temp.x==40)
     return true;
    else {
     Rectangle comp=new Rectangle(temp.x-12,temp.y,10,10);
     for(Rectangle rec:list){
      if(rec.contains(comp))
       return true;
     }
    }
     return false;
   }
   else if(dir=="NORTH"){
    if(temp.y==10)
     return true;
    else{
     Rectangle comp=new Rectangle(temp.x,temp.y-12,10,10);
     for(Rectangle rec:list){
      if(rec.contains(comp))
       return true;
     }
    }
     return false;
   }
   else if(dir=="SOUTH"){
    if(temp.y==358)
     return true;
    else{
     Rectangle comp=new Rectangle(temp.x,temp.y+12,10,10);
     for(Rectangle rec:list){
      if(rec.contains(comp))
       return true;
     }
    }
     return false;
   }
   else{
    return false;
   }
  }
  //把自己畫出來
  public void draw(Graphics g){
   for(Rectangle rec:list){
    g.fillRect(rec.x,rec.y,rec.width,rec.height);
   }
  }
  
}
public static void main(String arsg[]){
  JFrame jf=new JFrame("貪吃蛇");
  Snake s=new Snake(jf);
  jf.getContentPane().add(s,BorderLayout.CENTER);
  jf.setBounds(300,300,500,500);
  jf.setVisible(true);
  jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
强制捆绑调教一区二区| 国产精品91一区二区| 久久精品人人做人人综合| 一本色道久久加勒比精品| 国内精品免费**视频| 亚洲综合成人在线视频| 国产日产欧美精品一区二区三区| 欧美日韩高清一区二区不卡| 成人午夜激情影院| 久久精品国产精品亚洲红杏| 亚洲一线二线三线久久久| 国产视频一区二区在线| 7777精品伊人久久久大香线蕉超级流畅 | 九九精品视频在线看| 亚洲精品五月天| 国产精品三级视频| 久久久不卡影院| 日韩你懂的在线观看| 欧美精品九九99久久| 欧美午夜片在线看| 在线视频欧美区| 91首页免费视频| 波多野结衣一区二区三区| 国产一区视频在线看| 蜜臀av一区二区| 日本美女一区二区三区视频| 一区二区久久久久久| 日韩理论在线观看| 国产精品短视频| 国产精品国产三级国产普通话99 | 国产亚洲欧美在线| 欧美大片拔萝卜| 日韩亚洲欧美在线观看| 欧美精品免费视频| 91麻豆精品国产自产在线观看一区| 欧美优质美女网站| 欧美三级日韩三级| 69久久夜色精品国产69蝌蚪网| 欧美喷水一区二区| 7777精品伊人久久久大香线蕉完整版 | 久久―日本道色综合久久| 91麻豆精品国产91| 91精品国产欧美日韩| 欧美一区二区三区免费观看视频| 欧美色图免费看| 91精品国产免费| 日韩一级大片在线观看| 91精品国产色综合久久不卡电影| 日韩午夜av一区| 欧美精品一区二区久久婷婷| 久久日一线二线三线suv| 欧美精品一区二区三区高清aⅴ| 久久蜜桃香蕉精品一区二区三区| 国产肉丝袜一区二区| 日韩一区日韩二区| 亚洲图片自拍偷拍| 久久精品国产99国产精品| 国产一区二区三区电影在线观看| 国产成人啪午夜精品网站男同| 成人h精品动漫一区二区三区| 色狠狠色狠狠综合| 日韩欧美中文字幕一区| 国产欧美一区二区三区在线老狼| 国产精品久99| 午夜久久久久久久久| 国内精品视频一区二区三区八戒| 白白色亚洲国产精品| 在线观看不卡一区| 日韩精品一区二区三区视频 | 免费久久99精品国产| 国产高清不卡一区二区| 91丝袜美女网| 欧美精品国产精品| 中文字幕+乱码+中文字幕一区| 亚洲精品精品亚洲| 久久国产剧场电影| 91视频免费播放| 欧美tickle裸体挠脚心vk| 一区精品在线播放| 奇米一区二区三区av| 不卡的电视剧免费网站有什么| 欧美三级欧美一级| 国产婷婷一区二区| 水野朝阳av一区二区三区| 成人午夜在线视频| 6080国产精品一区二区| 国产欧美日韩激情| 日韩av电影免费观看高清完整版在线观看| 国产乱色国产精品免费视频| 在线视频一区二区免费| 久久久久久久久久久久电影| 亚洲第一综合色| 成人sese在线| 2020日本不卡一区二区视频| 亚洲福利视频一区二区| 风间由美中文字幕在线看视频国产欧美| 欧美三区在线观看| 国产精品伦理一区二区| 另类成人小视频在线| 欧美午夜精品一区| 中文字幕制服丝袜一区二区三区| 日本大胆欧美人术艺术动态| 色视频一区二区| 国产日韩欧美精品在线| 久久成人羞羞网站| 欧美精品高清视频| 亚洲免费视频中文字幕| 丁香婷婷综合激情五月色| 日韩视频永久免费| 视频一区国产视频| 欧美午夜精品一区二区三区| 国产精品成人免费在线| 国产成人亚洲综合a∨婷婷图片| 欧美一级xxx| 日韩国产精品大片| 欧美日韩国产高清一区二区三区 | 一本到三区不卡视频| 国产农村妇女精品| 国产精品99久久久久久久vr| 欧美一区午夜精品| 五月婷婷综合在线| 欧美日韩不卡视频| 亚洲成va人在线观看| 欧美视频一区二区三区在线观看| 中文字幕在线一区二区三区| 国产成人在线免费观看| 久久五月婷婷丁香社区| 国产综合色视频| 久久综合999| 韩国一区二区视频| 亚洲精品在线网站| 国产精品一区二区三区网站| 久久亚洲影视婷婷| 国产成人av电影在线| 欧美韩国日本一区| 成人av动漫网站| 亚洲私人黄色宅男| 色欧美乱欧美15图片| 一区二区三区免费在线观看| 欧美中文字幕一区二区三区 | 亚洲图片欧美色图| 欧美精品成人一区二区三区四区| 三级欧美在线一区| 日韩精品一区二区在线| 国产精品一区免费视频| 中文在线一区二区| 日本韩国精品一区二区在线观看| 亚洲国产三级在线| 在线观看不卡一区| 日本欧美大码aⅴ在线播放| 日韩美女天天操| 成人性视频免费网站| 亚洲精品伦理在线| 911精品产国品一二三产区| 看电视剧不卡顿的网站| www亚洲一区| 95精品视频在线| 亚洲成精国产精品女| 精品嫩草影院久久| 成人不卡免费av| 亚洲gay无套男同| 欧美va在线播放| 91网页版在线| 免费成人在线网站| 亚洲国产精品99久久久久久久久| 色婷婷一区二区三区四区| 人人爽香蕉精品| 国产精品沙发午睡系列990531| 91成人免费在线| 黄页网站大全一区二区| 成人免费一区二区三区视频| 欧美日韩视频在线第一区| 国产美女一区二区三区| 一区二区三区四区高清精品免费观看| 91麻豆精品国产91久久久更新时间| 国产精品香蕉一区二区三区| 亚洲黄一区二区三区| 精品久久五月天| 欧美综合色免费| 国产成人免费在线观看不卡| 一区二区三区四区五区视频在线观看| 日韩欧美国产系列| 一本大道久久a久久综合| 国模冰冰炮一区二区| 亚洲777理论| 国产午夜精品久久久久久免费视| 日本黄色一区二区| 国产精品一级在线| 日韩国产精品久久| 亚洲精品成人a在线观看| 亚洲精品一区在线观看| 欧美日韩日本视频| www.在线成人| 国产精品综合久久| 日日摸夜夜添夜夜添亚洲女人| 国产精品美女久久久久久2018| 精品久久久影院| 欧美日韩高清在线播放| 97精品久久久久中文字幕| 国产一区二区三区日韩|