For investors

股價(jià):

5.36 美元 %
認(rèn)識(shí)達(dá)內(nèi)從這里開(kāi)始

認(rèn)真做教育 專心促就業(yè)

可以兩人一起玩的坦克大戰(zhàn)

  • 發(fā)布:IT培訓(xùn)
  • 來(lái)源:達(dá)內(nèi)
  • 時(shí)間:2014-12-04 00:56

參賽學(xué)員:趙浩

所獲獎(jiǎng)項(xiàng):一等獎(jiǎng)

寫這個(gè)游戲已經(jīng)有一段時(shí)間了,一直在實(shí)現(xiàn)各種新功能,從最開(kāi)始的地圖上只有坦克,發(fā)子彈還是一個(gè)大問(wèn)題到現(xiàn)在可以兩個(gè)人一起玩,還是花了不少心思的,現(xiàn)在坦克的速度更快,電腦坦克也不會(huì)撞墻.雖然游戲性沒(méi)有經(jīng)典坦克大戰(zhàn)那么強(qiáng),但是還是可以用來(lái)休閑娛樂(lè)一下,這個(gè)用了很多最近學(xué)到的新知識(shí),模仿俄羅斯方塊,還有一些小技巧,比如可以同時(shí)按觸發(fā)多個(gè)按鍵事件,對(duì)子彈的處理等.

左邊的坦克用W D S A控制移動(dòng),H發(fā)射子彈,每次最多出現(xiàn)5顆子彈,右邊的坦克用上下左右箭頭控制移動(dòng),L鍵發(fā)射子彈,互不干擾.Q鍵可以直接退出游戲,游戲結(jié)束后按Y鍵可以繼續(xù)游戲.為了結(jié)構(gòu)清晰游戲分為Mywar Shoot Tanks 3個(gè)類.

/********************MyWar***********************/  

package tank;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Arrays;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyWar{
    public static void main(String[] args) {
        JFrame frame = new JFrame("坦克大戰(zhàn)");//新建一個(gè)窗口
        War war = new War();//創(chuàng)建一個(gè)War類的對(duì)象
        frame.add(war);//把war添加到窗口中
        frame.setSize(750,530);//窗口寬高
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//關(guān)閉時(shí)結(jié)束進(jìn)程
        frame.setLocationRelativeTo(null);//使窗口居中
        frame.setVisible(true);//這句是干啥的?
        war.action();//啟動(dòng)(war)戰(zhàn)斗,親,可以游戲了!
    }
}

class War extends JPanel{
    private boolean sUp,sDown,sRight,sLeft,sH;//定義右邊坦克按鍵的開(kāi)關(guān)
    private boolean sW,sD,sS,sA,sL;//定義左邊坦克按鍵的開(kāi)關(guān)
    public static final int WIDTH=750;//定義地圖寬度
    public static final int HEIGHT=530;//定義地圖高度
    private int score;//設(shè)置分?jǐn)?shù)
    private boolean gameOver;//gameover=false表示游戲沒(méi)有結(jié)束
    private Timer timer;//剛學(xué)的東西
    private int shootNum,shootNum1;//可以射擊的子彈數(shù),防止作弊
    MyTank[] myTank=new MyTank[2];//定義一個(gè)我方坦克對(duì)象數(shù)組
    EnemyTanks[] enemyTank=new EnemyTanks[5];//初始化敵人坦克的數(shù)量
    EnemyTanks newEnemyTank;//用來(lái)產(chǎn)生一輛敵人的坦克,補(bǔ)充死去的T_T
    Random r = new Random();
    /**用于產(chǎn)生一輛新的敵人坦克,返回參數(shù)是EnemyTanks類型*/
    public EnemyTanks nextTank(){
        int x = r.nextInt(2)*WIDTH;//隨機(jī)x的值,坦克出生在角落
        int y=r.nextInt(2)*HEIGHT;//隨機(jī)y的值,坦克出生在角落
        int step=r.nextInt(4)+1;//速度
        int direct=r.nextInt(4)+1;//方向
        int who = r.nextInt(3)+1;//誰(shuí)?
        newEnemyTank=new EnemyTanks(x,y,step,direct,who,true);
        return newEnemyTank;//返回一個(gè)新坦克
    }
    public void action(){
        startGame();//開(kāi)始游戲函數(shù)
        KeyAdapter l = new KeyAdapter(){//鍵盤監(jiān)聽(tīng)
            public void keyPressed(KeyEvent e){
                int key = e.getKeyCode();
                if(key==KeyEvent.VK_Q){
                    System.exit(0);//Q關(guān)閉進(jìn)程結(jié)束游戲
                }
                if(gameOver){
                    if(key==KeyEvent.VK_Y){
                        startGame();//Y鍵開(kāi)始游戲
                    }
                return;
                }
                switch(key){
                case KeyEvent.VK_W:sW=true;break;
                case KeyEvent.VK_A:sA=true;break;
                case KeyEvent.VK_D:sD=true;break;
                case KeyEvent.VK_S:sS=true;break;
                case KeyEvent.VK_L:sL=true;break;
                case KeyEvent.VK_RIGHT:sRight=true;break;
                case KeyEvent.VK_LEFT:sLeft=true;break;
                case KeyEvent.VK_DOWN:sDown=true;break;
                case KeyEvent.VK_UP:sUp=true;break;
                case KeyEvent.VK_H:sH=true;break;
                }
                repaint();
            }
            public void keyReleased(KeyEvent e) {
                int key = e.getKeyCode();
                switch(key){
                case KeyEvent.VK_W:sW=false;break;
                case KeyEvent.VK_A:sA=false;break;
                case KeyEvent.VK_D:sD=false;break;
                case KeyEvent.VK_S:sS=false;break;
                case KeyEvent.VK_H:sH=false;break;
                case KeyEvent.VK_RIGHT:sRight=false;break;
                case KeyEvent.VK_LEFT:sLeft=false;break;
                case KeyEvent.VK_DOWN:sDown=false;break;
                case KeyEvent.VK_UP:sUp=false;break;
                case KeyEvent.VK_L:sL=false;break;
                }
            }
        };
        this.requestFocus();
        this.addKeyListener(l);
        
    }
    public void level(){//每5分增加一輛敵人的坦克
        int length = score/5+5;
        if(length>enemyTank.length){
            enemyTank=Arrays.copyOf(enemyTank,enemyTank.length+1);//坦克數(shù)組擴(kuò)容
            enemyTank[enemyTank.length-1]=nextTank();//初始化數(shù)組最后的一輛坦克
            enemyTank[enemyTank.length-1].start();//啟動(dòng)這個(gè)坦克的線程
        }
    }
    public void startGame(){
        cleanShoot();//清空子彈
        shootNum=5;//可以發(fā)射的子彈數(shù)為5
        shootNum1=5;
        score=0;
        myTank[0]= new MyTank(550,370,4,1,-1,true);//初始化我的坦克
        myTank[1]= new MyTank(100,100,4,1,0,true);
        for (int i = 0; i < enemyTank.length; i++) {//初始化敵人的坦克
            if(gameOver){//游戲結(jié)束,關(guān)閉每個(gè)坦克的線程
                enemyTank[i].s=false;
            }
        }
        enemyTank=new EnemyTanks[5];
        for (int i = 0; i < enemyTank.length; i++) {//初始化敵人的坦克
            enemyTank[i]=nextTank();
        }
        gameOver=false;//游戲沒(méi)有結(jié)束,表示開(kāi)始
        myTank[0].start();//啟動(dòng)我的坦克線程
        myTank[1].start();
        for (int i = 0; i < enemyTank.length; i++) {//啟動(dòng)敵人坦克線程
            enemyTank[i].start();
        }
        timer = new Timer();//匿名內(nèi)部類Timer
        timer.schedule(new TimerTask(){
            public void run(){//重寫run()函數(shù)
                repaint();
                shootAndRun();
            }
        }, 0,50);//50毫秒執(zhí)行一次
    }
    /**檢查游戲是否結(jié)束*/
    public void checkGameOver(){//模仿俄羅斯方塊里面寫的
        if(myTank[0].isLive()||myTank[1].isLive()){
            return;
        }
        gameOver = true;
        timer.cancel();
        repaint();
    }
    public void shootAndRun(){
        if(sW){//如果開(kāi)關(guān)sW=true就執(zhí)行{}里面的代碼
            myTank[1].moveUp();
        }else if(sD){
            myTank[1].moveRight();
        }else if(sS){
            myTank[1].moveDown();
        }else if(sA){
            myTank[1].moveLeft();
        }if(sH&&myTank[1].isLive()){//如果sL=true并且坦克是活的,就執(zhí)行
            if(shootNum1>=0){//如果允許的子彈數(shù)小于于0了,不執(zhí)行
                myTank[1].shoot();
                shootNum1--;//控制子彈數(shù)量,射擊一次,子彈減少,消失加1
            }
        }
        if(sUp){
            myTank[0].moveUp();
        }else if(sRight){
            myTank[0].moveRight();
        }else if(sLeft){
            myTank[0].moveLeft();
        }else if(sDown){
            myTank[0].moveDown();
        }if(sL&&myTank[0].isLive()){
            if(shootNum>=0){
                myTank[0].shoot();
                shootNum--;//控制子彈數(shù)量,射擊一次,子彈減少,消失加1
            }
        }
    }
    public void paint(Graphics g){
        g.setColor(Color.white);
        g.fillRect(0, 0, this.getWidth(), this.getHeight());//畫背景
        paintWall(g);//畫墻
        //畫我的坦克
        paintTank(myTank[1].getX(),myTank[1].getY(),g,myTank[1].getDirect(),myTank[1].getWho(),myTank[1].isLive());
        paintTank(myTank[0].getX(),myTank[0].getY(),g,myTank[0].getDirect(),myTank[0].getWho(),myTank[0].isLive());
        for (int i = 0; i < enemyTank.length; i++) {//畫敵人的坦克
            paintTank(enemyTank[i].getX(),enemyTank[i].getY(),g,enemyTank[i].getDirect(),enemyTank[i].getWho(),enemyTank[i].isLive());
        }
        paintShoot(g);//畫我射擊的子彈
        paintEemyShoot(g);//畫敵人發(fā)出的子彈
        paintScore(g);//畫分?jǐn)?shù),及字符
        //paintMap(g);
    }
/*    public void paintMap(Graphics g){//這是個(gè)方法可以生成漂亮的東西
        for (int j = 0; j < 3; j++) {
            Random color=new Random(); //通過(guò)Random生成隨機(jī)顏色
            int r = color.nextInt(256);
            int g1 = color.nextInt(256);
            int b = color.nextInt(256);
            g.setColor(new Color(r, g1, b));
            g.fillOval(color.nextInt(750), color.nextInt(530), 5, 5);
        }
        
    }*/
    
    public void paintScore(Graphics g){//畫字符相關(guān)的
        g.setColor(Color.lightGray);
        Font f = getFont();
        Font font = new Font(f.getName(),Font.BOLD,0x1e);
        int x = 130;
        int y = 275;
        String str = "SCORE:"+this.score;
        g.setFont(font);
        g.drawString(str, x, y);
        str="TANK:"+enemyTank.length ;
        x+=170;
        g.drawString(str, x, y);
        x+=140;
        str = "[Q]Quit!";
        if(gameOver){
            str = "[Y]Start!";
        }
        g.drawString(str, x, y);
    }
    public void paintWall(Graphics g){//畫中間的柱子
        g.setColor(Color.LIGHT_GRAY);
        g.fill3DRect(WIDTH/2-45,150 , 40, HEIGHT-300, false);
        g.fill3DRect(130,HEIGHT/2-20 , WIDTH-300, 40, false);
    }
    /**畫自己坦克子彈,同時(shí)判斷子彈有沒(méi)有擊中敵人*/
    public void paintShoot(Graphics g){
        ShootDispeal();
        for (int i = 0; i < Shoot.myShoot.length; i+=4) {
            if(Shoot.myShoot[i]==0&&Shoot.myShoot[i+1]==0){
                continue;
            }
            g.setColor(Color.RED);
            g.fillOval(Shoot.myShoot[i], Shoot.myShoot[i+1], 10, 10);
            int x = Shoot.myShoot[i];
            int y = Shoot.myShoot[i+1];
            for (int j = 0; j < enemyTank.length; j++) {
                int ex = enemyTank[j].getX();
                int ey = enemyTank[j].getY();
                if(x>ex&&x<ex+40&&y>ey&&y<ey+40){
                    score+=1;
                    level();
                    enemyTank[j].s=false;//坦克死亡,線程關(guān)閉
                    enemyTank[j]=nextTank();
                    enemyTank[j].start();
                    Shoot.myShoot[i]=0;Shoot.myShoot[i+1]=0;//子彈消失
                    Shoot.myShoot[i+2]=0;Shoot.myShoot[i+3]=0;
                    shootNum++;
                    shootNum1++;
                }
            }
            Shoot.myShoot[i]+=Shoot.myShoot[i+2];
            Shoot.myShoot[i+1]+=Shoot.myShoot[i+3];
        }
    }
    /**畫敵人發(fā)出的子彈,同時(shí)判斷是否擊中了我的坦克*/
    public void paintEemyShoot(Graphics g){
        ShootDispeal();
        for (int i = 0; i < Shoot.enemyShoot.length; i+=4) {
            if(Shoot.enemyShoot[i]==0&&Shoot.enemyShoot[i+1]==0){
                continue;
            }
            g.setColor(Color.blue);
            g.fillOval(Shoot.enemyShoot[i], Shoot.enemyShoot[i+1], 10, 10);
            int x = Shoot.enemyShoot[i];
            int y = Shoot.enemyShoot[i+1];
            int mx = myTank[0].getX();
            int my = myTank[0].getY();
            int mx1 = myTank[1].getX();
            int my1 = myTank[1].getY();
            if(x>mx&&x<mx+40&&y>my&&y<my+40){
                myTank[0].setLive(false);
                checkGameOver();
            }
            if(x>mx1&&x<mx1+40&&y>my1&&y<my1+40){
                myTank[1].setLive(false);
                checkGameOver();
            }
            Shoot.enemyShoot[i]+=Shoot.enemyShoot[i+2];//根據(jù)步伐,改變子彈的坐標(biāo)
            Shoot.enemyShoot[i+1]+=Shoot.enemyShoot[i+3];
        }
    }
    /**畫坦克*/
    public void paintTank(int x,int y,Graphics g,int direct,int who,boolean isLive){
        Color color = null;//設(shè)置顏色
        if(isLive){
            if(who==0){//我的坦克
                color=Color.green;
            }else if(who==-1){
                color=Color.yellow;
            }else if(who==1){//1,2,3敵人的坦克,3種顏色
                color=Color.red;    
            }else if(who==2){
                color=Color.magenta;
            }else if(who==3){
                color=Color.CYAN;
            }    
            switch(direct){//根據(jù)方向畫出不同方向的坦克
            case 1:g.setColor(color);paintUpTank(x,y,g);break;
            case 2:g.setColor(color);paintRightTank(x,y,g);break;
            case 3:g.setColor(color);paintDownTank(x,y,g);break;
            case 4:g.setColor(color);paintLeftTank(x,y,g);break;
            }
        }
    }
    /**純畫圖打造坦克*/
    public void paintUpTank(int x,int y,Graphics g){
        g.fill3DRect(x, y, 15, 50, false);
        g.fill3DRect(x+35, y, 15, 50, false);
        g.fill3DRect(x+15, y+10, 20, 30, false);
        g.setColor(Color.black);
        g.fill3DRect(x+23, y-10, 5, 33, false);
        g.setColor(Color.yellow);
        g.fillOval(x+20, y+18, 10, 10);
    }
    public void paintLeftTank(int x,int y,Graphics g){
        g.fill3DRect(x, y, 50, 15, false);
        g.fill3DRect(x, y+35, 50, 15, false);
        g.fill3DRect(x+10, y+15, 30, 20, false);
        g.setColor(Color.black);
        g.fill3DRect(x-10, y+22, 33, 5, false);
        g.setColor(Color.yellow);
        g.fillOval(x+20, y+18, 10, 10);
    }
    public void paintDownTank(int x,int y,Graphics g){
        g.fill3DRect(x, y, 15, 50, false);
        g.fill3DRect(x+35, y, 15, 50, false);
        g.fill3DRect(x+15, y+10, 20, 30, false);
        g.setColor(Color.black);
        g.fill3DRect(x+23, y+25, 5, 33, false);
        g.setColor(Color.yellow);
        g.fillOval(x+20, y+18, 10, 10);
    }
    public void paintRightTank(int x,int y,Graphics g){
        g.fill3DRect(x, y, 50, 15, false);
        g.fill3DRect(x, y+35, 50, 15, false);
        g.fill3DRect(x+10, y+15, 30, 20, false);
        g.setColor(Color.black);
        g.fill3DRect(x+23, y+22, 33, 5, false);
        g.setColor(Color.yellow);
        g.fillOval(x+20, y+18, 10, 10);
    }
    /**重新開(kāi)始游戲的時(shí)候會(huì)清空子彈數(shù)組里面的數(shù)據(jù)*/
    public void cleanShoot(){
        for (int i = 0; i < Shoot.enemyShoot.length; i++) {
            Shoot.enemyShoot[i]=0;
        }
        for (int i = 0; i < Shoot.myShoot.length; i++) {
            Shoot.myShoot[i]=0;
        }
    }
    /**子彈消失了*/
    public void ShootDispeal(){
        for (int i = 0; i < Shoot.myShoot.length; i+=4) {//撞到邊緣
            if(Shoot.myShoot[i]<0||Shoot.myShoot[i]>WIDTH||Shoot.myShoot[i+1]<0||Shoot.myShoot[i+1]>HEIGHT){
                Shoot.myShoot[i]=0;Shoot.myShoot[i+1]=0;
                Shoot.myShoot[i+2]=0;Shoot.myShoot[i+3]=0;
                shootNum++;
                shootNum1++;
            }
            int x=Shoot.myShoot[i];
            int y=Shoot.myShoot[i+1];
            //撞到柱子
            if((x>330&&x<360&&y>150&&y<380)||(x>130&&x<570&&y>240&&y<280)){
                Shoot.myShoot[i]=0;Shoot.myShoot[i+1]=0;
                Shoot.myShoot[i+2]=0;Shoot.myShoot[i+3]=0;
                shootNum++;
                shootNum1++;
            }
        }
        for (int i = 0; i < Shoot.enemyShoot.length; i+=4) {//撞到邊緣
            if(Shoot.enemyShoot[i]<0||Shoot.enemyShoot[i]>WIDTH||Shoot.enemyShoot[i+1]<0||Shoot.enemyShoot[i+1]>HEIGHT){
                Shoot.enemyShoot[i]=0;Shoot.enemyShoot[i+1]=0;
                Shoot.enemyShoot[i+2]=0;Shoot.enemyShoot[i+3]=0;
            }
            int x=Shoot.enemyShoot[i];
            int y=Shoot.enemyShoot[i+1];
            //撞到柱子
            if((x>330&&x<360&&y>150&&y<380)||(x>130&&x<570&&y>240&&y<280)){
                Shoot.enemyShoot[i]=0;Shoot.enemyShoot[i+1]=0;
                Shoot.enemyShoot[i+2]=0;Shoot.enemyShoot[i+3]=0;
            }
        }
    }
}

/*******************************************/  


/********************Tanks***********************/  

package tank;

import java.util.Random;
/**坦克父類,繼承了線程*/
public class Tanks extends Thread{
    private int x;//坦克坐標(biāo)x
    private int y;//坦克坐標(biāo)y
    private int step;//坦克的速度
    private int direct;//方向,1表示向上,2表示向右,3表示向下,4表示向左
    private int who;//坦克標(biāo)識(shí),0和-1表示自己的坦克,1,2,3表示敵人的坦克,顏色隨機(jī).
    private boolean isLive = true;//判斷坦克是否死亡
    Shoot shoot;//shoot坦克的射擊
    public Tanks(int x, int y, int step, int direct,int who ,boolean isLive) {
        super();
        this.x = x;
        this.y = y;
        this.step = step+2;
        this.direct = direct;
        this.who = who;
        this.isLive = isLive;
    }
    public boolean canMove(){//boolean返回值類型.判斷坦克是否能移動(dòng),比如撞墻了.
        if(x<0){
            x=0;
            return false;
        }else if(x>690){
            x=690;
            return false;
        }else if(y<0){
            y=0;
            return false;
        }else if(y>450){
            y=450;
            return false;
        }else if(x>270&&x<370&&y>100&&y<380){//撞到豎著的柱子
            if(x-270<20){
                x=270;
            }else{
                x=370;
            }
            return false;
        }else if(x>85&&x<570&&y>195&&y<290){//撞到橫著的柱子
            if(y-195<10){
                y=190;
            }else{
                y=290;
            }
            return false;
        }
        return true;
    }
    public void moveUp(){//坦克向上移動(dòng)一步
        if(canMove()){
            y-=step;
            direct=1;    
        }
    }
    public void moveDown(){//坦克向下移動(dòng)一步
        if(canMove()){
            y+=step;
            direct=3;    
        }
    }
    public void moveLeft(){//坦克向左移動(dòng)一步
        if(canMove()){
            x-=step;
            direct=4;    
        }
    }
    public void moveRight(){//坦克向右移動(dòng)一步
        if(canMove()){
            x+=step;
            direct=2;
        }
    }
    public void shoot(){//每次射擊調(diào)用此函數(shù)
        shoot = new Shoot(x,y,direct,step,who);
    }
    public String toString() {//用于調(diào)試
        return "Tanks [direct=" + direct + ", isLive="
                + isLive + ", step=" + step + ", x=" + x + ", y=" + y + "]";
    }
    /**以下是get() set()函數(shù)*/
    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 int getStep() {
        return step;
    }
    public void setStep(int step) {
        this.step = step;
    }
    public int getDirect() {
        return direct;
    }
    public void setDirect(int direct) {
        this.direct = direct;
    }
    public boolean isLive() {
        return isLive;
    }
    public void setLive(boolean isLive) {
        this.isLive = isLive;
    }
    public void setWho(int who) {
        this.who = who;
    }
    public int getWho() {
        return who;
    }
}
class MyTank extends Tanks{//我的坦克繼承了Tanks
    public MyTank(int x, int y, int step, int direct, int who ,boolean isLive) {
        super(x, y, step, direct, who, isLive);
    }
}
class EnemyTanks extends Tanks{//敵人的坦克繼承了tanks,也繼承了父類的線程
    private int time = 500;//線程占用時(shí)間500毫秒
    boolean s=true;//定義一個(gè)boolean的開(kāi)關(guān),坦克死亡,關(guān)閉開(kāi)關(guān),線程死亡.
    public EnemyTanks(int x, int y, int step, int direct, int who, boolean isLive) {
        super(x, y, step, direct, who,isLive);
    }
    public void move(){//敵人的坦克自己移動(dòng)
        Random r = new Random();
        int random = r.nextInt(50);
        int r1=r.nextInt(4);
        if(!(r1==0)){//如果r1=0,就射擊一次
            shoot();
        }
        for (int i = 0; i < random; i++) {//random表示坦克的一次隨機(jī)移動(dòng)的距離
            try {
                Thread.sleep(50);//線程sleep,移動(dòng)使移動(dòng)看起來(lái)自然一點(diǎn)
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if(r1==0){//根據(jù)r1的值判斷,此次移動(dòng)往那個(gè)方向
                if(this.getY()==0||this.getY()==290){
                    r1=3;
                }else{
                    moveUp();
                }
            }else if(r1==1){
                if(this.getX()==690||this.getX()==270){
                    r1=2;
                }else{
                    moveRight();
                }
            }else if(r1==2){
                if(this.getX()==0||this.getX()==370){
                    r1=1;
                }else{
                    moveLeft();
                }
            }else if(r1==3){
                if(this.getY()==450||this.getY()==190){
                    r1=0;
                }else{
                    moveDown();
                    
                }
            }
        }
    }
    public void run(){//繼承線程功能,必須實(shí)現(xiàn)run()函數(shù)
        while(s){//s=true表示坦克沒(méi)有死亡.s=false跳出死循環(huán),坦克死亡
            move();
            try {
                Thread.sleep(time);//每次線程占用時(shí)間500毫秒
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

/*******************************************/  


/********************Shoot***********************/  

package tank;
/**Shoot類,處理坦克的射擊*/
public class Shoot {
    static int[] myShoot = new int[40];//我的坦克子彈放在數(shù)組里面
    static int[] enemyShoot = new int[100];//所有敵人共享這個(gè)數(shù)組
    private int direct;//坦克的方向
    private int who;//是敵人的坦克?還是自己的坦克
    private int x1;//根據(jù)情況調(diào)整后子彈x的坐標(biāo)
    private int y1;//根據(jù)情況調(diào)整后子彈y的坐標(biāo)
    private int stepx;//子彈在x軸上移動(dòng)的速度
    private int stepy;//子彈在y軸上移動(dòng)的速度
    private int speed;//坦克的速度
    static int indexMy=0;//我的子彈索引,數(shù)組滿了之后indexMy=0;每次加4
    static int indexEnemy=0;//敵人子彈索引,數(shù)組滿了之后indexEnemy=0;每次加4
    public Shoot(int x,int y,int direct,int step,int who){
        speed=step+8;//根據(jù)坦克的速度,設(shè)定子彈的速度
        this.direct=direct;
        this.who=who;
        if(direct==1){//if else用來(lái)調(diào)整子彈射擊出去的位置
            x1=x+20;
            y1=y;
            stepx=0;
            stepy=-speed;
        }else if(direct==2){
            x1=x+40;
            y1=y+20;
            stepx=speed;
            stepy=0;
        }else if(direct==3){
            x1=x+20;
            y1=y+40;
            stepx=0;
            stepy=speed;
        }else if(direct==4){
            x1=x;
            y1=y+20;
            stepx=-speed;
            stepy=0;
        }
        if(indexEnemy==enemyShoot.length-4){//表示數(shù)組滿了
            indexEnemy=0;
        }if(indexMy==myShoot.length-4){//表示數(shù)組滿了
            indexMy=0;
        }
        if(who==1||who==2||who==3){//敵人的坦克
            enemyShoot[indexEnemy]=x1;//子彈的坐標(biāo)x
            enemyShoot[indexEnemy+1]=y1;//子彈的坐標(biāo)y
            enemyShoot[indexEnemy+2]=stepx;//子彈在x軸移動(dòng)的步伐
            enemyShoot[indexEnemy+3]=stepy;//在t軸移動(dòng)的步伐
            indexEnemy+=4;
        }else if(who==0||who==-1){//我的坦克
            myShoot[indexMy]=x1;
            myShoot[indexMy+1]=y1;
            myShoot[indexMy+2]=stepx;
            myShoot[indexMy+3]=stepy;
            indexMy+=4;
        }
    }
    
}

【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!

相關(guān)推薦
最新資訊
免費(fèi)試聽(tīng)課程
  • 全部課程
  • IT課程
  • 設(shè)計(jì)課程
  • 運(yùn)營(yíng)課程
Free courses
最新開(kāi)班時(shí)間
  • 北京
  • 上海
  • 廣州
  • 深圳
  • 南京
  • 成都
  • 武漢
  • 西安
  • 青島
  • 天津
  • 杭州
  • 重慶
  • 哈爾濱
  • 濟(jì)南
  • 沈陽(yáng)
  • 合肥
  • 鄭州
  • 長(zhǎng)春
  • 蘇州
  • 長(zhǎng)沙
  • 昆明
  • 太原
  • 無(wú)錫
  • 石家莊
  • 南寧
  • 佛山
  • 珠海
  • 寧波
  • 保定
  • 呼和浩特
  • 洛陽(yáng)
  • 煙臺(tái)
  • 運(yùn)城
  • 濰坊
  • 開(kāi)課名稱
  • 開(kāi)班時(shí)間
  • 搶座
  • 咨詢
  • 開(kāi)課名稱
  • 開(kāi)班時(shí)間
  • 搶座
  • 咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 云計(jì)算全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 人工智能工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 數(shù)據(jù)分析與商業(yè)智能
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業(yè)設(shè)計(jì)變現(xiàn)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運(yùn)營(yíng)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 云計(jì)算全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 云計(jì)算全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 云計(jì)算全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業(yè)設(shè)計(jì)變現(xiàn)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運(yùn)營(yíng)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 云計(jì)算全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業(yè)設(shè)計(jì)變現(xiàn)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運(yùn)營(yíng)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 云計(jì)算全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 云計(jì)算全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 數(shù)據(jù)分析與商業(yè)智能
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業(yè)設(shè)計(jì)變現(xiàn)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運(yùn)營(yíng)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運(yùn)營(yíng)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業(yè)設(shè)計(jì)變現(xiàn)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 云計(jì)算全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業(yè)設(shè)計(jì)變現(xiàn)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運(yùn)營(yíng)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 云計(jì)算全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 新媒體電商運(yùn)營(yíng)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業(yè)設(shè)計(jì)變現(xiàn)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業(yè)設(shè)計(jì)變現(xiàn)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 云計(jì)算全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業(yè)設(shè)計(jì)變現(xiàn)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Java全鏈路開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業(yè)設(shè)計(jì)變現(xiàn)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AGI商業(yè)設(shè)計(jì)變現(xiàn)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 網(wǎng)絡(luò)安全工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • C++物聯(lián)網(wǎng)工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • Web全棧開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 軟件測(cè)試工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • AI大模型全棧工程師
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 鴻蒙原生應(yīng)用開(kāi)發(fā)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • 智能職場(chǎng)辦公
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • VFX商業(yè)視效設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
    • UID全鏈路設(shè)計(jì)
    • 10月30日
    • 火熱搶座中
    • 立即咨詢
預(yù)約申請(qǐng)?jiān)嚶?tīng)課
收起