Skip to content

Instantly share code, notes, and snippets.

@heitortsergent
Created February 5, 2013 15:07
Show Gist options
  • Save heitortsergent/4715001 to your computer and use it in GitHub Desktop.
Save heitortsergent/4715001 to your computer and use it in GitHub Desktop.
Check if word exists
for(NSString* word in wordDictionary)
{
if([word hasPrefix:appDelegate2.matchLetter] && [word isEqualToString:wordString])
{
return YES;
}
}
return NO;
@igorcferreira
Copy link

Além do formato de busca que foi sugerido (usando o predicate), acho que é possível otimizar a busca dividindo o dicionário em arrays. Um array para cada letra. Assim um dicionário de "n" letras com "o" palavras deixa de ter uma busca "n * o" para ter uma busca "1 * o".

E, no seu código, agilizaria muito por chamar o AppDelegate uma vez em vez de "n * o" vezes.

SIAnswer *answer = [[SIAnswer alloc] initWithAnswer:@"rabanete"];
valid = [answer isValidAnswerforType:@"fruits"]; //Eu acredito que o clear pode ficar por conta das regras do Predicate

@StudioInvadersAnswer Class:

@Property NSString *answer;

+(NSArray_)getArrayOfWordsToType:(NSString_)type{
//blah
return dictionary[matchLetterNumber]; //O matchLetterNumber é o mesmo gerado no random do seletor de letra

}

-(BOOL)isValidAnswerforType:(NSSTring*)type{

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF ==[cd] %@", self.answer]; //O [cd] do Predicate indica “case- and diacritic-insensitive like.”
NSArray *resultArray = [[SIAnswer getArrayOfWordsToType:type] fileteredArrayUsingPredicate:predicate];

if([resultArray count] > 0){
    return YES;
}else{
    return NO;
}

}

Esse código é só um rascunho que eu adicionei meus pensamentos às linhas descritas anteriormente...

@jturolla
Copy link

jturolla commented Feb 6, 2013

eu sei, mas o contains não verifica a palavra toda, logo podem acertar maçã em macadâmia.

@igorcferreira
Copy link

O contains foi só como exemplo. O predicate pode ser formatado para igualar os valores. O ponto mais importante que eu quis levantar foi que uma estruturação melhor dos dados pode otimizar a busca.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment