Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Diagram
- {
- char[][] diag;
- List<char> lstChars = new List<char>();
- public void Solve()
- {
- diag = Properties.Resources.TextFile1.Split('\n').Select(f => f.ToArray()).ToArray();
- int x = new string(diag[0]).IndexOf('|');
- int y = 0;
- try
- {
- MoveDown(x, y);
- }
- catch
- {
- }
- var answerA = new string(lstChars.Where(q => Char.IsLetter(q)).ToArray());
- var answerB = lstChars.Count();
- }
- public bool MoveDown(int x, int y)
- {
- if (diag[y + 1][x] == ' ')
- return false;
- lstChars.Add(diag[y][x]);
- while (diag[++y][x] != '+')
- {
- if (diag[y][x] == ' ') return true;
- lstChars.Add(diag[y][x]);
- }
- return (MoveLeft(x, y) || MoveRigh(x, y));
- }
- private bool MoveRigh(int x, int y)
- {
- if (diag[y][x + 1] == ' ') return false;
- lstChars.Add(diag[y][x]);
- while (diag[y][++x] != '+')
- {
- if (diag[y][x] == ' ') return true;
- lstChars.Add(diag[y][x]);
- }
- return (MoveUp(x, y) || MoveDown(x, y));
- }
- private bool MoveLeft(int x, int y)
- {
- if (diag[y][x - 1] == ' ') return false;
- lstChars.Add(diag[y][x]);
- while (diag[y][--x] != '+')
- {
- if (diag[y][x] == ' ') return true;
- lstChars.Add(diag[y][x]);
- }
- return (MoveUp(x, y) || MoveDown(x, y));
- }
- private bool MoveUp(int x, int y)
- {
- if (diag[y - 1][x] == ' ') return false;
- lstChars.Add(diag[y][x]);
- while (diag[--y][x] != '+')
- {
- if (diag[y][x] == ' ') return true;
- lstChars.Add(diag[y][x]);
- }
- return (MoveLeft(x, y) || MoveRigh(x, y));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement