<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    CTB

     

    貪吃蛇

    package com.wepull.test;


     
     import java.awt.Color;
     import java.awt.Graphics;
     import java.awt.Toolkit;
     import java.awt.event.ActionEvent;
     import java.awt.event.ActionListener;
     import java.awt.event.InputEvent;
     import java.awt.event.KeyEvent;
     import java.awt.event.KeyListener;

     import javax.swing.JCheckBoxMenuItem;
     import javax.swing.JFrame;
     import javax.swing.JMenu;
     import javax.swing.JMenuBar;
     import javax.swing.JMenuItem;
     import javax.swing.JOptionPane;
     import javax.swing.KeyStroke;

     

     


     public class 貪吃蛇 extends JFrame implements ActionListener, KeyListener,Runnable {
     /**
       *
       */
     private static final long serialVersionUID = 1L;
     private JMenuBar menuBar;
     private JMenu youXiMenu,nanDuMenu,fenShuMenu,guanYuMenu;
     private JMenuItem kaiShiYouXi,exitItem,zuoZheItem,fenShuItem;
     private JCheckBoxMenuItem cJianDan,cPuTong,cKunNan;
     private int length = 6;
     private Toolkit toolkit;
     private int i,x,y,z,objectX,objectY,object=0,growth=0,time;//bojectX,Y

     private int m[]=new int[50];
     private int n[]=new int[50];
     private Thread she = null;
     private int life=0;
     private int foods = 0;
     private int fenshu=0;
     


     public void run(){ 
       time=500;
       for(i=0;i<=length-1;i++)
       {
        m[i]=90-i*10;n[i]=60;
       }
      
       x=m[0];
       y=n[0];
       z=4;
      
      
       while(she!=null)
       {
       
        check();
        try
        {
         Thread.sleep(time);
        }
        catch(Exception ee)
        {
         System.out.println(z+"");
        }
       }
     }

     public 貪吃蛇() {
     
       setVisible(true);
       menuBar = new JMenuBar();
       toolkit=getToolkit();
     
       youXiMenu = new JMenu("游戲");
       kaiShiYouXi = new JMenuItem("開始游戲");
       exitItem = new JMenuItem("退出游戲");
     
       nanDuMenu = new JMenu("困難程度");
       cJianDan = new JCheckBoxMenuItem("簡單");
       cPuTong = new JCheckBoxMenuItem("普通");
       cKunNan = new JCheckBoxMenuItem("困難");
     
       fenShuMenu = new JMenu("積分排行");
       fenShuItem = new JMenuItem("最高記錄");

       guanYuMenu = new JMenu("關(guān)于");
       zuoZheItem = new JMenuItem("關(guān)于作者");
     
       guanYuMenu.add(zuoZheItem);

       nanDuMenu.add(cJianDan);
       nanDuMenu.add(cPuTong);
       nanDuMenu.add(cKunNan);

      fenShuMenu.add(fenShuItem);
      youXiMenu.add(kaiShiYouXi);
       youXiMenu.add(exitItem);
      menuBar.add(youXiMenu);
       menuBar.add(nanDuMenu);
       menuBar.add(fenShuMenu);
       menuBar.add(guanYuMenu);
     zuoZheItem.addActionListener(this);
       kaiShiYouXi.addActionListener(this);
       exitItem.addActionListener(this);
       addKeyListener(this);
       fenShuItem.addActionListener(this);
       KeyStroke keyOpen = KeyStroke.getKeyStroke('O',InputEvent.CTRL_DOWN_MASK);
       kaiShiYouXi.setAccelerator(keyOpen);
       KeyStroke keyExit = KeyStroke.getKeyStroke('X',InputEvent.CTRL_DOWN_MASK);
       exitItem.setAccelerator(keyExit);
       setJMenuBar(menuBar);
       setTitle("貪吃蛇");
       setResizable(false);
       setBounds(300,200,400,400);
       validate();
       setDefaultCloseOperation(EXIT_ON_CLOSE);  
     }
     


     public static void main(String args[]) {
        new 貪吃蛇();
     }

     public void actionPerformed(ActionEvent e){
       if(e.getSource()==kaiShiYouXi)
       {
        length = 6;
        life = 0;
        foods = 0;
        if(she==null)
        {
         she=new Thread(this);
         she.start();
        }
        else if(she!=null)
        {
         she=null;
         she= new Thread(this);
         she.start();
        }
       }
       if(e.getSource()==exitItem)
       {
        System.exit(0);
       }
       if(e.getSource()==zuoZheItem)
       {
        JOptionPane.showMessageDialog(this, "千面獨(dú)行客"+"\n\n"+"                  "+"QQ號:244897789"+"\n");
       }
       if(e.getSource()==fenShuItem)
       {
           JOptionPane.showMessageDialog(this,"最高記錄為"+fenshu+""); 
       }
      
     }

     public void check(){
       isDead();
       if(she!=null)
       {
        if(growth==0)
        {
         reform(); //得到食物
        }
        else
        {
         upgrowth(); //生成食物
        }
        if(x==objectX&&y==objectY)
        {
         object=0;
         growth=1;
         toolkit.beep();
        }
        if(object==0)
        {
         object=1;
         objectX=(int)Math.floor(Math.random()*39)*10;
         objectY=(int)Math.floor(Math.random()*29)*10+50;
        }
        this.repaint(); //重繪
       }
     }
     void isDead()
     {
       //判斷游戲是否結(jié)束的方法
       if(z==4)
       {
        x=x+10;
       }
       else if(z==3)
          {
             x=x-10;
          }
       else if(z==2)
          {
             y=y+10;
          }
       else if(z==1)
          {
             y=y-10;
          }
       if(x<0||x>390||y<50||y>390)
       {
        she=null;
       }
       for(i=1;i<length;i++)
       {
        if(m[i]==x&&n[i]==y)
        {
         she=null;
        }
       }
       
     }
     public void upgrowth()
     { 
       //當(dāng)蛇吃到東西時(shí)的方法
       if(length<50)
       {
        length++;
       } 
       growth--;
       time=time-10;
       reform();
       life+=100;
       if(fenshu<life)
       {
        fenshu = life;
       }
       foods++;
     }
     public void reform()
     {
       for(i=length-1;i>0;i--)
       {
       
        m[i]=m[i-1];
        n[i]=n[i-1];
       }
       if(z==4)
       {
        m[0]=m[0]+10;
       }
       if(z==3)
       {
        m[0]=m[0]-10;
       }
       if(z==2)
       {
        n[0]=n[0]+10;
       }
       if(z==1)
       {
        n[0]=n[0]-10;
       }
     }

     public void keyPressed(KeyEvent e)
     {
       if(she!=null)
       {
        if(e.getKeyCode()==KeyEvent.VK_UP)
        {
         if(z!=2)
         {
          z=1;
          check();
         }
        }
        else if(e.getKeyCode()==KeyEvent.VK_DOWN)
        {
         if(z!=1)
         {
          z=2;
          check();
         }
        }
        else if(e.getKeyCode()==KeyEvent.VK_LEFT)
        {
         if(z!=4)
         {
          z=3;
          check();
         }
        }
        else if(e.getKeyCode()==KeyEvent.VK_RIGHT)
        {
         if(z!=3)
         {
          z=4;
          check();
         }
        }
      
       }
      
     }
     public void keyReleased(KeyEvent e)
     {
      
     }
     public void keyTyped(KeyEvent e)
     {
      
     }
     public void paint(Graphics g)  {
       g.setColor(Color.DARK_GRAY); //設(shè)置背景
       g.fillRect(0,50,400,400);
       g.setColor(Color.pink);
       for(i=0;i<=length-1;i++)
       {
        g.fillRect(m[i],n[i],10,10);
       }
       g.setColor(Color.green); //蛇的食物
       g.fillRect(objectX,objectY,10,10);
       g.setColor(Color.white);
       g.drawString("當(dāng)前      分?jǐn)?shù)"+this.life,6,60);
       g.drawString("當(dāng)前已吃食物數(shù)"+this.foods,6,72);
     }
     }

     


     

    posted on 2012-05-16 11:01 千面獨(dú)行客 閱讀(199) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿

    隨筆檔案

    文章檔案

    搜索

    最新評論

    • 1.?re: 我多想告訴你
    • 煽情……
    • -- _小丸子
    • 2.?re: 我多想告訴你
    • 面對愛情的男人都是情圣,文筆自然也有所提高。小樣,煽情了吧 /偷笑……
    • -- _小丸子
    • 3.?re: 我多想告訴你
    • 到底是什么事兒觸發(fā)了你如此之深的感受啊?前提是這是你寫的,嘿嘿~
    • --巧克力
    • 4.?re: 走過自己
    • 剛開始看,呵呵幾個錯別字,看了之后有點(diǎn)兒小沉重,才發(fā)現(xiàn)大姐原是個心思很細(xì)膩的男生,文筆還可以喲,嘿嘿~
    • --巧克力
    • 5.?re: 無題
    • 我覺得自恃清高沒啥不好的,呵呵~
    • --巧克力

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成色777777精品| 一本天堂ⅴ无码亚洲道久久| a级毛片免费网站| 亚洲国产V高清在线观看| 国产亚洲午夜精品| 波多野结衣中文一区二区免费 | 亚洲国产美女福利直播秀一区二区 | 91免费国产在线观看| 亚洲综合无码一区二区| 在线免费中文字幕| 精品亚洲国产成人| 曰皮全部过程视频免费国产30分钟| 亚洲中文字幕无码久久2020| 免费无遮挡无码视频网站| 国产精品久久久久久亚洲小说| 免费夜色污私人影院在线观看| 春意影院午夜爽爽爽免费| 亚洲色欲色欲www在线丝| 午夜网站在线观看免费完整高清观看| 亚洲av色影在线| 国产91免费视频| 亚洲AV成人无码网站| 国产精品亚洲mnbav网站 | 98精品全国免费观看视频| 亚洲一区电影在线观看| 国产成人精品高清免费| 999zyz**站免费毛片| 亚洲无人区视频大全| 美女黄网站人色视频免费国产 | 狠狠亚洲狠狠欧洲2019| 久久久久国产精品免费免费不卡| 亚洲a级在线观看| 亚洲AV无码之日韩精品| 日本免费人成网ww555在线| 最新亚洲春色Av无码专区| 亚洲熟妇少妇任你躁在线观看无码| 一级成人a毛片免费播放| 亚洲国产精品成人AV在线| 国产亚洲美女精品久久久2020| 中文字幕免费在线看线人| 免费国产黄网站在线看|