Exemplo n.º 1
0
    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());
        }
    }
Exemplo n.º 2
0
 //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);
     }
 }
Exemplo n.º 3
0
 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());
     }
 }
Exemplo n.º 4
0
 //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);
 }
Exemplo n.º 5
0
 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;
     }
 }
Exemplo n.º 6
0
 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];
     }
 }
Exemplo n.º 7
0
 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];
     }
 }