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(); }
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); }
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; } }
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; } }