protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo)
        {
            base.OnRenderSizeChanged(sizeInfo);

            int nPieceWidth  = (int)sizeInfo.NewSize.Width / m_Board.GetWidth();
            int nPieceHeight = (int)sizeInfo.NewSize.Height / m_Board.GetHeight();

            int nMinPieceSize = Math.Min(nPieceWidth, nPieceHeight);

            m_nPieceSize = nMinPieceSize;
            this.InvalidateVisual();
        }
Пример #2
0
        public bool HasPieceAt(int nX, int nY)
        {
            if (nX < 0 || nX >= m_Board.GetWidth() || nY < 0 || nY >= m_Board.GetHeight())
            {
                return(false);
            }

            if (nX >= m_nX && nX < m_nX + 4 && nY >= m_nY && nY < m_nY + 4)
            {
                int nOffsetX = nX - m_nX;
                int nOffsetY = nY - m_nY;
                if (nOffsetX < 0 || nOffsetX >= 4 || nOffsetY < 0 || nOffsetY >= 4)
                {
                    return(false);
                }

                if (m_PieceBoard[nOffsetX, nOffsetY] == true)
                {
                    return(true);
                }
            }

            return(false);
        }
Пример #3
0
 public TetrisPiece(TetrisBoard board, TetrisPieceColor eColor)
 {
     m_Board  = board;
     m_eColor = eColor;
     m_nX     = board.GetWidth() / 2;
     m_nY     = board.GetHeight();
     //m_eFlip = TetrisPieceFlip.Normal;
     m_PieceBoard = new bool[4, 4];
     for (int x = 0; x < 4; x++)
     {
         for (int y = 0; y < 4; y++)
         {
             m_PieceBoard[x, y] = false;
         }
     }
     if (m_eColor == TetrisPieceColor.Red)
     {
         m_PieceBoard[0, 0] = true;
         m_PieceBoard[1, 0] = true;
         m_PieceBoard[2, 0] = true;
         m_PieceBoard[3, 0] = true;
     }
     else if (m_eColor == TetrisPieceColor.Yellow)
     {
         m_PieceBoard[0, 0] = true;
         m_PieceBoard[1, 0] = true;
         m_PieceBoard[2, 0] = true;
         m_PieceBoard[2, 1] = true;
     }
     else if (m_eColor == TetrisPieceColor.Purple)
     {
         m_PieceBoard[1, 1] = true;
         m_PieceBoard[1, 0] = true;
         m_PieceBoard[2, 0] = true;
         m_PieceBoard[3, 0] = true;
     }
     else if (m_eColor == TetrisPieceColor.LtGray)
     {
         m_PieceBoard[1, 0] = true;
         m_PieceBoard[1, 1] = true;
         m_PieceBoard[2, 0] = true;
         m_PieceBoard[3, 0] = true;
     }
     else if (m_eColor == TetrisPieceColor.LtBlue)
     {
         m_PieceBoard[0, 0] = true;
         m_PieceBoard[0, 1] = true;
         m_PieceBoard[1, 0] = true;
         m_PieceBoard[1, 1] = true;
     }
     else if (m_eColor == TetrisPieceColor.Green)
     {
         m_PieceBoard[3, 0] = true;
         m_PieceBoard[2, 0] = true;
         m_PieceBoard[2, 1] = true;
         m_PieceBoard[1, 1] = true;
     }
     else
     {
         m_PieceBoard[0, 0] = true;
         m_PieceBoard[1, 0] = true;
         m_PieceBoard[1, 1] = true;
         m_PieceBoard[2, 1] = true;
     }
 }
Пример #4
0
 public TetrisPiece( TetrisBoard board, TetrisPieceColor eColor )
 {
     m_Board = board;
      m_eColor = eColor;
      m_nX = board.GetWidth() / 2;
      m_nY = board.GetHeight();
      //m_eFlip = TetrisPieceFlip.Normal;
      m_PieceBoard = new bool[4, 4];
      for(int x=0; x<4; x++ )
      {
     for(int y=0; y<4; y++ )
     {
        m_PieceBoard[x, y] = false;
     }
      }
      if ( m_eColor == TetrisPieceColor.Red )
      {
     m_PieceBoard[0, 0] = true;
     m_PieceBoard[1, 0] = true;
     m_PieceBoard[2, 0] = true;
     m_PieceBoard[3, 0] = true;
      }
      else if( m_eColor == TetrisPieceColor.Yellow )
      {
     m_PieceBoard[0, 0] = true;
     m_PieceBoard[1, 0] = true;
     m_PieceBoard[2, 0] = true;
     m_PieceBoard[2, 1] = true;
      }
      else if ( m_eColor == TetrisPieceColor.Purple )
      {
     m_PieceBoard[1, 1] = true;
     m_PieceBoard[1, 0] = true;
     m_PieceBoard[2, 0] = true;
     m_PieceBoard[3, 0] = true;
      }
      else if ( m_eColor == TetrisPieceColor.LtGray )
      {
     m_PieceBoard[1, 0] = true;
     m_PieceBoard[1, 1] = true;
     m_PieceBoard[2, 0] = true;
     m_PieceBoard[3, 0] = true;
      }
      else if ( m_eColor == TetrisPieceColor.LtBlue )
      {
     m_PieceBoard[0, 0] = true;
     m_PieceBoard[0, 1] = true;
     m_PieceBoard[1, 0] = true;
     m_PieceBoard[1, 1] = true;
      }
      else if( m_eColor == TetrisPieceColor.Green )
      {
     m_PieceBoard[3, 0] = true;
     m_PieceBoard[2, 0] = true;
     m_PieceBoard[2, 1] = true;
     m_PieceBoard[1, 1] = true;
      }
      else
      {
     m_PieceBoard[0, 0] = true;
     m_PieceBoard[1, 0] = true;
     m_PieceBoard[1, 1] = true;
     m_PieceBoard[2, 1] = true;
      }
 }