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

From AdonaiMedrado.Pro.Br
Revision as of 05:42, 9 October 2008 by Adonaimedrado (Talk | contribs) (Dificuldade 1)

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;
		}		
	}
}