private string CreateWord(Direction current, TileH start, int end) { var sb = new StringBuilder(); if (current == Direction.Vertical) { for (int j = end; j >= start.Row; j--) { string temp = Field[j, start.Column].CurrentLetter.text; if (String.Equals("*", temp)) { temp = "_"; } sb.Append(temp); } return(sb.ToString()); } else { for (int j = start.Column; j <= end; j++) { var temp = Field[start.Row, j].CurrentLetter.text; if (String.Equals("*", temp)) { temp = "_"; } sb.Append(temp); } return(sb.ToString()); } }
//building the word with start and end tiles given... private string GetWord(TileH begin, TileH end) { if (CurrentDirection == Direction.Vertical) { //var sb = new StringBuilder(); string sb = ""; for (var j = begin.Row; j >= end.Row; j--) { if (!String.IsNullOrEmpty(Field [j, begin.Column].TempLetter)) //if the letter is not null... //sb.Append(Field[j, begin.Column].TempLetter);//append it to the string... { sb += Field [j, begin.Column].TempLetter; } else if (Field [j, begin.Column].CurrentLetter.text.Equals("*")) { //sb.Append('_'); sb += "_"; } else { //sb.Append (Field [j, begin.Column].CurrentLetter.text); sb += Field [j, begin.Column].CurrentLetter.text; } //if null or empty append it... } return(sb); } else//build word horizontaly... { //var sb = new StringBuilder(); string sb = ""; for (var j = begin.Column; j <= end.Column; j++) { if (!String.IsNullOrEmpty(Field [begin.Row, j].TempLetter)) { //sb.Append(Field[begin.Row, j].TempLetter); sb += Field [begin.Row, j].TempLetter; } else if (Field [begin.Row, j].CurrentLetter.text.Equals("*")) { sb += "_"; } else { //sb.Append (Field [begin.Row, j].CurrentLetter.text); sb += Field [begin.Row, j].CurrentLetter.text; } } return(sb); } }
private string GetWord(TileH begin, TileH end) { if (CurrentDirection == Direction.Vertical) { var sb = new StringBuilder(); for (var j = begin.Row; j >= end.Row; j--) { if (!String.IsNullOrEmpty(Field[j, begin.Column].TempLetter)) { sb.Append(Field[j, begin.Column].TempLetter); } else if (Field[j, begin.Column].CurrentLetter.text.Equals("*")) { sb.Append('_'); } else { sb.Append(Field[j, begin.Column].CurrentLetter.text); } } return(sb.ToString()); } else { var sb = new StringBuilder(); for (var j = begin.Column; j <= end.Column; j++) { if (!String.IsNullOrEmpty(Field[begin.Row, j].TempLetter)) { sb.Append(Field[begin.Row, j].TempLetter); } else if (Field[begin.Row, j].CurrentLetter.text.Equals("*")) { sb.Append('_'); } else { sb.Append(Field[begin.Row, j].CurrentLetter.text); } } return(sb.ToString()); } }
//checks if one of the nearby tiles has letter private bool CheckTile(TileH checkedTileH) { if (checkedTileH.Row != 0 && parent.Field[checkedTileH.Row - 1, checkedTileH.Column].HasLetter) { return(true); } if (checkedTileH.Row != parent.NumberOfRows - 1 && parent.Field[checkedTileH.Row + 1, checkedTileH.Column].HasLetter) { return(true); } if (checkedTileH.Column != 0 && parent.Field[checkedTileH.Row, checkedTileH.Column - 1].HasLetter) { return(true); } if (checkedTileH.Column != parent.NumberOfColumns - 1 && parent.Field[checkedTileH.Row, checkedTileH.Column + 1].HasLetter) { return(true); } return(false); }
private void FindWord(TileH currentTileH, Direction current, out int startPosition, out int endPosition) { if (current == Direction.Vertical) { var j = currentTileH.Row; while (j >= 0 && Field[j, currentTileH.Column].HasLetter) { j--; } j++; startPosition = j; j = currentTileH.Row; while (j < NumberOfRows && Field[j, currentTileH.Column].HasLetter) { j++; } j--; endPosition = j; } else { var j = currentTileH.Column; while (j >= 0 && Field[currentTileH.Row, j].HasLetter) { j--; } j++; startPosition = j; j = currentTileH.Column; while (j < NumberOfRows && Field[currentTileH.Row, j].HasLetter) { j++; } j--; endPosition = j; } }
private void CreateWord(TileH start, out TileH wordStart, out TileH wordEnd) { if (CurrentDirection == Direction.Vertical) { var j = start.Row; while (j < 15 && Field[j, start.Column].HasLetter) { if (Field[j, start.Column].CurrentLetter.text.Equals("*")) { if (!_asterixTiles.Contains(Field[j, start.Column])) { _asterixTiles.Add(Field[j, start.Column]); } } j++; } wordStart = Field[j - 1, start.Column]; j = start.Row; while (j >= 0 && Field[j, start.Column].HasLetter) { if (Field[j, start.Column].CurrentLetter.text.Equals("*")) { if (!_asterixTiles.Contains(Field[j, start.Column])) { _asterixTiles.Add(Field[j, start.Column]); } } j--; } wordEnd = Field[j + 1, start.Column]; } else { var j = start.Column; while (j >= 0 && Field[start.Row, j].HasLetter) { if (Field[start.Row, j].CurrentLetter.text.Equals("*")) { if (!_asterixTiles.Contains(Field[start.Row, j])) { _asterixTiles.Add(Field[start.Row, j]); } } j--; } wordStart = Field[start.Row, j + 1]; j = start.Column; while (j < 15 && Field[start.Row, j].HasLetter) { if (Field[j, start.Column].CurrentLetter.text.Equals("*")) { if (!_asterixTiles.Contains(Field[start.Row, j])) { _asterixTiles.Add(Field[start.Row, j]); } } j++; } wordEnd = Field[start.Row, j - 1]; } }
private void CreateWord(TileH start, out TileH wordStart, out TileH wordEnd) { if (CurrentDirection == Direction.Vertical) { var j = start.Row; //go vertically down while there is no letter... while (j < 15 && Field[j, start.Column].HasLetter) { if (Field[j, start.Column].CurrentLetter.text.Equals("*")) //if a astrix meets while going down { if (!_asterixTiles.Contains(Field[j, start.Column])) //if astrixtiles array does not contain that tile { _asterixTiles.Add(Field[j, start.Column]); //add it to the array... } } j++; } wordStart = Field[j - 1, start.Column];//get the word start position... j = start.Row; //go vertically up while there is no letter... while (j >= 0 && Field[j, start.Column].HasLetter) { if (Field[j, start.Column].CurrentLetter.text.Equals("*")) { if (!_asterixTiles.Contains(Field[j, start.Column])) { _asterixTiles.Add(Field[j, start.Column]); } } j--; } wordEnd = Field[j + 1, start.Column];//get the word end position... } else//search horizontally... { var j = start.Column; //go horizontally rightwards... while (j >= 0 && Field[start.Row, j].HasLetter) { if (Field[start.Row, j].CurrentLetter.text.Equals("*")) { if (!_asterixTiles.Contains(Field[start.Row, j])) { _asterixTiles.Add(Field[start.Row, j]); } } j--; } wordStart = Field[start.Row, j + 1]; j = start.Column; //go horizontally backwords... while (j < 15 && Field[start.Row, j].HasLetter) { if (Field[j, start.Column].CurrentLetter.text.Equals("*")) { if (!_asterixTiles.Contains(Field[start.Row, j])) { _asterixTiles.Add(Field[start.Row, j]); } } j++; } wordEnd = Field[start.Row, j - 1]; } }