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