public void RemoveHintArrows()
        {
            if (m_ArrowRed1 != null)
            {
                m_ArrowRed1.Close(); m_ArrowRed1 = null;
            }

            if (m_ToTop1 != null)
            {
                m_ToTop1.Close(); m_ToTop1 = null;
            }
            if (m_ToLeft1 != null)
            {
                m_ToLeft1.Close(); m_ToLeft1 = null;
            }
            if (m_ToRight1 != null)
            {
                m_ToRight1.Close(); m_ToRight1 = null;
            }
            if (m_ToDown1 != null)
            {
                m_ToDown1.Close(); m_ToDown1 = null;
            }

            if (m_ArrowBlack1 != null)
            {
                m_ArrowBlack1.Close(); m_ArrowBlack1 = null;
            }

            if (m_ToTop2 != null)
            {
                m_ToTop2.Close(); m_ToTop2 = null;
            }
            if (m_ToLeft2 != null)
            {
                m_ToLeft2.Close(); m_ToLeft2 = null;
            }
            if (m_ToRight2 != null)
            {
                m_ToRight2.Close(); m_ToRight2 = null;
            }
            if (m_ToDown2 != null)
            {
                m_ToDown2.Close(); m_ToDown2 = null;
            }

            int nCntZero = 0;

            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    if (MovementDecision.g_AllocCharacters[i, j] == 0)
                    {
                        nCntZero++;
                    }
                }
            }

            if (nCntZero >= 8 * 8 / 2)
            {
                picRet1.Image = null; picRet2.Image = null; lbStep1.Text = "Paso 1"; lbStep2.Text = "Paso 2";
            }
        }
        private void PlaceHintArrows(int nLeft, int nTop)
        {
            int STEPX = Global.DEF_MAIN_BOARD_W / 8;
            int STEPY = Global.DEF_MAIN_BOARD_H / 8;

            if (Global.g_moveStep1 != Global.MOVEMENT.Empty)
            {
                if (m_ArrowRed1 == null)
                {
                    m_ArrowRed1 = new Arrow(); m_ArrowRed1.Show();
                }

                int nX = nLeft + Global.g_moveStep1.nY * STEPX + STEPX / 2 - 20;
                int nY = nTop + Global.g_moveStep1.nX * STEPY;
                m_ArrowRed1.Location = new Point(nX, nY);

                int nD = Global.g_moveStep1.nD;
                // top
                if (nD == 0)
                {
                    if (m_ToTop1 == null)
                    {
                        m_ToTop1 = new ToTop(); m_ToTop1.Show();
                    }
                    nY = nTop + Global.g_moveStep1.nX * STEPY - (STEPY / 2 - 10);

                    m_ToTop1.Location = new Point(nX, nY);
                }
                else if (nD == 1) // left
                {
                    if (m_ToLeft1 == null)
                    {
                        m_ToLeft1 = new ToLeft(); m_ToLeft1.Show();
                    }

                    nX  = nLeft + Global.g_moveStep1.nY * STEPX - (STEPX / 2 - 20);
                    nY += m_ToLeft1.Height / 2;

                    m_ToLeft1.Location = new Point(nX, nY);
                }
                else if (nD == 2) // right
                {
                    if (m_ToRight1 == null)
                    {
                        m_ToRight1 = new ToRight(); m_ToRight1.Show();
                    }
                    nX  = nLeft + Global.g_moveStep1.nY * STEPX + (STEPX / 2 - 10);
                    nY += m_ToRight1.Height / 2;

                    m_ToRight1.Location = new Point(nX, nY);
                }
                else if (nD == 3) // bottom
                {
                    if (m_ToDown1 == null)
                    {
                        m_ToDown1 = new ToDown(); m_ToDown1.Show();
                    }
                    nY = nTop + Global.g_moveStep1.nX * STEPY + STEPY / 2 - 10;
                    m_ToDown1.Location = new Point(nX, nY);
                }
            }

            if (Global.g_moveStep2 != Global.MOVEMENT.Empty)
            {
                if (m_ArrowBlack1 == null)
                {
                    m_ArrowBlack1 = new BlackArrow(); m_ArrowBlack1.Show();
                }

                int nX = nLeft + Global.g_moveStep2.nY * STEPX + STEPX / 2 - 20;
                int nY = nTop + Global.g_moveStep2.nX * STEPY;
                m_ArrowBlack1.Location = new Point(nX, nY);

                int nD = Global.g_moveStep2.nD;
                // top
                if (nD == 0)
                {
                    if (m_ToTop2 == null)
                    {
                        m_ToTop2 = new ToTop2(); m_ToTop2.Show();
                    }
                    nY = nTop + Global.g_moveStep2.nX * STEPY - (STEPY / 2 - 10);

                    m_ToTop2.Location = new Point(nX, nY);
                }
                else if (nD == 1) // left
                {
                    if (m_ToLeft2 == null)
                    {
                        m_ToLeft2 = new ToLeft2(); m_ToLeft2.Show();
                    }

                    nX  = nLeft + Global.g_moveStep2.nY * STEPX - (STEPX / 2 - 20);
                    nY += m_ToLeft2.Height / 2;

                    m_ToLeft2.Location = new Point(nX, nY);
                }
                else if (nD == 2) // right
                {
                    if (m_ToRight2 == null)
                    {
                        m_ToRight2 = new ToRight2(); m_ToRight2.Show();
                    }
                    nX  = nLeft + Global.g_moveStep2.nY * STEPX + (STEPX / 2 - 10);
                    nY += m_ToRight2.Height / 2;

                    m_ToRight2.Location = new Point(nX, nY);
                }
                else if (nD == 3) // bottom
                {
                    if (m_ToDown2 == null)
                    {
                        m_ToDown2 = new ToDown2(); m_ToDown2.Show();
                    }
                    nY = nTop + Global.g_moveStep2.nX * STEPY + STEPY / 2 - 10;
                    m_ToDown2.Location = new Point(nX, nY);
                }
            }
        }