Exemplo n.º 1
0
 /// <summary>
 /// Add on per numOfLet
 /// </summary>
 public void SatusCleaner()
 {
     for (int r = 0; r < Caselle.GetLength(0); r++)
     {
         for (int c = 0; c < Caselle.GetLength(1); c++)
         {
             if (Caselle[r, c].Check == true)
             {
                 Caselle[r, c].Check = false;
             }
         }
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// prendo y prima lettera
 /// </summary>
 /// <param name="parola"></param>
 /// <returns></returns>
 public int posFistLetY(string parola)
 {
     for (int r = 0; r < Caselle.GetLength(0); r++)
     {
         for (int c = 0; c < Caselle.GetLength(1); c++)
         {
             if (Caselle[r, c].Check == false && Caselle[r, c].Lettera.ToString() == parola[0].ToString().ToUpper())
             {
                 return(r);
             }
         }
     }
     return(-1);
 }
Exemplo n.º 3
0
        /// <summary>
        /// trovo numero della prima lettera ripetuta sulla grid
        /// </summary>
        /// <param name="parola"></param>
        /// <returns></returns>
        public int numOfLet(string parola)
        {
            int cont = 0;

            for (int r = 0; r < Caselle.GetLength(0); r++)
            {
                for (int c = 0; c < Caselle.GetLength(1); c++)
                {
                    if (Caselle[r, c].Check == false && Caselle[r, c].Lettera.ToString() == parola[0].ToString().ToUpper())
                    {
                        cont++;
                    }
                }
            }
            return(cont);
        }
Exemplo n.º 4
0
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 public int NumeroColonne()
 {
     return(Caselle.GetLength(1));
 }
Exemplo n.º 5
0
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 public int NumeroRighe()
 {
     return(Caselle.GetLength(0));
 }
Exemplo n.º 6
0
        public void Ricerca(string word)
        {
            try
            {
                //prendo parola dalla texbox

                //controllo lunghezza della parola
                if (word == null || word.Length > Caselle.GetLength(1))
                {
                    throw new Exception();
                }
                //trovo il numero delle lettere iniziali
                int times = numOfLet(word);
                for (int i = 0; i < times; i++)
                {
                    //trovo le posizioni delle prime lettere
                    int x, y;
                    x = posFistLetX(word);
                    y = posFistLetY(word);
                    //sinistra destra
                    for (int s = x, cont = 0; s < word.Length + x; s++, cont++)
                    {
                        if (s > Caselle.GetLength(1) - 1 || s < 0)
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        if (Caselle[y, s].Lettera.ToString() != word[cont].ToString().ToUpper())
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        else if (cont == word.Length - 1)
                        {
                            for (int k = x; k < word.Length + x; k++)
                            {
                                Caselle[y, k].MyBrush.Color = Colors.Green;
                            }
                            return;
                        }
                    }
                    //destra sinistra
                    for (int s = x, cont = 0; s > x - word.Length; s--, cont++)
                    {
                        if (s < 0)
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        if (Caselle[y, s].Lettera.ToString() != word[cont].ToString().ToUpper())
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        else if (cont == word.Length - 1)
                        {
                            for (int k = x; k > x - word.Length; k--)
                            {
                                Caselle[y, k].MyBrush.Color = Colors.Green;
                            }
                            return;
                        }
                    }
                    //alto basso
                    for (int s = y, cont = 0; s < word.Length + y; s++, cont++)
                    {
                        if (s > Caselle.GetLength(0) - 1)
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        if (Caselle[s, x].Lettera.ToString() != word[cont].ToString().ToUpper())
                        {
                            Caselle[y, s].Check = true;
                            break;
                        }
                        else if (cont == word.Length - 1)
                        {
                            for (int k = y; k < word.Length + y; k++)
                            {
                                Caselle[k, x].MyBrush.Color = Colors.Green;
                            }
                            return;
                        }
                    }
                    //basso alto
                    for (int s = y, cont = 0; s > y - word.Length; s--, cont++)
                    {
                        if (s < 0)
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        if (Caselle[s, x].Lettera.ToString() != word[cont].ToString().ToUpper())
                        {
                            Caselle[y, s].Check = true;
                            break;
                        }
                        else if (cont == word.Length - 1)
                        {
                            for (int k = y; k > y - word.Length; k--)
                            {
                                Caselle[k, x].MyBrush.Color = Colors.Green;
                            }
                            return;
                        }
                    }
                    //alto destra basso sinistra
                    for (int s = x, n = y, cont = 0; s < word.Length + x; s++, n++, cont++)
                    {
                        if (s > Caselle.GetLength(1) - 1 || n > Caselle.GetLength(0) - 1)
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        if (Caselle[n, s].Lettera.ToString() != word[cont].ToString().ToUpper())
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        else if (cont == word.Length - 1)
                        {
                            for (int k = x, m = y; k < word.Length + x; k++, m++)
                            {
                                Caselle[m, k].MyBrush.Color = Colors.Green;
                            }
                            return;
                        }
                    }
                    //basso destra alto sinistra
                    for (int s = x, n = y, cont = 0; s < word.Length + x; s++, n--, cont++)
                    {
                        if (s > Caselle.GetLength(1) - 1 || n < 0)
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        if (Caselle[n, s].Lettera.ToString() != word[cont].ToString().ToUpper())
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        else if (cont == word.Length - 1)
                        {
                            for (int k = x, m = y; k < word.Length + x; k++, m--)
                            {
                                Caselle[m, k].MyBrush.Color = Colors.Green;
                            }
                            return;
                        }
                    }
                    //alto sinistra basso destra
                    for (int s = x, n = y, cont = 0; s < word.Length + x; s--, n++, cont++)
                    {
                        if (s < 0 || n > Caselle.GetLength(0) - 1)
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        if (Caselle[n, s].Lettera.ToString() != word[cont].ToString().ToUpper())
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        else if (cont == word.Length - 1)
                        {
                            for (int k = x, b = y; k > x - word.Length; k--, b++)
                            {
                                Caselle[b, k].MyBrush.Color = Colors.Green;
                            }
                            return;
                        }
                    }
                    //basso destra alto sinistra
                    for (int s = x, n = y, cont = 0; s < word.Length + x; s--, n--, cont++)
                    {
                        if (s < 0 || n < 0)
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        if (Caselle[n, s].Lettera.ToString() != word[cont].ToString().ToUpper())
                        {
                            Caselle[y, x].Check = true;
                            break;
                        }
                        else if (cont == word.Length - 1)
                        {
                            for (int k = x, b = y; k > x - word.Length; k--, b--)
                            {
                                Caselle[b, k].MyBrush.Color = Colors.Green;
                            }
                            return;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //in caso di overflow di parola
                MessageBox.Show("Parola non trovata\n", "Errore"
                                , MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
        }