Solução CSharp: Problema da sopa de letras (versão cruzadinha)

From AdonaiMedrado.Pro.Br
Jump to: navigation, search

Dificuldade 1

using System;
 
namespace LaboratorioDeProgramacao2
{
	public class CruzadinhaD1
	{
		private String Reverse(String s)
		{
                    System.Text.StringBuilder sb = 
				new System.Text.StringBuilder();
                    for(int i = s.Length - 1; i >= 0; i--)
                        sb.Append(s[i]);
 
                    return sb.ToString();			
		}
		public int RetornarQuantidadeDePalavrasEncontradas(
                                     String[] cruzadinha, String[] palavras)
		{
                    int retorno = 0;
                    System.Text.StringBuilder sb;
                    String horizontal, horizontalR, vertical, verticalR;
 
                    sb = new System.Text.StringBuilder();
		    for(int i = 0; i < cruzadinha.Length; i++)
		    {
		        sb.Append(cruzadinha[i]);
		        sb.Append(" ");
		    }
		    horizontal = sb.ToString();
		    horizontalR = Reverse(horizontal);
 
		    sb = new System.Text.StringBuilder();
		    if (cruzadinha.Length > 0)            
	                for(int s = 0; s < cruzadinha[0].Length; s++)
	                {
	                    for(int i = 0; i < cruzadinha.Length; i++)                 
	                        sb.Append(cruzadinha[i][s]);                    
	                    sb.Append(" ");
	                }
		    vertical = sb.ToString();
   		    verticalR = Reverse(horizontal);
 
                    for (int i = 0; i < palavras.Length; i++)        
                        if (  (horizontal.IndexOf(palavras[i])!=-1
                              ||
                              horizontalR.IndexOf(palavras[i])!=-1)
                              &&
                              (vertical.IndexOf(palavras[i])!=-1
                              ||
                              verticalR.IndexOf(palavras[i])!=-1)
                           )
                          retorno++; 
		    return retorno;
		}		
	}
}