zoukankan      html  css  js  c++  java
  • 【Java实战】Java实现简易坦克对战小游戏

    摘要:前期学习了Java入门的相关基础,现在通过这个小项目来熟悉巩固所学。该程序主要实现了一个简易的坦克对战小游戏,提供UI界面

    //此程序用来实现一个简易的坦克对战小游戏!
    //Version:1.0
    //  @Author:Yongchun_zha
    
    package cha09;
    
    import javax.swing.*;
    
    import java.awt.*;
    
    import java.awt.event.ActionEvent;
    
    import java.awt.event.ActionListener;
    
    import java.awt.event.KeyEvent;
    
    import java.awt.event.KeyListener;
    
    import java.util.*;
    
    public class L9_1 extends JFrame implements ActionListener
    
    {
    
     Mypanel mp=null;
    
     GameStage gs=null;
    
     JMenuBar mb=null;
    
     JMenu mu=null;
    
     JMenuItem mi=null;
    
     JMenuItem mi1=null;
    
     JMenuItem mi2=null;
    
     JMenuItem mi3=null;
    
    
    
     public static void main(String[] args)
    
     {
    
          L91 l91=new L9_1();
    
     }
    
    
    
     public L9_1()
    
     {
    
      mb=new JMenuBar();
    
      mu=new JMenu("Game");
    
      mu.setMnemonic('G');
    
      mi=new JMenuItem("New Game");
    
      mi.setMnemonic('N');
    
      mi1=new JMenuItem("Go on Game
    
    ");
    
      mi1.setMnemonic('P');
    
      mi2=new JMenuItem("Save&Exit");
    
      mi2.setMnemonic('S');
    
      mi3=new JMenuItem("Exit");
    
      mi3.setMnemonic('E');
    
    
    
      mi.addActionListener(this);
    
      mi.setActionCommand("newGame");
    
      mi1.addActionListener(this);
    
      mi1.setActionCommand("goongame");
    
      mi2.addActionListener(this);
    
      mi2.setActionCommand("saveexit");
    
      mi3.addActionListener(this);
    
      mi3.setActionCommand("exit");
    
    
    
      mu.add(mi);
    
      mu.add(mi1);
    
      mu.add(mi2);
    
      mu.add(mi3);
    
      mb.add(mu);
    
    
    
    
    
      this.setJMenuBar(mb);
    
      gs=new GameStage();
    
      Thread ff=new Thread(gs);
    
      ff.start();
    
      this.add(gs);
    
      this.setIconImage(new ImageIcon("image/tank.jpg").getImage());
    
      this.setTitle("TANK_WAR");//设置用户界面
    
      this.setSize(400,500);//设置窗口大小,数字代表像素
    
      this.setLocation(300,260);//设置窗体位置
    
      this.setResizable(false);//设置窗体大小是否可调整
    
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭进程
    
         this.setVisible(true);//true 显示,false不显示
    
     }
    
    
    
     public void actionPerformed(ActionEvent e)
    
     {
    
      if(e.getActionCommand().equals("newGame"))
    
      {
    
       mp=new Mypanel();
    
       this.remove(gs);
    
       this.add(mp);
    
       Thread bb=new Thread(mp);
    
       bb.start();
    
    
    
       this.addKeyListener(mp);
    
       this.setVisible(true);
    
      }
    
    
    
      else if(e.getActionCommand().equals("goongame"))
    
      {
    
    
    
      }
    
    
    
      else if(e.getActionCommand().equals("saveexit"))
    
      {
    
       Record record=new Record();
    
       record.setNumAt(mp.numArmyTank);
    
       record.saveGame();
    
       System.exit(0);
    
      }
    
    
    
      else if(e.getActionCommand().equals("exit"))
    
      {
    
       Record.writeRecord();
    
       System.exit(0);
    
      }
    
     }
    
    }
    
    class Mypanel extends JPanel implements KeyListener,Runnable
    
    {
    
     MyTank mt=null;
    
     ArmyTank at=null;
    
     Explode bz=null;
    
     Vector armyTankV=new Vector();
    
     Vector bzV=new Vector();
    
     int numArmyTank=3;
    
    
    
     Image tp1=null;
    
     Image tp2=null;
    
     Image tp3=null;
    
    
    
     public void keyTyped(KeyEvent e){}
    
     public void keyReleased(KeyEvent e){}
    
     public void keyPressed(KeyEvent e)
    
     {
    
      if(e.getKeyCode()==KeyEvent.VK_W ||e.getKeyCode()==KeyEvent.VK_UP)
    
      {
    
       this.mt.setDirection(0);
    
       this.mt.turnUp();
    
      }
    
    
    
      else if(e.getKeyCode()==KeyEvent.VK_A ||e.getKeyCode()==KeyEvent.VK_DOWN)
    
      {
    
       this.mt.setDirection(1);
    
       this.mt.turnDown();
    
      }
    
    
    
      else if(e.getKeyCode()==KeyEvent.VK_S ||e.getKeyCode()==KeyEvent.VK_LEFT)
    
      {
    
       this.mt.setDirection(2);
    
       this.mt.turnLeft();
    
      }
    
    
    
      else if(e.getKeyCode()==KeyEvent.VK_D ||e.getKeyCode()==KeyEvent.VK_RIGHT)
    
      {
    
       this.mt.setDirection(3);
    
       this.mt.turnRight();
    
      }
    
    
    
      if(e.getKeyCode()==KeyEvent.VK_J)
    
      {
    
       if(this.mt.zdV.size()<8)
    
       {
    
        this.mt.shutBullet();
    
       }
    
      }
    
      this.repaint();
    
    
    
     }
    
     public Mypanel()
    
     {
    
      Shengyin music=new Shengyin("./tank.wav");
    
      music.start();
    
      Record.readRecord();
    
      mt=new MyTank(140,232);
    
    
    
      for(int i=0;i
    
      {
    
           at=new ArmyTank(i*181+5,0);
    
           at.setDirection(2);
    
           Thread cc=new Thread(at);
    
           cc.start();
    
    
    
           Bullet zd=new Bullet(at.x+10,at.y+30,2);
    
           at.dzdV.add(zd);
    
           Thread ee=new Thread(zd);
    
           ee.start();
    
           armyTankV.add(at);
    
      }
    
    
    
      tp1 = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/bzxg1.gif"));
    
      tp2 = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/bzxg2.gif"));
    
      tp3 = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/bzxg3.gif"));
    
     }
    
    
    
     public void paint(Graphics g)
    
     {
    
      super.paint(g);
    
    
    
      g.fillRect(0, 0, 400, 300);//设置画布大小
    
    
    
      if(mt.life==true)
    
      {
    
       this.drawTank(mt.getX(), mt.getY(), g, mt.direction , 0);
    
      }
    
    
    
    
    
      for(int i=0;i
    
      {
    
        at=armyTankV.get(i);
    
    
    
        if(at.life)
    
        {
    
         this.drawTank(at.getX(), at.getY(), g, at.direction, 1);
    
        }
    
    
    
        for(int j=0;j
    
        {
    
         Bullet zd=at.dzdV.get(j);
    
         if(zd.life)
    
         {
    
          g.setColor(Color.white);
    
          g.fill3DRect(zd.x,zd.y,3,3,false);
    
         }
    
         else
    
         {
    
          at.dzdV.remove(zd);
    
         }
    
        }
    
      }
    
      for(int i=0;i
    
      {
    
       Bullet zd=mt.zdV.get(i);
    
    
    
       if(zd!=null && mt.zd.life==true)
    
       {
    
        g.setColor(Color.white);
    
        g.fill3DRect(zd.x,zd.y , 3,3,false );
    
       }
    
       if(zd.life==false)
    
       {
    
        mt.zdV.remove(zd);
    
       }
    
      }
    
    
    
      for(int i=0;i
    
      {
    
       bz=bzV.get(i);
    
    
    
       if(bz.lifeLength>6)
    
       {
    
        g.drawImage(tp1, bz.x, bz.y, 30,30,this);
    
       }
    
       else if(bz.lifeLength>3)
    
       {
    
        g.drawImage(tp2, bz.x, bz.y, 30,30,this);
    
       }
    
       else
    
       {
    
        g.drawImage(tp3, bz.x, bz.y, 30,30,this);
    
       }
    
       bz.lifeLengthDecrease();
    
    
    
       if(bz.lifeLength==0)
    
       {
    
        bzV.remove(bz);
    
       }
    
      }
    
      this.showInformation(g);
    
     }
    
    
    
     public void drawTank(int x,int y,Graphics g,int direction,int type)
    
     {
    
      switch(type)
    
      {
    
      case 0://my tank
    
       g.setColor(Color.yellow);
    
       break;
    
      case 1://army's tank
    
       g.setColor(Color.green);
    
       break;
    
      }
    
    
    
      switch(direction)
    
      {
    
      case 0://up
    
       g.fill3DRect(x,y, 5, 30, false);
    
       g.fill3DRect(x+15,y, 5, 30,false);
    
       g.fill3DRect(x+5,y+5, 10, 20, false);
    
       g.fillOval(x+5,y+10, 10, 10);
    
       g.drawLine(x+10,y+15,x+10,y-3);
    
       break;
    
    
    
      case 1://down
    
       g.fill3DRect(x,y, 5, 30, false);
    
       g.fill3DRect(x+15,y, 5, 30,false);
    
       g.fill3DRect(x+5,y+5, 10, 20, false);
    
       g.fillOval(x+5,y+10, 10, 10);
    
       g.drawLine(x+10,y+15,x+10,y+33);
    
       break;
    
    
    
      case 2://left
    
       g.fill3DRect(x,y, 30, 5, false);
    
       g.fill3DRect(x,y+15, 30, 5,false);
    
       g.fill3DRect(x+5,y+5, 20, 10, false);
    
       g.fillOval(x+10,y+5, 10, 10);
    
       g.drawLine(x+15,y+10,x-3,y+10);
    
       break;
    
    
    
      case 3://right
    
       g.fill3DRect(x,y, 30, 5, false);
    
       g.fill3DRect(x,y+15, 30, 5,false);
    
       g.fill3DRect(x+5,y+5, 20, 10, false);
    
       g.fillOval(x+10,y+5, 10, 10);
    
       g.drawLine(x+20,y+10,x+30,y+10);
    
       break;
    
    
    
      }
    
     }
    
    
    
     public void showInformation(Graphics g)
    
     {
    
      this.drawTank(80, 330, g, 0, 0);
    
      this.drawTank(150,330, g, 0, 1);
    
    
    
      g.setColor(Color.black);
    
      g.drawString(Record.getNumAt()+"", 116,350);//整形数据后面加上“”,会把整形数据转换为String类型。
    
      g.drawString(Record.getNumMt()+"",186,350 );
    
      g.setFont(new Font("Bodoni MT",Font.CENTER_BASELINE,15));
    
      g.setColor(Color.BLACK);
    
      g.setFont(new Font("Bodoni MT",Font.BOLD,20));
    
      g.drawString("The number of Army Tanks you shutted:", 10,400);
    
      g.setColor(Color.DARK_GRAY);
    
      g.drawString(Record.getSumShutNumAt()+"",370,400 );
    
     }
    
    
    
    public boolean shutted(Bullet zd,Tank tk)
    
     {
    
      boolean b2=false;
    
    
    
      switch(tk.direction)
    
      {
    
      case 0:
    
      case 1:
    
       if(zd.x>tk.x && zd.xtk.y && zd.y
    
       {
    
        zd.life=false;
    
        tk.life=false;
    
        Explode bz=new Explode(tk.x,tk.y);
    
        bzV.add(bz);
    
        b2=true;
    
       }
    
       break;
    
      case 2:
    
      case 3:
    
       if(zd.x>tk.x && zd.xtk.y && zd.y
    
       {
    
        zd.life=false;
    
        tk.life=false;
    
        b2=true;
    
        Explode bz=new Explode(tk.x,tk.y);
    
        bzV.add(bz);
    
        b2=true;
    
       }
    
       break;
    
      }
    
      return b2;
    
     }
    
    
    
     public void shuttedArmy()
    
     {
    
      for(int i=0;i
    
      {
    
       Bullet zd=mt.zdV.get(i);
    
    
    
       if(zd.life)
    
       {
    
        for(int j=0;j
    
        {
    
         ArmyTank at=armyTankV.get(j);
    
    
    
         if(at.life)
    
         {
    
          if(this.shutted(zd, at))
    
          {
    
           Record.atDc();
    
           Record.numShutAt();
    
          }
    
          this.shutted(zd, at);
    
         }
    
        }
    
       }
    
      }
    
     }
    
     public void shuttedMine()
    
     {
    
      for(int i=0;i
    
      {
    
       ArmyTank at=armyTankV.get(i);
    
    
    
       for(int j=0;j
    
       {
    
        Bullet zd=at.dzdV.get(j);
    
    
    
        this.shutted(zd, mt);
    
    
    
        if(this.shutted(zd, mt))
    
        {
    
         Record.mtDc();
    
        }
    
       }
    
       this.repaint();
    
      }
    
     }
    
    
    
     public void run()
    
     {
    
      while(true)
    
      {
    
       try
    
       {
    
        Thread.sleep(100);
    
        this.repaint();
    
       }
    
       catch(Exception e)
    
       {}
    
    
    
       for(int i=0;i
    
       {
    
        Bullet zd=mt.zdV.get(i);
    
        if(zd.life)
    
        {
    
         for(int j=0;j
    
         {
    
          ArmyTank at=armyTankV.get(j);
    
          if(at.life)
    
          {
    
           this.shuttedArmy();
    
          }
    
         }
    
        }
    
        this.repaint();
    
       }
    
    
    
       for(int i=0;i
    
       {
    
        Bullet zd=at.dzdV.get(i);
    
        if(mt.life)
    
        {
    
         this.shuttedMine();
    
        }
    
       }
    
       this.repaint();
    
      }
    
     }
    
    }
    
    class GameStage extends JPanel implements Runnable
    
    {
    
     int time=0;
    
    
    
     public void paint(Graphics g)
    
     {
    
      super.paint(g);
    
    
    
      g.fillRect(0,0,400,300);
    
    
    
      if(time%2==0)
    
      {
    
       g.setColor(Color.orange);
    
       g.setFont(new Font("Blackoak Std",Font.BOLD,20));
    
       g.drawString("Welcome To", 50,140);
    
       g.setFont(new Font("Blackoak Std",Font.PLAIN,15));
    
       g.drawString("TANK WAR GAME", 30,170);
    
      }
    
     }
    
    
    
     public void run()
    
     {
    
      while(true)
    
      {
    
       try
    
       {
    
        Thread.sleep(500);
    
       }catch(Exception e){}
    
       time++;
    
       this.repaint();
    
      }
    
     }
    
    }
    
    //material lass
    
    package cha09;
    
    import java.io.*;
    
    import java.util.Vector;
    
    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;
    
    class Tank
    
    {
    
     int x=0,y=0;
    
     int direction=0;
    
     int speed=5;
    
     boolean life=true;
    
    
    
     public int getDirection() {
    
      return direction;
    
     }
    
     public void setDirection(int direction) {
    
      this.direction = direction;
    
     }
    
     public int getSpeed() {
    
      return speed;
    
     }
    
     public void setSpeed(int speed) {
    
      this.speed = speed;
    
     }
    
     public int getX() {
    
      return x;
    
     }
    
     public void setX(int x) {
    
      this.x = x;
    
     }
    
     public int getY() {
    
      return y;
    
     }
    
     public void setY(int y) {
    
      this.y = y;
    
     }
    
    
    
     public Tank(int x,int y)
    
     {
    
      this.x=x;
    
      this.y=y;
    
     }
    
    }
    
    class Bullet implements Runnable
    
    {
    
     int x,y;
    
     int direction;
    
     int speed=5;
    
     boolean life=true;
    
    
    
     public Bullet(int x,int y,int direction)
    
     {
    
      this.x=x;
    
      this.y=y;
    
      this.direction=direction;
    
     }
    
    
    
     public void run()
    
     {
    
      while(true)
    
      {
    
       try
    
       {
    
        Thread.sleep(50);
    
       }
    
       catch(Exception e)
    
       {}
    
    
    
       switch(direction)
    
       {
    
       case 0:
    
        y-=speed;
    
        break;
    
    
    
       case 1:
    
        y+=speed;
    
        break;
    
    
    
       case 2:
    
        x-=speed;
    
        break;
    
    
    
       case 3:
    
        x+=speed;
    
        break;
    
       }
    
    
    
       if(x<0||x>400||y<0||y>300)
    
       {
    
        this.life=false;
    
       }
    
    
    
      }
    
    
    
     }
    
    
    
    }
    
    class MyTank extends Tank
    
    {
    
     Vector zdV=new Vector();
    
    
    
     Bullet zd=null;
    
    
    
     public MyTank(int x,int y)
    
     {
    
      super(x,y);
    
     }
    
    
    
     public void turnUp()
    
     {
    
      y-=speed;
    
     }
    
    
    
     public void turnDown()
    
     {
    
      y+=speed;
    
     }
    
    
    
     public void turnLeft()
    
     {
    
      x-=speed;
    
     }
    
    
    
     public void turnRight()
    
     {
    
      x+=speed;
    
     }
    
    
    
     public void shutBullet()
    
     {
    
      switch(this.direction)
    
      {
    
      case 0:
    
        zd=new Bullet(x+10,y,0);
    
        zdV.add(zd);
    
       break;
    
    
    
      case 1:
    
       zd=new Bullet(x+10,y+30,1);
    
       zdV.add(zd);
    
          break;
    
      case 2:
    
       zd=new Bullet(x,y+10,2);
    
       zdV.add(zd);
    
          break;
    
    
    
      case 3:
    
       zd=new Bullet(x+30,y+10,3);
    
       zdV.add(zd);
    
          break;
    
      }
    
    
    
      Thread aa=new Thread(zd);
    
      aa.start();
    
     }
    
    }
    
    class ArmyTank extends Tank implements Runnable
    
    {
    
     int time=0;
    
     int direction;
    
     Bullet zd=null;
    
     Vector dzdV=new Vector();
    
     Vector armyTankV=null;
    
     public ArmyTank(int x,int y)
    
     {
    
      super(x, y);
    
     }
    
     public boolean Impact()
    
     {
    
      boolean b=true;
    
    
    
      switch(this.direction)
    
      {
    
      case 0:
    
      case 1:
    
       for(int i=0;i
    
       {
    
        ArmyTank at=armyTankV.get(i);
    
        if(at!=this)
    
        {
    
         if(this.x>=at.x+20 || this.x+20<=at.x || (this.x<=at.x+20 && this.x+20>=at.x && (this.y+30<=at.y || this.y<=at.y+30)))
    
         {
    
          return true;
    
         }
    
         if(this.y>=at.y+20 || this.y+30<=at.y || (this.y>=at.y-30 && this.y<=at.y+20 && (this.x>at.x+30) || (this.x+20<=at.x)))
    
         {
    
          return true;
    
         }
    
        }
    
       }
    
       break;
    
      case 2:
    
      case 3:
    
       for(int i=0;i
    
       {
    
        ArmyTank at=armyTankV.get(i);
    
        if(at!=this)
    
        {
    
         if(at.x+20<=this.x || at.x>=this.x+30 || (this.x>=at.x-30 && this.x<=at.x+20 &&(this.y>=at.y+30 || this.y+20<=at.y)))
    
         {
    
          return true;
    
         }
    
         if(this.y>=at.y+20 || this.y+20<=at.y || (this.y>=at.y-20 && this.y<=at.y+20 &&(this.x>=at.x+30 || this.x+30<=at.x)))
    
         {
    
          return true;
    
         }
    
        }
    
       }
    
       break;
    
      }
    
      return b;
    
     }
    
    
    
     public void run()
    
     {
    
      int speed=2;
    
      while(true)
    
      {
    
          switch(this.direction)
    
          {
    
          case 0:
    
           for(int i=0;i<30;i++)
    
           {
    
            if(y>0 && Impact())
    
            {
    
             y-=speed;
    
            }
    
            try
    
         {
    
          Thread.sleep(50);
    
         }catch(Exception e){}
    
           }
    
           break;
    
          case 1:
    
            for(int i=0;i<30;i++)
    
            {
    
             if(y<240 && Impact())
    
             {
    
              y+=speed;
    
             }
    
             try
    
          {
    
           Thread.sleep(50);
    
          }catch(Exception e){}
    
            }
    
            break;
    
          case 2:
    
           for(int i=0;i<30;i++)
    
           {
    
            if(x>0 && Impact())
    
            {
    
             x-=speed;
    
            }
    
            try
    
         {
    
          Thread.sleep(50);
    
         }catch(Exception e){}
    
           }
    
           break;
    
          case 3:
    
           for(int i=0;i<30;i++)
    
           {
    
            if(x<360 && Impact())
    
            {
    
             x+=speed;
    
            }
    
            try
    
         {
    
          Thread.sleep(50);
    
         }catch(Exception e){}
    
           }
    
           break;
    
           }
    
    
    
          this.direction=(int)(Math.random()*4);
    
    
    
          if(this.life==false)
    
          {
    
           break;
    
          }
    
          this.time++;
    
    
    
          if(time%2==0)
    
          {
    
           if(life)
    
           {
    
            if(dzdV.size()<8)
    
            {
    
             switch(direction)
    
             {
    
             case 0:
    
              zd=new Bullet(x+10,y,0);
    
              dzdV.add(zd);
    
              break;
    
             case 1:
    
              zd=new Bullet(x+10,y+30,1);
    
              dzdV.add(zd);
    
              break;
    
             case 2:
    
              zd=new Bullet(x+10,y+10,2);
    
              dzdV.add(zd);
    
              break;
    
             case 3:
    
              zd=new Bullet(x+30,y+10,3);
    
              dzdV.add(zd);
    
              break;
    
             }
    
             Thread dd=new Thread(zd);
    
             dd.start();
    
            }
    
           }
    
          }
    
      }
    
     }
    
    }
    
    class Explode
    
    {
    
     int x,y;
    
     int lifeLength=9;
    
     boolean life=true;
    
    
    
     public Explode(int x,int y)
    
     {
    
      this.x=x;
    
      this.y=y;
    
     }
    
     public void lifeLengthDecrease()
    
     {
    
      if(lifeLength>0)
    
      {
    
       lifeLength--;
    
      }
    
      else
    
      {
    
       this.life=false;
    
      }
    
     }
    
    }
    
    class Record
    
    {
    
     Vector armyTankV=null;
    
     private static int numAt=10;
    
     private static int numMt=2;
    
     private static int sumShutNumAt=0;
    
     private static FileOutputStream fo=null;
    
     private static FileInputStream fi=null;
    
     public static int getSumShutNumAt()
    
     {
    
      return sumShutNumAt;
    
     }
    
     public static void setSumShutNumAt(int sumShutNumAt)
    
     {
    
      Record.sumShutNumAt = sumShutNumAt;
    
     }
    
     public static void numShutAt()
    
     {
    
      sumShutNumAt++;
    
     }
    
     public static int getNumAt()
    
     {
    
      return numAt;
    
     }
    
     public static void setNumAt(int numAt)
    
     {
    
      Record.numAt = numAt;
    
     }
    
     public static int getNumMt()
    
     {
    
      return numMt;
    
     }
    
     public static void setNumMt(int numMt)
    
     {
    
      Record.numMt = numMt;
    
     }
    
     public static void atDc()
    
     {
    
      numAt--;
    
     }
    
     public static void mtDc()
    
     {
    
      numMt--;
    
     }
    
     public static void writeRecord()
    
     {
    
      try
    
      {
    
       fo=new FileOutputStream("F:/java/Part2/writeRecord.txt");
    
       fo.write(sumShutNumAt);
    
      }
    
      catch(Exception e){}
    
      finally
    
      {
    
       try
    
       {
    
        fo.close();
    
       }
    
       catch(Exception e){}
    
      }
    
     }
    
     public static void readRecord()
    
     {
    
      try
    
      {
    
       fi=new FileInputStream("F:/java/Part2/writeRecord.txt");
    
       sumShutNumAt=fi.read();
    
      }
    
      catch(Exception e){}
    
      finally
    
      {
    
       try
    
       {
    
        fi.close();
    
       }
    
       catch(Exception e){}
    
      }
    
     }
    
     public void saveGame()
    
     {
    
      try
    
      {
    
       fo=new FileOutputStream("F:/java/Part2/writeRecord.txt");
    
       fo.write(sumShutNumAt);
    
    
    
       for(int i=0;i
    
       {
    
        ArmyTank at=armyTankV.get(i);
    
        if(at.life)
    
        {
    
         int zb=at.x;
    
         int zb1=at.y;
    
         int zb2=at.direction;
    
         fo.write(zb);
    
         fo.write(zb1);
    
         fo.write(zb2);
    
        }
    
       }
    
      }
    
      catch(Exception e)
    
      {}
    
      finally
    
      {
    
       try
    
       {
    
        fo.close();
    
        fi.close();
    
       }
    
       catch(Exception e){}
    
      }
    
    
    
     }
    
    }
    
    class Location
    
    {
    
     int x,y;
    
     int location;
    
    
    
     public Location(int x,int y,int location)
    
     {
    
      this.x=x;
    
      this.y=y;
    
      this.location=location;
    
     }
    
    }
    
    class Shengyin extends Thread {
    
     private String wjm;
    
     public Shengyin(String ypwj)
    
     {
    
       wjm=ypwj;
    
     }
    
     public void run() {
    
      File wjl = new File(wjm);
    
      AudioInputStream ypsrl = null;
    
      try {
    
       ypsrl = AudioSystem.getAudioInputStream(wjl);
    
      } catch (Exception e){}
    
      AudioFormat format = ypsrl.getFormat();
    
      SourceDataLine aqsj = null;
    
      DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
    
      try {
    
       aqsj = (SourceDataLine) AudioSystem.getLine(info);
    
       aqsj.open(format);
    
      } catch (Exception e){}
    
      aqsj.start();
    
    
    
      int zjtj = 0;
    
      byte[] hczj = new byte[1024];
    
      try {
    
       while (zjtj != -1) {
    
        zjtj = ypsrl.read(hczj, 0, hczj.length);
    
        if (zjtj >= 0)
    
         aqsj.write(hczj, 0, zjtj );
    
       }
    
      } catch (Exception e){}
    
      finally {
    
       aqsj.drain();
    
       aqsj.close();
    
      }
    
     }
    
    }
    
  • 相关阅读:
    object c 基础语法
    Object-C 基础知识总结
    【POJ1475】Pushing Boxes-A*(或BFS?)
    【POJ1475】Pushing Boxes-A*(或BFS?)
    【POJ2286】The Rotation Game-迭代加深DFS+可行性剪枝
    【CodeVS1004】四子连棋-迭代加深搜索入门
    【CodeVS1004】四子连棋-迭代加深搜索入门
    【Poj2449】Remmarguts' Date-k短路(A*解法)
    【Poj2449】Remmarguts' Date-k短路(A*解法)
    【HDU4090】Gem and Prince-DFS+可行性剪枝
  • 原文地址:https://www.cnblogs.com/yczha/p/13160273.html
Copyright © 2011-2022 走看看