private string ReadWord(bool isFirstWord = false) { var i = 0; string word = string.Empty; //while (!MatrixHelper.MatrixContainsWordEnd(GameFieldToLines.ToList())) while (true) { var letter = LetterHelper.GetLetterFromMatrix(GameFieldToLines.ToList()); word += letter; if (MatrixHelper.MatrixContainsWordEnd(GetWidedMatrixToRight())) { MoveToRight(2); break; } MoveToRight(8); } if (isFirstWord) { FirstWordWasDetected = word; } if (String.IsNullOrEmpty(FirstWordInRow)) { FirstWordInRow = word; } if (Words.Take(5).ToList().Contains(word)) { FirstWordInRow = String.Empty; MoveToDown(10); return(word); } Words.Add(word); return(word); }
private void GoToFirstLetter() { while (!MatrixHelper.MatrixContainsWordBegin(GameFieldToLines.ToList())) { MoveToLeft(); } MoveToRight(2); }
public void RunHorizontalLooping() { int counter = 0; string word = string.Empty; while (true) { MoveToRight(); if (MatrixHelper.CountUnitsAtRightSide(GameFieldToString) > 0) { MoveToRight(6); char letter = LetterHelper.GetLetterFromMatrix(GameFieldToLines.ToList()); if (letter != 'E') { word = ReadWord(); } else { MoveToDown(); var countUnitsOnBottom = MatrixHelper.CountUnitsAtBottomLine(GameFieldToString); if (countUnitsOnBottom > 0) { DetectWordFromUnder(); } else { DetectWordFromUpper(); } GoToFirstLetter(); word = ReadWord(); FirstWordInRow = word; counter = 0; } if (counter != 0 && counter % 100 == 0) { MoveToDown(7); } //if (word == FirstWordWasDetected || (GameEndsIn <= DateTime.Now.AddSeconds(-10))) //{ // CloseSession(); // break; //} } counter++; } }
private List <string> GetWidedMatrixToRight() { var columnsAfterLetter = GameFieldToLines.ToList(); MoveToRight(2); for (var index = 0; index < GameFieldToLines.ToList().Count; index++) { var s = GameFieldToLines.ToList()[index]; columnsAfterLetter[index] = columnsAfterLetter[index].Replace("\n", string.Empty); columnsAfterLetter[index] += s[5]; columnsAfterLetter[index] += s[6]; } MoveToLeft(2); return(columnsAfterLetter); }