⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tetrics.java~77~

📁 JBuilder实现的具有单机
💻 JAVA~77~
📖 第 1 页 / 共 2 页
字号:

            case 1:
            //  X orange;
                //XXX
            m_nPieceValue=200;
            m_prePiece[0]=new Square(middle,top-2,5);
            m_prePiece[1]=new Square(middle,top-1,5);
            m_prePiece[2]=new Square(middle-1,top-2,5);
            m_prePiece[3]=new Square(middle+1,top-2,5);
            break;

            case 2:
                //XX  green;
            m_nPieceValue=180;
            m_prePiece[0]=new Square(middle,top-2,2);
            m_prePiece[1]=new Square(middle-1,top-1,2);
            m_prePiece[2]=new Square(middle,top-1,2);
            m_prePiece[3]=new Square(middle+1,top-2,2);
            break;

            case 3:
                //XX  blue;
            m_nPieceValue=180;
            m_prePiece[0]=new Square(middle,top-2,7);
            m_prePiece[1]=new Square(middle+1,top-1,7);
            m_prePiece[2]=new Square(middle,top-1,7);
            m_prePiece[3]=new Square(middle-1,top-2,7);
            break;

            case 4:
                //XX  light blue;
            m_nPieceValue=100;
            m_prePiece[0]=new Square(middle-1,top-1,3);
            m_prePiece[1]=new Square(middle,top-1,3);
            m_prePiece[2]=new Square(middle-1,top-2,3);
            m_prePiece[3]=new Square(middle,top-2,3);
            break;

            case 5:
                //XXX  purle;
            m_nPieceValue=120;
            m_prePiece[0]=new Square(middle,top-1,6);
            m_prePiece[1]=new Square(middle-1,top-1,6);
            m_prePiece[2]=new Square(middle+1,top-1,6);
            m_prePiece[3]=new Square(middle+1,top-2,6);
            break;

            case 6:
                //XXX  yellow;
            m_nPieceValue=120;
            m_prePiece[0]=new Square(middle,top-1,4);
            m_prePiece[1]=new Square(middle+1,top-1,4);
            m_prePiece[2]=new Square(middle-1,top-1,4);
            m_prePiece[3]=new Square(middle-1,top-2,4);
            break;
        }

   }
   /**
    * 将预览的方块转变成正在动的方块
    */

   private void transferPreToCur()
   {
        Square old[]=new Square[4];
        old[0]=old[1]=old[2]=old[3]=new Square(-1,-1,0);

        for(int i=0;i<4;i++)
        {
            m_curPiece[i]=m_prePiece[i];
        }

        m_bGameInPlay=moveSquares(old,m_curPiece);
        if(!m_bGameInPlay)m_tFrame.sendStr("GameOver:"+m_nTheScore);
        // else if(!m_bGameInPlay && m_tFrame!=null) m_tFrame.insertScoreReport(m_nTheScore);
   }
   //去掉可以消去的行
   private void removelines()
   {
        /*outerlabel:
        for(int j=0;j<m_nRows;j++)
        {
                for(int i=0;i<m_nCols;i++)
                  if(m_nField[i][j]==0)
                      continue outerlabel;
                for(int k=j;k<m_nRows-1;k++)
                    for(int i=0;i<m_nCols;i++)
                        m_nField[i][k]=m_nField[i][k+1];
            j-=1;
            m_tFrame.sendStr("RemoveLine");
      }*/


    int count_move=0;
     outerlabel:
     for (int j = 0; j < m_nRows; j++) {
      for (int i = 0; i < m_nCols; i++) {
        if (m_nField[i][j] == 0) {
          continue outerlabel;
        }
      }
      for (int k = j; k < m_nRows - 1; k++) {
        for (int i = 0; i < m_nCols; i++) {
          m_nField[i][k] = m_nField[i][k + 1];
        }
      }
      j -= 1;

      if(count_move==0)
      new Sound("moveline.wav");

      count_move++;
      if(count_move>4) break;



    }
    if(count_move>0){
      m_tFrame.sendStr("RemoveLine:"+String.valueOf(count_move));
    }


   }

   public void setKey(char s[]){
     for(int i=0;i<s.length;i++)
       key[i]=s[i];
   }

   public boolean keyDown(Event evt,int nKey)
   {
   if(!m_bGameInPlay) return true;
   if(m_bPaused) return true;
   /*
   switch(nKey){
        case key[0]:
        //case 'A':
        //case Event.LEFT:
            moveCurPiece(-1,0,false);
            m_bNeedNewPiece=false;
            repaint();
            break;

        case key[1]:
        //case 'D':
        //case Event.RIGHT:
            moveCurPiece(1,0,false);
            m_bNeedNewPiece=false;
            repaint();
            break;

        case key[2]:
        case 'W':
        //case Event.UP:
            moveCurPiece(0,0,true);
            repaint();
            break;

        case key[3]:
        //case 'S':
        //case Event.DOWN:
            while(moveCurPiece(0,-1,false));
            repaint();
            break;
       }*/

        if (nKey==key[0]){
        moveCurPiece(-1,0,false);
        m_bNeedNewPiece=false;
        repaint();
        }
        else if(nKey==key[1]){
          moveCurPiece(1, 0, false);
          m_bNeedNewPiece = false;
          repaint();
        }
        else if(nKey==key[2]){
          moveCurPiece(0, 0, true);
          repaint();
        }

       else if(nKey==key[3]){

         new Sound("down.WAV");    //when press the key of down
         while (moveCurPiece(0, -1, false));
         repaint();
       }

       return true;
   }

 /*public boolean keyDown(KeyEvent e)
 {
 if(!m_bGameInPlay) return true;
 if(m_bPaused) return true;

 switch(e.getKeyCode()){
      case KeyEvent.VK_A:
          System.out.print("A");
          moveCurPiece(-1,0,false);
          m_bNeedNewPiece=false;
          repaint();
          break;

      case KeyEvent.VK_D:

          moveCurPiece(1,0,false);
          m_bNeedNewPiece=false;
          repaint();
          break;

      case KeyEvent.VK_W:

          moveCurPiece(0,0,true);
          repaint();
          break;

      case KeyEvent.VK_S:

          while(moveCurPiece(0,-1,false));
          repaint();
          break;
     }
     return true;
 }*/



   public synchronized void stop()
   {
        if(m_theThread!=null)
                m_theThread.stop();
        m_theThread=null;
   }

   public synchronized void pause()
   {
        if(m_theThread!=null)
        {
            try
            {
                m_theThread.suspend();
                m_bPaused=true;
            }
            catch(Exception e){e.printStackTrace();}
        }

   }

   public void setPlayLevel(int nLevel)
   {
        m_nPlayLevel=nLevel;
//        System.out.println("m_nPlayLevel="+m_nPlayLevel);

        Graphics g=getGraphics();
               g.setFont(new Font("宋体",0,18));
        int gx=m_nSqLength;
            int gy=m_nSqLength*m_nRows/4+30;
        g.clearRect(gx,gy-25,XOFFSET-gx,25);
        g.drawString("Level:"+m_nPlayLevel,gx,gy);
//        System.out.println("paint m_nPlayLevel="+m_nPlayLevel);

   }

   public int getPlayLevel()
   {
        return m_nPlayLevel;
   }
   public synchronized void addRandomLine(int n)
   {
     // Sound s=new Sound("add.WAV");
     // s.start();

       if (n < 2)return;
       int add=n-1;


       /*
        int nRandom[] = new int[m_nCols];
        boolean bAllZero=true;
        boolean bNoZero=true;
        for(int i=0;i<m_nCols;i++)
        {
            nRandom[i]=(int)(7*Math.random());
            if(nRandom[i]!=0) bAllZero=false;
            else bNoZero=false;
        }
        if(bAllZero)
        {
            nRandom[(int)(m_nCols*Math.random())]=(int)(Math.random()*6+1);
        }
        else if(bNoZero)
        {
            nRandom[(int)(m_nCols*Math.random())]=0;
        }
        */

        int i;
        for(int nCol=0;nCol<m_nCols;nCol++)
            for(int nRow=m_nRows+3;nRow>add-1;nRow--)
            {
                m_nField[nCol][nRow]=m_nField[nCol][nRow-add];
            }

        for(int k=0;k<add;k++){
        //pruduce random line
        int nRandom[] = new int[m_nCols];
        boolean bAllZero=true;
        boolean bNoZero=true;
        for(i=0;i<m_nCols;i++)
        {
            nRandom[i]=(int)(7*Math.random());
            if(nRandom[i]!=0) bAllZero=false;
            else bNoZero=false;
        }
        if(bAllZero)
        {
            nRandom[(int)(m_nCols*Math.random())]=(int)(Math.random()*6+1);
        }
        else if(bNoZero)
        {
            nRandom[(int)(m_nCols*Math.random())]=0;
        }

        //add random line
        for (int nCol = 0; nCol < m_nCols; nCol++)
            m_nField[nCol][k] = nRandom[nCol];
        }


        for(i=0;i<4;i++)
        {
            m_curPiece[i].m_nRow++;
        }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -