Created
February 5, 2013 15:07
-
-
Save heitortsergent/4715001 to your computer and use it in GitHub Desktop.
Check if word exists
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
for(NSString* word in wordDictionary) | |
{ | |
if([word hasPrefix:appDelegate2.matchLetter] && [word isEqualToString:wordString]) | |
{ | |
return YES; | |
} | |
} | |
return NO; |
eu sei, mas o contains não verifica a palavra toda, logo podem acertar maçã em macadâmia.
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
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{
}
Esse código é só um rascunho que eu adicionei meus pensamentos às linhas descritas anteriormente...