Example #1
0
        private static bool RevealLayerByX(MapDisplay display, Map mapToUpdate, int currentX, int currentY, int[] leftAndRightAdjust)
        {
            int leftAdjust  = leftAndRightAdjust[0];
            int rightAdjust = leftAndRightAdjust[1];

            for (int i = 0; i <= leftAdjust; i++)
            {
                display.SetCellColor(mapToUpdate, currentX - i, currentY);
            }

            for (int j = 1; j <= rightAdjust; j++)
            {
                display.SetCellColor(mapToUpdate, currentX + j, currentY);
            }

            if (mapToUpdate.Contents[currentX, currentY] != ' ' && mapToUpdate.Contents[currentX, currentY] != 'H' && mapToUpdate.Contents[currentX, currentY] != 'L')
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #2
0
        private static int[] RevealLeftAndRightAtX(MapDisplay display, Map mapToUpdate, int currentX, int currentY)
        {
            bool leftWallHit  = false;
            bool rightWallHit = false;
            int  leftAdjust   = 0;
            int  rightAdjust  = 0;

            while (!leftWallHit)
            {
                display.SetCellColor(mapToUpdate, currentX, currentY);
                leftAdjust++;
                if (mapToUpdate.Contents[currentX - leftAdjust, currentY] != ' ' && mapToUpdate.Contents[currentX - leftAdjust, currentY] != 'H' && mapToUpdate.Contents[currentX - leftAdjust, currentY] != 'L')
                {
                    display.SetCellColor(mapToUpdate, currentX - leftAdjust, currentY);
                    leftWallHit = true;
                }
            }

            while (!rightWallHit)
            {
                display.SetCellColor(mapToUpdate, currentX + rightAdjust, currentY);
                rightAdjust++;
                if (mapToUpdate.Contents[currentX + rightAdjust, currentY] != ' ' && mapToUpdate.Contents[currentX + rightAdjust, currentY] != 'H' && mapToUpdate.Contents[currentX + rightAdjust, currentY] != 'L')
                {
                    display.SetCellColor(mapToUpdate, currentX + rightAdjust, currentY);
                    rightWallHit = true;
                }
            }

            for (int i = 0; i <= leftAdjust; i++)
            {
                display.SetCellColor(mapToUpdate, currentX - i, display.CurrentDoor[1]);
            }

            for (int j = 1; j <= rightAdjust; j++)
            {
                display.SetCellColor(mapToUpdate, currentX + j, display.CurrentDoor[1]);
            }

            return(new int[] { leftAdjust, rightAdjust });
        }