public void Redraw(
     ICTank iTank,
     EPartOfScreen iPartOfScreen)
 {
     mView.Redraw(
         iTank,
         iPartOfScreen);
 }
        public void Redraw(
            ICTank iTank,
            EPartOfScreen iPartOfScreen)
        {
            Graphics formGraphics = mController.ParentGameWindow.View.CreateGraphics();

            Rectangle windowBounds = mController.ParentGameWindow.View.Bounds;

            int halfTankSize = iTank.GetSize() / 2;

            int tankPosX = iTank.GetPosX();
            int amountOfWindowElementsX = (windowBounds.Width / mController.ParentGameWindow.GetElementSize()) / 2;
            int elementsFirstXIndex     = tankPosX - (amountOfWindowElementsX / 2 - halfTankSize);

            int firstWindowElementX = 0;

            if (iPartOfScreen == EPartOfScreen.RIGHT)
            {
                firstWindowElementX = amountOfWindowElementsX + 1;
            }

            int tankPosY = iTank.GetPosY();
            int amountOfWindowElementsY = windowBounds.Height / mController.ParentGameWindow.GetElementSize();
            int elementsFirstYIndex     = tankPosY - (amountOfWindowElementsY / 2 - halfTankSize);

            CBoardElement[][] boardElements = mController.Elements;

            int boardElementSize = mController.ParentGameWindow.GetElementSize();

            RedrawFrameAndBasicMapElements(
                formGraphics,
                iTank,
                boardElementSize,
                elementsFirstXIndex,
                elementsFirstYIndex,
                firstWindowElementX,
                amountOfWindowElementsX,
                amountOfWindowElementsY);

            RedrawTank(
                formGraphics,
                iTank,
                boardElementSize,
                elementsFirstXIndex,
                elementsFirstYIndex,
                firstWindowElementX,
                amountOfWindowElementsX,
                amountOfWindowElementsY);

            RedrawBonuses(
                formGraphics,
                iTank,
                boardElementSize,
                elementsFirstXIndex,
                elementsFirstYIndex,
                firstWindowElementX,
                amountOfWindowElementsX,
                amountOfWindowElementsY);

            RedrawMissiles(
                formGraphics,
                iTank,
                boardElementSize,
                elementsFirstXIndex,
                elementsFirstYIndex,
                firstWindowElementX,
                amountOfWindowElementsX,
                amountOfWindowElementsY);

            RedrawHitPointsBar(
                formGraphics,
                iTank,
                boardElementSize,
                firstWindowElementX,
                amountOfWindowElementsX);

            RedrawRightBorder(
                formGraphics,
                boardElementSize,
                firstWindowElementX,
                amountOfWindowElementsX,
                amountOfWindowElementsY);

            formGraphics.Dispose();
        }