예제 #1
0
        private static void DrawMineCell(int row, int column, Graphics graphics,
                                         Font font,
                                         Brush fontBrush,
                                         ISkin skin,
                                         MineField mineField)
        {
            Bitmap myImage;

            if (mineField.WasOpened(column, row))
            {
                myImage = mineField.HasMine(column, row) ? skin.Mine : GameConstants.TransparentCell;
            }
            else if (mineField.HasFlag(column, row))
            {
                myImage = skin.Flag;
            }
            else
            {
                myImage = skin.Tile;
            }
            var rect = new Rectangle(column * GameConstants.CellWidth, row * GameConstants.CellHeight,
                                     GameConstants.CellWidth, GameConstants.CellHeight);

            graphics.DrawImage(myImage, rect);
            graphics.DrawRectangle(Pens.Black, rect);
            if (mineField.WasOpened(column, row) &&
                mineField.NeighborMinesCount(column, row) != 0 &&
                !mineField.HasMine(column, row))
            {
                graphics.DrawString(mineField.NeighborMinesCount(column, row).ToString(),
                                    font,
                                    fontBrush,
                                    column * GameConstants.CellWidth + GameConstants.CellWidth / 4,
                                    row * GameConstants.CellHeight + GameConstants.CellHeight / 8);
            }
        }