3585 lines
243 KiB
Objective-C
3585 lines
243 KiB
Objective-C
//
|
|
// ConjugateRegularVerb.m
|
|
// Espagram
|
|
//
|
|
// Created by Abel Fokkinga on 8/29/12.
|
|
// Copyright (c) 2012 Abel Fokkinga. All rights reserved.
|
|
//
|
|
|
|
#import "SpanishConjugator.h"
|
|
#import "NSMutableArray_Shuffling.h"
|
|
|
|
@interface SpanishConjugator()
|
|
|
|
@property (nonatomic, strong) NSArray *simplePresentEtoIEstemChangersArray,
|
|
*simplePresentOtoUEstemChangersArray,
|
|
*simplePresentEtoIstemChangersArray,
|
|
*simplePresentIARtoAccentedIArray,
|
|
*simplePresentUARtoAccentedUArray;
|
|
|
|
@property (nonatomic,strong) NSDictionary *persons;
|
|
@property (nonatomic,strong) NSDictionary *reflexivePersons;
|
|
|
|
@end
|
|
|
|
@implementation SpanishConjugator
|
|
|
|
#pragma mark - variables
|
|
|
|
@synthesize simplePresentEtoIEstemChangersArray = _simplePresentEtoIEstemChangersArray;
|
|
@synthesize simplePresentOtoUEstemChangersArray = _simplePresentOtoUEstemChangersArray;
|
|
@synthesize simplePresentEtoIstemChangersArray = _simplePresentEtoIstemChangersArray;
|
|
@synthesize simplePresentIARtoAccentedIArray = _simplePresentIARtoAccentedIArray;
|
|
@synthesize simplePresentUARtoAccentedUArray = _simplePresentUARtoAccentedUArray;
|
|
@synthesize persons = _persons;
|
|
@synthesize reflexivePersons = _reflexivePersons;
|
|
|
|
|
|
- (NSString *) description
|
|
{
|
|
return @"Spanish";
|
|
}
|
|
|
|
|
|
- (NSArray *) personsKeys{
|
|
return [[NSArray alloc] initWithObjects:@"FIRST_PERSON_SINGULAR",@"SECOND_PERSON_SINGULAR",@"THIRD_PERSON_SINGULAR", @"FIRST_PERSON_PLURAL",@"SECOND_PERSON_PLURAL",@"THIRD_PERSON_PLURAL", nil];
|
|
}
|
|
|
|
- (NSDictionary *) persons {
|
|
if (_persons == nil) {
|
|
_persons = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
|
initWithObjects:@"yo",@"tú",@"él",@"nosotros", @"vosotros", @"ellos", nil] forKeys:[[NSArray alloc] initWithArray:self.personsKeys]];
|
|
}
|
|
return [_persons copy];
|
|
}
|
|
|
|
- (NSDictionary *) reflexivePersons {
|
|
if (_reflexivePersons == nil) {
|
|
_reflexivePersons = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
|
initWithObjects:@"me",@"te",@"se",@"nos", @"os", @"se", nil] forKeys:[[NSArray alloc] initWithArray:self.personsKeys]];
|
|
}
|
|
return [_reflexivePersons copy];
|
|
}
|
|
|
|
|
|
- (NSArray *) simplePresentEtoIEstemChangersArray{
|
|
if (_simplePresentEtoIEstemChangersArray == nil)
|
|
_simplePresentEtoIEstemChangersArray = [[NSArray alloc] initWithObjects:
|
|
@"abstener",
|
|
@"acertar",
|
|
@"adherir",
|
|
@"adquirir",
|
|
@"advertir",
|
|
@"apretar",
|
|
@"arrepentir",
|
|
@"ascender",
|
|
@"asentir",
|
|
@"atender",
|
|
@"atravesar",
|
|
@"calentar",
|
|
@"cerrar",
|
|
@"circunvenir",
|
|
@"comenzar",
|
|
@"conferir",
|
|
@"confesar",
|
|
@"consentir",
|
|
@"consentir",
|
|
@"convenir",
|
|
@"convertir",
|
|
@"defender",
|
|
@"descender",
|
|
@"desmembrar",
|
|
@"desmentir",
|
|
@"despertar",
|
|
@"desplegar",
|
|
@"detener",
|
|
@"diferir",
|
|
@"digerir",
|
|
@"discernir",
|
|
@"disentir",
|
|
@"divertir",
|
|
@"empezar",
|
|
@"encender",
|
|
@"encerrar",
|
|
@"encomendar",
|
|
@"enmendar",
|
|
@"ensangrentar",
|
|
@"entender",
|
|
@"enterrar",
|
|
@"entretener",
|
|
@"entrevenir",
|
|
@"extender",
|
|
@"fregar",
|
|
@"gobernar",
|
|
@"heder",
|
|
@"helar",
|
|
@"herir",
|
|
@"hervir",
|
|
@"inferir",
|
|
@"ingerir",
|
|
@"intervenir",
|
|
@"invernar",
|
|
@"invertir",
|
|
@"malherir",
|
|
@"manifestar",
|
|
@"mantener",
|
|
@"mentar",
|
|
@"mentir",
|
|
@"merendar",
|
|
@"negar",
|
|
@"nevar",
|
|
@"obtener",
|
|
@"ofender",
|
|
@"pensar",
|
|
@"perder",
|
|
@"pervertir",
|
|
@"preferir",
|
|
@"presentir",
|
|
@"prevenir",
|
|
@"querer",
|
|
@"regar",
|
|
@"remendar",
|
|
@"renegar",
|
|
@"replegar",
|
|
@"requerir",
|
|
@"restregar",
|
|
@"retener",
|
|
@"reventar",
|
|
@"segar",
|
|
@"sembrar",
|
|
@"sentar",
|
|
@"sentir",
|
|
@"serrar",
|
|
@"sosegar",
|
|
@"sostener",
|
|
@"soterrar",
|
|
@"sugerir",
|
|
@"subarrendar",
|
|
@"tender",
|
|
@"temblar",
|
|
@"tener",
|
|
@"tentar",
|
|
@"transferir",
|
|
@"tropezar",
|
|
@"venir",
|
|
@"verter",
|
|
nil];
|
|
|
|
return _simplePresentEtoIEstemChangersArray;
|
|
}
|
|
|
|
- (NSArray *) simplePresentOtoUEstemChangersArray{
|
|
if (_simplePresentOtoUEstemChangersArray == nil)
|
|
_simplePresentOtoUEstemChangersArray = [[NSArray alloc] initWithObjects:
|
|
@"absolvar",
|
|
@"acordar",
|
|
@"acostar",
|
|
@"almorzar",
|
|
@"alongar",
|
|
@"amoblar",
|
|
@"apostar",
|
|
@"aprobar",
|
|
@"asolar",
|
|
@"avergonzar",
|
|
@"cocer",
|
|
@"colar",
|
|
@"colgar",
|
|
@"concordar",
|
|
@"conmover",
|
|
@"consolar",
|
|
@"contar",
|
|
@"costar",
|
|
@"degollar",
|
|
@"demoler",
|
|
@"demostrar",
|
|
@"desaprobar",
|
|
@"descolgar",
|
|
@"descontar",
|
|
@"desosar",
|
|
@"destorcer",
|
|
@"devolver",
|
|
@"disolver",
|
|
@"doler",
|
|
@"dormir",
|
|
@"encontrar",
|
|
@"engrosar",
|
|
@"envolver",
|
|
@"forzar",
|
|
@"holgar",
|
|
@"hollar",
|
|
@"llover",
|
|
@"moler",
|
|
@"morder",
|
|
@"morir",
|
|
@"mostrar",
|
|
@"mover",
|
|
@"oler",
|
|
@"poblar",
|
|
@"poder",
|
|
@"probar",
|
|
@"promover",
|
|
@"recordar",
|
|
@"reforzar",
|
|
@"remorder",
|
|
@"remover",
|
|
@"repoblar",
|
|
@"resolver",
|
|
@"resollar",
|
|
@"resonar",
|
|
@"retorcer",
|
|
@"revolcar",
|
|
@"revolver",
|
|
@"rodar",
|
|
@"rogar",
|
|
@"solar",
|
|
@"soldar",
|
|
@"soler",
|
|
@"soltar",
|
|
@"sonar",
|
|
@"soñar",
|
|
@"torcer",
|
|
@"tostar",
|
|
@"tronar",
|
|
@"volar",
|
|
@"volcar",
|
|
@"volver",
|
|
@"oler"
|
|
,nil];
|
|
|
|
return _simplePresentOtoUEstemChangersArray;
|
|
}
|
|
|
|
- (NSArray *) simplePresentEtoIstemChangersArray{
|
|
if (_simplePresentEtoIstemChangersArray == nil)
|
|
_simplePresentEtoIstemChangersArray = [[NSArray alloc] initWithObjects:
|
|
@"ceñir",
|
|
@"comedir",
|
|
@"colegir",
|
|
@"competir",
|
|
@"concebir",
|
|
@"conseguir",
|
|
@"contradecir",
|
|
@"corregir",
|
|
@"decir",
|
|
@"derretir",
|
|
@"despedir",
|
|
@"desteñir",
|
|
@"desvestir",
|
|
@"elegir",
|
|
@"embestir",
|
|
@"engreir",
|
|
@"estreñir",
|
|
@"expedir",
|
|
@"freír",
|
|
@"gemir",
|
|
@"impedir",
|
|
@"investir",
|
|
@"maldecir",
|
|
@"medir",
|
|
@"pedir",
|
|
@"perseguir",
|
|
@"proseguir",
|
|
@"predecir",
|
|
@"reelegir",
|
|
@"reexpedir",
|
|
@"regir",
|
|
@"reír",
|
|
@"rendir",
|
|
@"reñir",
|
|
@"repetir",
|
|
@"revestir",
|
|
@"seguir",
|
|
@"servir",
|
|
@"sonreír",
|
|
@"subseguir",
|
|
@"teñir",
|
|
@"trasgredir",
|
|
@"vestir"
|
|
,nil];
|
|
|
|
return _simplePresentEtoIstemChangersArray;
|
|
}
|
|
|
|
- (NSArray *) simplePresentIARtoAccentedIArray{
|
|
if (_simplePresentIARtoAccentedIArray == nil)
|
|
_simplePresentIARtoAccentedIArray = [[NSArray alloc] initWithObjects:
|
|
@"agraviar",
|
|
@"agriar",
|
|
@"aliar",
|
|
@"amnistiar",
|
|
@"amplifiar",
|
|
@"arriar",
|
|
@"cariar",
|
|
@"confiar",
|
|
@"contrariar",
|
|
@"criar",
|
|
@"chirriar",
|
|
@"desafiar",
|
|
@"descarriar",
|
|
@"desconfiar",
|
|
@"desviar",
|
|
@"enfriar",
|
|
@"enviar",
|
|
@"espiar",
|
|
@"esquiar",
|
|
@"expatriar",
|
|
@"fiar",
|
|
@"fotografiar",
|
|
@"guiar",
|
|
@"historiar",
|
|
@"inventariar",
|
|
@"liar",
|
|
@"obviar",
|
|
@"paliar",
|
|
@"piar",
|
|
@"porfiar",
|
|
@"repatriar",
|
|
@"resfriar",
|
|
@"rociar",
|
|
@"telegrafiar",
|
|
@"vaciar",
|
|
@"variar",
|
|
@"zurriar",
|
|
nil];
|
|
|
|
return _simplePresentIARtoAccentedIArray;
|
|
}
|
|
|
|
- (NSArray *) simplePresentUARtoAccentedUArray{
|
|
if (_simplePresentUARtoAccentedUArray == nil)
|
|
_simplePresentUARtoAccentedUArray = [[NSArray alloc] initWithObjects:
|
|
@"acentuar", // to emphasize, accentuate
|
|
@"actuar", // to act
|
|
@"atenuar", // to attenuate
|
|
@"conceptuar", // to deem
|
|
@"continuar", // to continue
|
|
@"desvirtuar", // to spoil
|
|
@"efectuar", // to carry out, effect
|
|
@"evaluar", // to assess, evaluate
|
|
@"exeptuar", // to except
|
|
@"extenuar", // to emaciate
|
|
@"fluctuar", // to fluctuate
|
|
@"graduar", // to grade
|
|
@"habituar", // to habituate
|
|
@"individuar", // to individualize
|
|
@"infatuar", // to infatuate
|
|
@"insinuar", // to hint, insinuate
|
|
@"menstruar", // to menstruate
|
|
@"perpetuar", // to perpetuate
|
|
@"preceptuar", // to establish, lay down
|
|
@"puntuar", // to punctuate, to assess
|
|
@"redituar", // to yield (a profit)
|
|
@"situar", // to situate
|
|
@"tatuar", // to tattoo
|
|
@"valuar", // to value
|
|
nil];
|
|
|
|
return _simplePresentUARtoAccentedUArray;
|
|
}
|
|
|
|
|
|
- (NSString *) getExit:(NSString *) verb {
|
|
|
|
NSLog(@"getExit start");
|
|
if ( verb.length > 2 )
|
|
return [verb substringFromIndex:[verb length] - 2];
|
|
else
|
|
return @"";
|
|
}
|
|
|
|
- (NSString *) getStem:(NSString *) verb {
|
|
|
|
NSLog(@"getStem start");
|
|
|
|
// if ( [[self getExit:verb] isEqualToString:@"ír"] )
|
|
// return [[verb substringToIndex:[verb length] -2] stringByAppendingString:@"i"];
|
|
NSLog(@"getStem end");
|
|
|
|
return [verb substringToIndex:[verb length] -2];
|
|
}
|
|
|
|
# pragma mark - Simple Present
|
|
|
|
- (NSString *) getSimplePresentStemVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
NSString * verbStem = [self getStem:verb];
|
|
NSString * verbExit = [self getExit:verb];
|
|
|
|
NSLog(@"getSimplePresentStemVerb start.irregular");
|
|
|
|
|
|
// Bit irregular
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"] ) {
|
|
if ( [verb rangeOfString:@"coger"].location != NSNotFound)
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"cog"] withString:@"coj"];
|
|
if ( [verb rangeOfString:@"poner"].location != NSNotFound)
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"pon"] withString:@"pong"];
|
|
if ( [verb isEqualToString:@"oír"] )
|
|
return @"oig";
|
|
|
|
|
|
if ( [verb isEqualToString:@"oír"] )
|
|
return @"oí";
|
|
|
|
// appearance of g in the first person
|
|
if ( [verb isEqualToString:@"caer"] ) return @"caig";
|
|
if ( [verb isEqualToString:@"traer"] ) return @"traig";
|
|
if ( [verb rangeOfString:@"decir"].location != NSNotFound)
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"dec"] withString:@"dig"];
|
|
if ( [verb rangeOfString:@"hacer"].location != NSNotFound)
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"hac"] withString:@"hag"];
|
|
if ( [verb rangeOfString:@"poner"].location != NSNotFound)
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"pon"] withString:@"pong"];
|
|
if ( [verb isEqualToString:@"salir"] ) return @"salg";
|
|
if ( [verb rangeOfString:@"tener"].location != NSNotFound)
|
|
return [verbStem stringByReplacingCharactersInRange:[verb rangeOfString:@"ten"] withString:@"teng"];
|
|
if ( [verb isEqualToString:@"valer"] ) return @"valg";
|
|
if ( [verb rangeOfString:@"venir"].location != NSNotFound)
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"ven"] withString:@"veng"];
|
|
|
|
// conducir, conocer etc.
|
|
if ( verb.length > 3 && ([[verb substringFromIndex:[verb length] - 3] isEqualToString:@"cer"] ||
|
|
[[verb substringFromIndex:[verb length] - 3] isEqualToString:@"cir"]) )
|
|
verbStem = [[verbStem substringToIndex:[verbStem length] - 1] stringByAppendingString:@"zc"];
|
|
|
|
// other
|
|
if ( [verb isEqualToString:@"ver"] ) return @"ve";
|
|
|
|
// g -> j
|
|
if ( [verb isEqualToString:@"elegir"] ) return @"elij";
|
|
|
|
// g -> j
|
|
if ( verb.length > 3 && [[verb substringFromIndex:[verb length] - 3] isEqualToString:@"gir"] )
|
|
verbStem = [[verb substringToIndex:[verb length] - 3] stringByAppendingString:@"j"];
|
|
|
|
// gu -> g
|
|
if ( verb.length > 4 && [[verb substringFromIndex:[verb length] - 4] isEqualToString:@"guir"] )
|
|
verbStem = [[verb substringToIndex:[verb length] - 4] stringByAppendingString:@"g"];
|
|
|
|
|
|
|
|
}
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"] ||
|
|
[person isEqualToString:@"SECOND_PERSON_SINGULAR"] ||
|
|
[person isEqualToString:@"THIRD_PERSON_SINGULAR"] ||
|
|
[person isEqualToString:@"THIRD_PERSON_PLURAL"]
|
|
) {
|
|
|
|
if ( [verb rangeOfString:@"decir"].location != NSNotFound)
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"dec"] withString:@"dic"];
|
|
if ( [verb isEqualToString:@"oír"] )
|
|
return @"oy";
|
|
if ( [verb rangeOfString:@"tener"].location != NSNotFound)
|
|
return [verbStem stringByReplacingCharactersInRange:[verb rangeOfString:@"ten"] withString:@"tien"];
|
|
|
|
// Verbs adding an accent
|
|
|
|
// uar to í
|
|
if ( [[self simplePresentUARtoAccentedUArray] containsObject:verb] ){
|
|
verbStem = [[verb substringToIndex:verb.length - 3] stringByAppendingString:@"ú"];
|
|
}
|
|
|
|
|
|
// iar to í
|
|
if ( [[self simplePresentIARtoAccentedIArray] containsObject:verb] ){
|
|
verbStem = [[verb substringToIndex:verb.length - 3] stringByAppendingString:@"í"];
|
|
}
|
|
|
|
}
|
|
|
|
if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"]) {
|
|
if ( [verb isEqualToString:@"oír"] )
|
|
return @"oí";
|
|
}
|
|
|
|
if ( [verb isEqualToString:@"elegir"] ) return @"elig";
|
|
|
|
|
|
// Regular
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"] ||
|
|
[person isEqualToString:@"SECOND_PERSON_SINGULAR"] ||
|
|
[person isEqualToString:@"THIRD_PERSON_SINGULAR"] ||
|
|
[person isEqualToString:@"THIRD_PERSON_PLURAL"]
|
|
) {
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] ) {
|
|
// Verb changes stem from e to ie
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"];
|
|
}
|
|
if ( [[self simplePresentOtoUEstemChangersArray] containsObject:verb] ) {
|
|
// Verb changes stem from o to ue
|
|
if ( [verbStem rangeOfString:@"gon"].location != NSNotFound )
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"gon" options:NSBackwardsSearch] withString:@"güen"];
|
|
else
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"];
|
|
}
|
|
if ( [[self simplePresentEtoIstemChangersArray] containsObject:verb] ) {
|
|
// Verb changes stem from e to i
|
|
if ( [[verbExit substringToIndex:verbExit.length-1] isEqualToString:@"í"] )
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"í"];
|
|
else
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"];
|
|
}
|
|
// u -> ue
|
|
if ( [verb isEqualToString:@"jugar"]) return @"jueg";
|
|
|
|
|
|
// huir, construir
|
|
if ( verb.length > 3 && [[verb substringFromIndex:[verb length] - 3] isEqualToString:@"uir"] &&
|
|
![[verb substringFromIndex:[verb length] - 3] isEqualToString:@"guir"])
|
|
return [[verb substringToIndex:[verb length] - 3] stringByAppendingString:@"uy"];
|
|
}
|
|
|
|
return verbStem;
|
|
|
|
}
|
|
|
|
|
|
- (NSString *) conjugateSimplePresentVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
NSString * verbStem = [self getSimplePresentStemVerb:verb inPerson:person];
|
|
NSString * verbExit = [self getExit:verb];
|
|
|
|
|
|
// other types of first person changes
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"]) {
|
|
if ( [verb isEqualToString:@"caber"] ) return @"quepo";
|
|
if ( [verb isEqualToString:@"dar"] ) return @"doy";
|
|
if ( [verb isEqualToString:@"saber"] ) return @"sé";
|
|
}
|
|
|
|
// regular
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"]) {
|
|
if ( [verb isEqualToString:@"estar"] ) return @"estoy";
|
|
if ( [verb isEqualToString:@"ser"] ) return @"soy";
|
|
if ( [verb isEqualToString:@"ir"] ) return @"voy";
|
|
if ( [verb isEqualToString:@"oler"] ) return @"huelo";
|
|
if ( [verb isEqualToString:@"haber"] ) return @"he";
|
|
|
|
return [verbStem stringByAppendingString:@"o"];
|
|
}
|
|
if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"]) {
|
|
if ( [verb isEqualToString:@"estar"] ) return @"estás";
|
|
if ( [verb isEqualToString:@"ser"] ) return @"eres";
|
|
if ( [verb isEqualToString:@"ir"] ) return @"vas";
|
|
if ( [verb isEqualToString:@"oler"] ) return @"hueles";
|
|
if ( [verb isEqualToString:@"haber"] ) return @"has";
|
|
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"as"];
|
|
else return [verbStem stringByAppendingString:@"es"];
|
|
}
|
|
if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"]) {
|
|
if ( [verb isEqualToString:@"estar"] ) return @"está";
|
|
if ( [verb isEqualToString:@"ser"] ) return @"es";
|
|
if ( [verb isEqualToString:@"ir"] ) return @"va";
|
|
if ( [verb isEqualToString:@"oler"] ) return @"huele";
|
|
if ( [verb isEqualToString:@"haber"] ) return @"ha";
|
|
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"a"];
|
|
else return [verbStem stringByAppendingString:@"e"];
|
|
}
|
|
if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"]) {
|
|
if ( [verb isEqualToString:@"estar"] ) return @"estamos";
|
|
if ( [verb isEqualToString:@"ser"] ) return @"somos";
|
|
if ( [verb isEqualToString:@"ir"] ) return @"vamos";
|
|
if ( [verb isEqualToString:@"haber"] ) return @"hemos";
|
|
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"amos"];
|
|
if ( [@"er" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"emos"];
|
|
if ( [@"ír" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"ímos"];
|
|
if ( [@"ir" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"imos"];
|
|
}
|
|
if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"]) {
|
|
if ( [verb isEqualToString:@"estar"] ) return @"estáis";
|
|
if ( [verb isEqualToString:@"ser"] ) return @"sois";
|
|
if ( [verb isEqualToString:@"ir"] ) return @"vais";
|
|
if ( [verb isEqualToString:@"haber"] ) return @"habéis";
|
|
if ( [verb isEqualToString:@"dar"] ) return @"dais";
|
|
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"áis"];
|
|
if ( [@"er" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"éis"];
|
|
if ( [@"ír" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"ís"];
|
|
if ( [@"ir" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"ís"];
|
|
}
|
|
if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"]) {
|
|
if ( [verb isEqualToString:@"estar"] ) return @"están";
|
|
if ( [verb isEqualToString:@"ser"] ) return @"son";
|
|
if ( [verb isEqualToString:@"ir"] ) return @"van";
|
|
if ( [verb isEqualToString:@"oler"] ) return @"huelen";
|
|
if ( [verb isEqualToString:@"haber"] ) return @"han";
|
|
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"an"];
|
|
else return [verbStem stringByAppendingString:@"en"];
|
|
}
|
|
|
|
return verb;
|
|
}
|
|
|
|
|
|
# pragma mark - Present subjuntivo
|
|
- (NSString *) conjugatePresentSubjunctiveVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
NSString * verbStem = [self getStem:verb];
|
|
NSString * verbExit = [self getExit:verb];
|
|
NSString * simplePresentYo = [self conjugateSimplePresentVerb:verb inPerson:@"FIRST_PERSON_SINGULAR"];
|
|
NSString * simplePresentYoStem = [simplePresentYo substringToIndex:simplePresentYo.length -1];
|
|
|
|
|
|
NSLog(@"person %@", person);
|
|
|
|
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"] ||
|
|
[person isEqualToString:@"THIRD_PERSON_SINGULAR"] ) {
|
|
|
|
// 1. If the first person singular does not end in an -o, the verb is irregular in the present subjunctive
|
|
if ( [verb isEqualToString:@"ser"])
|
|
return @"sea";
|
|
if ( [verb isEqualToString:@"estar"])
|
|
return @"esté";
|
|
if ( [verb isEqualToString:@"ir"])
|
|
return @"vaya";
|
|
if ( [verb isEqualToString:@"dar"])
|
|
return @"dé";
|
|
if ( [verb isEqualToString:@"saber"])
|
|
return @"sepa";
|
|
if ( [verb isEqualToString:@"haber"])
|
|
return @"haya";
|
|
|
|
// 2. If the stem of the yo form is exactly the same as the stem of the infinitive, the verb is regular
|
|
|
|
// Orthographic changes
|
|
if ( simplePresentYoStem.length > 2 &&
|
|
[[simplePresentYoStem substringFromIndex:simplePresentYoStem.length - 2] isEqualToString:@"go"] )
|
|
return [[simplePresentYoStem substringToIndex:simplePresentYoStem.length - 1] stringByAppendingString:@"a"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"car"] )
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"c" options:NSBackwardsSearch] withString:@"que"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"gar"] )
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"gue"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"zar"] )
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"z" options:NSBackwardsSearch] withString:@"ce"];
|
|
if ( verb.length > 4 &&
|
|
[[verb substringFromIndex:verb.length - 4] isEqualToString:@"guir"] ) {
|
|
if ([[simplePresentYoStem substringFromIndex:simplePresentYoStem.length -1] isEqualToString:@"g"] ) {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"ga"];
|
|
} else {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"gu" options:NSBackwardsSearch] withString:@"ga"];
|
|
}
|
|
}
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"gir"] ) {
|
|
if ([[simplePresentYoStem substringFromIndex:simplePresentYoStem.length -1] isEqualToString:@"j"] ) {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"j" options:NSBackwardsSearch] withString:@"ja"];
|
|
} else {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"ja"];
|
|
}
|
|
}
|
|
|
|
if ( [verbStem isEqualToString:simplePresentYoStem]) {
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [verbStem stringByAppendingString:@"e"];
|
|
else
|
|
return [verbStem stringByAppendingString:@"a"];
|
|
}
|
|
|
|
// 3. If the stem of the yo form shows a stem change when compared to the stem of the infinitive,
|
|
// and it's an -ar or -er verb,the stem will undergo the same changes as the present indicative
|
|
if ( [verbExit isEqualToString:@"ar"] || [verbExit isEqualToString:@"er"] ) {
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] ||
|
|
[[self simplePresentOtoUEstemChangersArray] containsObject:verb] ||
|
|
[[self simplePresentEtoIstemChangersArray] containsObject:verb] ||
|
|
[verb isEqualToString:@"jugar"] ) {
|
|
|
|
if ( [verb isEqualToString:@"jugar"] ) return @"juegue";
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [simplePresentYoStem stringByAppendingString:@"e"];
|
|
else
|
|
return [simplePresentYoStem stringByAppendingString:@"a"];
|
|
}
|
|
}
|
|
|
|
// 4. if the stem of the yo form when compared to infinitie shows it's an -ir stem changing verb, all
|
|
// forms of the present subjunctive will have stem changes
|
|
if ( [verbExit isEqualToString:@"ir"] || [verbExit isEqualToString:@"ír"] ) {
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] ||
|
|
[[self simplePresentOtoUEstemChangersArray] containsObject:verb] ||
|
|
[[self simplePresentEtoIstemChangersArray] containsObject:verb] ) {
|
|
|
|
return [simplePresentYoStem stringByAppendingString:@"a"];
|
|
}
|
|
}
|
|
|
|
// 5. Changing stem in yo form and not a stem changing verb,: use this stem for all forms of
|
|
// present subjuntive
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [simplePresentYoStem stringByAppendingString:@"e"];
|
|
else
|
|
return [simplePresentYoStem stringByAppendingString:@"a"];
|
|
|
|
} else if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"]) {
|
|
|
|
// 1. If the first person singular does not end in an -o, the verb is irregular in the present subjunctive
|
|
if ( [verb isEqualToString:@"ser"])
|
|
return @"seas";
|
|
if ( [verb isEqualToString:@"estar"])
|
|
return @"estés";
|
|
if ( [verb isEqualToString:@"ir"])
|
|
return @"vayas";
|
|
if ( [verb isEqualToString:@"dar"])
|
|
return @"des";
|
|
if ( [verb isEqualToString:@"saber"])
|
|
return @"sepas";
|
|
if ( [verb isEqualToString:@"haber"])
|
|
return @"hayas";
|
|
|
|
// 2. If the stem of the yo form is exactly the same as the stem of the infinitive, the verb is regular
|
|
|
|
// Orthographic changes
|
|
if ( simplePresentYoStem.length > 2 &&
|
|
[[simplePresentYoStem substringFromIndex:simplePresentYoStem.length - 2] isEqualToString:@"go"] )
|
|
return [[simplePresentYoStem substringToIndex:simplePresentYoStem.length - 1] stringByAppendingString:@"as"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"car"] )
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"c" options:NSBackwardsSearch] withString:@"ques"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"gar"] )
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"gues"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"zar"] )
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"z" options:NSBackwardsSearch] withString:@"ces"];
|
|
if ( verb.length > 4 &&
|
|
[[verb substringFromIndex:verb.length - 4] isEqualToString:@"guir"] ) {
|
|
if ([[simplePresentYoStem substringFromIndex:simplePresentYoStem.length -1] isEqualToString:@"g"] ) {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"gas"];
|
|
} else {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"gu" options:NSBackwardsSearch] withString:@"gas"];
|
|
}
|
|
}
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"gir"] ) {
|
|
if ([[simplePresentYoStem substringFromIndex:simplePresentYoStem.length -1] isEqualToString:@"j"] ) {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"j" options:NSBackwardsSearch] withString:@"jas"];
|
|
} else {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"jas"];
|
|
}
|
|
}
|
|
if ( [verbStem isEqualToString:simplePresentYoStem] ) {
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [verbStem stringByAppendingString:@"es"];
|
|
else
|
|
return [verbStem stringByAppendingString:@"as"];
|
|
}
|
|
|
|
// 3. If the stem of the yo form shows a stem change when compared to the stem of the infinitive,
|
|
// and it's an -ar or -er verb,the stem will undergo the same changes as the present indicative
|
|
if ( [verbExit isEqualToString:@"ar"] || [verbExit isEqualToString:@"er"] ) {
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] ||
|
|
[[self simplePresentOtoUEstemChangersArray] containsObject:verb] ||
|
|
[[self simplePresentEtoIstemChangersArray] containsObject:verb] ||
|
|
[verb isEqualToString:@"jugar"] ) {
|
|
|
|
if ( [verb isEqualToString:@"jugar"] ) return @"juegues";
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [simplePresentYoStem stringByAppendingString:@"es"];
|
|
else
|
|
return [simplePresentYoStem stringByAppendingString:@"as"];
|
|
}
|
|
}
|
|
|
|
// 4. if the stem of the yo form when compared to infinitie shows it's an -ir stem changing verb, all
|
|
// forms of the present subjunctive will have stem changes and special changes in nosotros and vosotros
|
|
if ( [verbExit isEqualToString:@"ir"] || [verbExit isEqualToString:@"ír"] ) {
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] ||
|
|
[[self simplePresentOtoUEstemChangersArray] containsObject:verb] ||
|
|
[[self simplePresentEtoIstemChangersArray] containsObject:verb] ) {
|
|
|
|
return [simplePresentYoStem stringByAppendingString:@"as"];
|
|
}
|
|
}
|
|
|
|
// 5. Changing stem in yo form and not a stem changing verb,: use this stem for all forms of
|
|
// present subjuntive
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [simplePresentYoStem stringByAppendingString:@"es"];
|
|
else
|
|
return [simplePresentYoStem stringByAppendingString:@"as"];
|
|
|
|
} else if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"]) {
|
|
|
|
// Remove any accented characters, if any from stem
|
|
if ( [verbStem rangeOfString:@"í"].location != NSNotFound ) {
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"í"] withString:@"i"];
|
|
}
|
|
if ( [verbStem rangeOfString:@"é"].location != NSNotFound ) {
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"é"] withString:@"e"];
|
|
}
|
|
if ( [simplePresentYoStem rangeOfString:@"ú"].location != NSNotFound ) {
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"ú"] withString:@"u"];
|
|
}
|
|
|
|
// 1. If the first person singular does not end in an -o, the verb is irregular in the present subjunctive
|
|
if ( [verb isEqualToString:@"ser"])
|
|
return @"seamos";
|
|
if ( [verb isEqualToString:@"estar"])
|
|
return @"estemos";
|
|
if ( [verb isEqualToString:@"ir"])
|
|
return @"vayamos";
|
|
if ( [verb isEqualToString:@"dar"])
|
|
return @"demos";
|
|
if ( [verb isEqualToString:@"saber"])
|
|
return @"sepamos";
|
|
if ( [verb isEqualToString:@"haber"])
|
|
return @"hayamos";
|
|
|
|
// 2. If the stem of the yo form is exactly the same as the stem of the infinitive, the verb is regular
|
|
// Orthographic changes
|
|
if ( simplePresentYoStem.length > 2 &&
|
|
[[simplePresentYoStem substringFromIndex:simplePresentYoStem.length - 2] isEqualToString:@"go"] )
|
|
return [[simplePresentYoStem substringToIndex:simplePresentYoStem.length - 1] stringByAppendingString:@"gamos"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"car"] )
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"c" options:NSBackwardsSearch] withString:@"quemos"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"gar"] )
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"guemos"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"zar"] )
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"z" options:NSBackwardsSearch] withString:@"cemos"];
|
|
if ( verb.length > 4 &&
|
|
[[verb substringFromIndex:verb.length - 4] isEqualToString:@"guir"] ) {
|
|
if ([[simplePresentYoStem substringFromIndex:simplePresentYoStem.length -1] isEqualToString:@"g"] ) {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"gamos"];
|
|
} else {
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"gu" options:NSBackwardsSearch] withString:@"gamos"];
|
|
}
|
|
}
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"gir"] ) {
|
|
if ([[simplePresentYoStem substringFromIndex:simplePresentYoStem.length -1] isEqualToString:@"j"] ) {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"j" options:NSBackwardsSearch] withString:@"jamos"];
|
|
} else {
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"jamos"];
|
|
}
|
|
}
|
|
|
|
if ( [verbStem isEqualToString:simplePresentYoStem] ||
|
|
[self.simplePresentUARtoAccentedUArray containsObject:verb] ||
|
|
[self.simplePresentIARtoAccentedIArray containsObject:verb] ) {
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [verbStem stringByAppendingString:@"emos"];
|
|
else
|
|
return [verbStem stringByAppendingString:@"amos"];
|
|
}
|
|
|
|
|
|
|
|
// 3. If the stem of the yo form shows a stem change when compared to the stem of the infinitive,
|
|
// and it's an -ar or -er verb,the stem will undergo the same changes as the present indicative
|
|
if ( [verbExit isEqualToString:@"ar"] || [verbExit isEqualToString:@"er"] ) {
|
|
|
|
if ( [verb isEqualToString:@"jugar"] ) return @"jueguemos";
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] &&
|
|
[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] isEqualToString:simplePresentYoStem] ) {
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [verbStem stringByAppendingString:@"emos"];
|
|
else
|
|
return [verbStem stringByAppendingString:@"amos"];
|
|
}
|
|
|
|
if ( [[self simplePresentOtoUEstemChangersArray] containsObject:verb] &&
|
|
[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] isEqualToString:simplePresentYoStem] ) {
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [verbStem stringByAppendingString:@"emos"];
|
|
else
|
|
return [verbStem stringByAppendingString:@"amos"];
|
|
}
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] &&
|
|
[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] isEqualToString:simplePresentYoStem] ) {
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [verbStem stringByAppendingString:@"emos"];
|
|
else
|
|
return [verbStem stringByAppendingString:@"amos"];
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// 4. if the stem of the yo form when compared to infinitie shows it's an -ir stem changing verb, all
|
|
// forms of the present subjunctive will have stem changes and special changes in nosotros and vosotros
|
|
if ( [verbExit isEqualToString:@"ir"] || [verbExit isEqualToString:@"ír"] ) {
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] &&
|
|
[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] isEqualToString:simplePresentYoStem] ) {
|
|
|
|
return [[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"amos"];
|
|
}
|
|
|
|
if ( [[self simplePresentOtoUEstemChangersArray] containsObject:verb] &&
|
|
[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] isEqualToString:simplePresentYoStem] ) {
|
|
|
|
return [[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"u"] stringByAppendingString:@"amos"];
|
|
}
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] &&
|
|
[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] isEqualToString:simplePresentYoStem] ) {
|
|
|
|
return [[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"amos"];
|
|
}
|
|
}
|
|
|
|
// 5. Changing stem in yo form and not a stem changing verb,: use this stem for all forms of
|
|
// present subjuntive
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [simplePresentYoStem stringByAppendingString:@"emos"];
|
|
else
|
|
return [simplePresentYoStem stringByAppendingString:@"amos"];
|
|
|
|
} else if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"]) {
|
|
// Remove any accented characters, if any from stem
|
|
if ( [verbStem rangeOfString:@"í"].location != NSNotFound ) {
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"í"] withString:@"i"];
|
|
}
|
|
if ( [verbStem rangeOfString:@"é"].location != NSNotFound ) {
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"é"] withString:@"e"];
|
|
}
|
|
if ( [simplePresentYoStem rangeOfString:@"ú"].location != NSNotFound ) {
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"ú"] withString:@"u"];
|
|
}
|
|
|
|
// 1. If the first person singular does not end in an -o, the verb is irregular in the present subjunctive
|
|
if ( [verb isEqualToString:@"ser"])
|
|
return @"seáis";
|
|
if ( [verb isEqualToString:@"estar"])
|
|
return @"estéis";
|
|
if ( [verb isEqualToString:@"ir"])
|
|
return @"vayáis";
|
|
if ( [verb isEqualToString:@"dar"])
|
|
return @"deis";
|
|
if ( [verb isEqualToString:@"saber"])
|
|
return @"sepáis";
|
|
if ( [verb isEqualToString:@"haber"])
|
|
return @"hayáis";
|
|
|
|
// 2. If the stem of the yo form is exactly the same as the stem of the infinitive, the verb is regular
|
|
// Orthographic changes
|
|
if ( simplePresentYoStem.length > 2 &&
|
|
[[simplePresentYoStem substringFromIndex:simplePresentYoStem.length - 2] isEqualToString:@"go"] )
|
|
return [[simplePresentYoStem substringToIndex:simplePresentYoStem.length - 1] stringByAppendingString:@"áis"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"car"] )
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"c" options:NSBackwardsSearch] withString:@"quéis"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"gar"] )
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"guéis"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"zar"] )
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"z" options:NSBackwardsSearch] withString:@"céis"];
|
|
if ( verb.length > 4 &&
|
|
[[verb substringFromIndex:verb.length - 4] isEqualToString:@"guir"] ) {
|
|
if ([[simplePresentYoStem substringFromIndex:simplePresentYoStem.length -1] isEqualToString:@"g"] ) {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"gáis"];
|
|
} else {
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"gu" options:NSBackwardsSearch] withString:@"gáis"];
|
|
}
|
|
}
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"gir"] ) {
|
|
if ([[simplePresentYoStem substringFromIndex:simplePresentYoStem.length -1] isEqualToString:@"j"] ) {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"j" options:NSBackwardsSearch] withString:@"jáis"];
|
|
} else {
|
|
return [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"jáis"];
|
|
}
|
|
}
|
|
|
|
|
|
if ( [verbStem isEqualToString:simplePresentYoStem] ||
|
|
[self.simplePresentUARtoAccentedUArray containsObject:verb] ||
|
|
[self.simplePresentIARtoAccentedIArray containsObject:verb] ) {
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [verbStem stringByAppendingString:@"éis"];
|
|
else
|
|
return [verbStem stringByAppendingString:@"áis"];
|
|
}
|
|
|
|
// 3. If the stem of the yo form shows a stem change when compared to the stem of the infinitive,
|
|
// and it's an -ar or -er verb,the stem will undergo the same changes as the present indicative
|
|
if ( [verbExit isEqualToString:@"ar"] || [verbExit isEqualToString:@"er"] ) {
|
|
|
|
if ( [verb isEqualToString:@"jugar"] ) return @"jueguemos";
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] &&
|
|
[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] isEqualToString:simplePresentYoStem] ) {
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [verbStem stringByAppendingString:@"éis"];
|
|
else
|
|
return [verbStem stringByAppendingString:@"áis"];
|
|
}
|
|
|
|
if ( [[self simplePresentOtoUEstemChangersArray] containsObject:verb] &&
|
|
[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] isEqualToString:simplePresentYoStem] ) {
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [verbStem stringByAppendingString:@"éis"];
|
|
else
|
|
return [verbStem stringByAppendingString:@"áis"];
|
|
}
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] &&
|
|
[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] isEqualToString:simplePresentYoStem] ) {
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [verbStem stringByAppendingString:@"éis"];
|
|
else
|
|
return [verbStem stringByAppendingString:@"áis"];
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// 4. if the stem of the yo form when compared to infinitie shows it's an -ir stem changing verb, all
|
|
// forms of the present subjunctive will have stem changes and special changes in nosotros and vosotros
|
|
if ( [verbExit isEqualToString:@"ir"] || [verbExit isEqualToString:@"ír"] ) {
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] &&
|
|
[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] isEqualToString:simplePresentYoStem] ) {
|
|
|
|
return [[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"áis"];
|
|
}
|
|
|
|
if ( [[self simplePresentOtoUEstemChangersArray] containsObject:verb] &&
|
|
[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] isEqualToString:simplePresentYoStem] ) {
|
|
|
|
return [[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"u"] stringByAppendingString:@"áis"];
|
|
}
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] &&
|
|
[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] isEqualToString:simplePresentYoStem] ) {
|
|
|
|
return [[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"áis"];
|
|
}
|
|
|
|
}
|
|
|
|
// 5. Changing stem in yo form and not a stem changing verb,: use this stem for all forms of
|
|
// present subjuntive
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [simplePresentYoStem stringByAppendingString:@"éis"];
|
|
else
|
|
return [simplePresentYoStem stringByAppendingString:@"áis"];
|
|
|
|
} else if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"]) {
|
|
|
|
// 1. If the first person singular does not end in an -o, the verb is irregular in the present subjunctive
|
|
if ( [verb isEqualToString:@"ser"])
|
|
return @"sean";
|
|
if ( [verb isEqualToString:@"estar"])
|
|
return @"estén";
|
|
if ( [verb isEqualToString:@"ir"])
|
|
return @"vayan";
|
|
if ( [verb isEqualToString:@"dar"])
|
|
return @"den";
|
|
if ( [verb isEqualToString:@"saber"])
|
|
return @"sepan";
|
|
if ( [verb isEqualToString:@"haber"])
|
|
return @"hayan";
|
|
|
|
// 2. If the stem of the yo form is exactly the same as the stem of the infinitive, the verb is regular
|
|
// Orthographic changes
|
|
if ( simplePresentYoStem.length > 2 &&
|
|
[[simplePresentYoStem substringFromIndex:simplePresentYoStem.length - 2] isEqualToString:@"go"] )
|
|
return [[simplePresentYoStem substringToIndex:simplePresentYoStem.length - 1] stringByAppendingString:@"an"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"car"] )
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"c" options:NSBackwardsSearch] withString:@"quen"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"gar"] )
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"guen"];
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"zar"] )
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"z" options:NSBackwardsSearch] withString:@"cen"];
|
|
if ( verb.length > 4 &&
|
|
[[verb substringFromIndex:verb.length - 4] isEqualToString:@"guir"] ) {
|
|
if ([[simplePresentYoStem substringFromIndex:simplePresentYoStem.length -1] isEqualToString:@"g"] ) {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"gan"];
|
|
} else {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"gu" options:NSBackwardsSearch] withString:@"gan"];
|
|
}
|
|
}
|
|
if ( verb.length > 3 &&
|
|
[[verb substringFromIndex:verb.length - 3] isEqualToString:@"gir"] ) {
|
|
if ([[simplePresentYoStem substringFromIndex:simplePresentYoStem.length -1] isEqualToString:@"j"] ) {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"j" options:NSBackwardsSearch] withString:@"jan"];
|
|
} else {
|
|
return [simplePresentYoStem stringByReplacingCharactersInRange:[simplePresentYoStem rangeOfString:@"g" options:NSBackwardsSearch] withString:@"jan"];
|
|
}
|
|
}
|
|
|
|
if ( [verbStem isEqualToString:simplePresentYoStem]) {
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [verbStem stringByAppendingString:@"en"];
|
|
else
|
|
return [verbStem stringByAppendingString:@"an"];
|
|
}
|
|
|
|
// 3. If the stem of the yo form shows a stem change when compared to the stem of the infinitive,
|
|
// and it's an -ar or -er verb,the stem will undergo the same changes as the present indicative
|
|
if ( [verbExit isEqualToString:@"ar"] || [verbExit isEqualToString:@"er"] ) {
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] ||
|
|
[[self simplePresentOtoUEstemChangersArray] containsObject:verb] ||
|
|
[[self simplePresentEtoIstemChangersArray] containsObject:verb] ||
|
|
[verb isEqualToString:@"jugar"] ) {
|
|
|
|
if ( [verb isEqualToString:@"jugar"] ) return @"jueguen";
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [simplePresentYoStem stringByAppendingString:@"en"];
|
|
else
|
|
return [simplePresentYoStem stringByAppendingString:@"an"];
|
|
}
|
|
}
|
|
|
|
// 4. if the stem of the yo form when compared to infinitie shows it's an -ir stem changing verb, all
|
|
// forms of the present subjunctive will have stem changes
|
|
if ( [verbExit isEqualToString:@"ir"] || [verbExit isEqualToString:@"ír"] ) {
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] ||
|
|
[[self simplePresentOtoUEstemChangersArray] containsObject:verb] ||
|
|
[[self simplePresentEtoIstemChangersArray] containsObject:verb] ) {
|
|
|
|
return [simplePresentYoStem stringByAppendingString:@"an"];
|
|
}
|
|
}
|
|
|
|
// 5. Changing stem in yo form and not a stem changing verb,: use this stem for all forms of
|
|
// present subjuntive
|
|
if ( [verbExit isEqualToString:@"ar"] )
|
|
return [simplePresentYoStem stringByAppendingString:@"en"];
|
|
else
|
|
return [simplePresentYoStem stringByAppendingString:@"an"];
|
|
}
|
|
|
|
return verb;
|
|
}
|
|
|
|
|
|
# pragma mark - Simple Past
|
|
|
|
- (NSString *) conjugateSimplePastVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
NSString * verbStem = [self getStem:verb];
|
|
NSString * verbExit = [self getExit:verb];
|
|
|
|
if ( [verb isEqualToString:@"andar"]) verbStem = @"anduv";
|
|
if ( [verb isEqualToString:@"conducir"]) verbStem = @"conduj";
|
|
if ( [verb isEqualToString:@"decir"]) verbStem = @"dij";
|
|
if ( [verb isEqualToString:@"estar"]) verbStem = @"estuv";
|
|
if ( [verb isEqualToString:@"haber"]) verbStem = @"hub";
|
|
if ( [verb isEqualToString:@"hacer"]) {
|
|
if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"]) verbStem = @"hiz";
|
|
else verbStem = @"hic";
|
|
}
|
|
if ( [verb isEqualToString:@"poder"]) verbStem = @"pud";
|
|
if ( [verb isEqualToString:@"poner"]) verbStem = @"pus";
|
|
if ( [verb isEqualToString:@"querer"]) verbStem = @"quis";
|
|
if ( [verb isEqualToString:@"saber"]) verbStem = @"sup";
|
|
if ( [verb isEqualToString:@"tener"]) verbStem = @"tuv";
|
|
if ( [verb isEqualToString:@"traducir"]) verbStem = @"traduj";
|
|
if ( [verb isEqualToString:@"traer"]) verbStem = @"traj";
|
|
if ( [verb isEqualToString:@"venir"]) verbStem = @"vin";
|
|
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"]) {
|
|
|
|
// Irregular
|
|
if ( [verb isEqualToString:@"dar"]) return @"di";
|
|
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) return @"fui";
|
|
|
|
if ( verb.length > 3 && [[verb substringFromIndex:[verb length] - 3] isEqualToString:@"car"] )
|
|
return [[verb substringToIndex:[verb length] - 3] stringByAppendingString:@"qué"];
|
|
|
|
if ( verb.length > 3 && [[verb substringFromIndex:[verb length] - 3] isEqualToString:@"gar"] )
|
|
return [[verb substringToIndex:[verb length] - 3] stringByAppendingString:@"gué"];
|
|
|
|
if ( verb.length > 3 && [[verb substringFromIndex:[verb length] - 3] isEqualToString:@"zar"] )
|
|
return [[verb substringToIndex:[verb length] - 3] stringByAppendingString:@"cé"];
|
|
|
|
if ( [verbStem isEqualToString:[self getStem:verb]]) {
|
|
// Regular
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"é"];
|
|
else return [verbStem stringByAppendingString:@"í"];
|
|
} else {
|
|
// Irregular
|
|
return [verbStem stringByAppendingString:@"e"];
|
|
}
|
|
|
|
}
|
|
if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"]) {
|
|
|
|
// Irregular
|
|
if ( [verb isEqualToString:@"dar"]) return @"diste";
|
|
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) return @"fuiste";
|
|
|
|
if ( [verbStem isEqualToString:[self getStem:verb]]) {
|
|
// Regular
|
|
if ( [@"ar" isEqualToString:verbExit] ) {
|
|
return [verbStem stringByAppendingString:@"aste"];
|
|
} else if ( [[verbStem substringFromIndex:verbStem.length-1] isEqualToString:@"e"] ) {
|
|
return [verbStem stringByAppendingString:@"íste"];
|
|
} else if ( [[verbStem substringFromIndex:verbStem.length-1] isEqualToString:@"o"] ) {
|
|
return [verbStem stringByAppendingString:@"íste"];
|
|
} else {
|
|
return [verbStem stringByAppendingString:@"iste"];
|
|
}
|
|
} else {
|
|
// Irregular
|
|
return [verbStem stringByAppendingString:@"iste"];
|
|
}
|
|
}
|
|
if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"]) {
|
|
|
|
// Irregular
|
|
if ( [verb isEqualToString:@"dar"]) return @"dio";
|
|
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) return @"fue";
|
|
|
|
|
|
if ( ![verbStem isEqualToString:[self getStem:verb]]) {
|
|
// Irregular, stem changed
|
|
if ( verbStem.length > 1 && [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"i"]) return [verbStem stringByAppendingString:@"ó"];
|
|
else
|
|
return [verbStem stringByAppendingString:@"o"];
|
|
}
|
|
|
|
if ( verb.length > 3 &&
|
|
![[verb substringFromIndex:verb.length-3] isEqualToString:@"car"] &&
|
|
![[verb substringFromIndex:verb.length-3] isEqualToString:@"gar"] &&
|
|
![[verb substringFromIndex:verb.length-3] isEqualToString:@"zar"]
|
|
) {
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] && [verbStem rangeOfString:@"e"].location != NSNotFound) {
|
|
// Verb changes stem from e to i
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"];
|
|
}
|
|
if ( [[self simplePresentOtoUEstemChangersArray] containsObject:verb] && [verbStem rangeOfString:@"o"].location != NSNotFound) {
|
|
// Verb changes stem from o to u
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"u"];
|
|
}
|
|
if ( [[self simplePresentEtoIstemChangersArray] containsObject:verb] && [verbStem rangeOfString:@"e"].location != NSNotFound) {
|
|
// Verb changes stem from e to i
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"];
|
|
}
|
|
}
|
|
|
|
|
|
if ( verb.length > 0 &&
|
|
[verbStem isEqualToString:[self getStem:verb]] && // No stem change
|
|
([[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"e"] ||
|
|
[[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"u"] ||
|
|
[[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"o"])
|
|
) {
|
|
// If the stem of an -er or -ir ends in a vowel, the -i of the 3rd person changes to y
|
|
return [verbStem stringByAppendingString:@"yó"];
|
|
}
|
|
|
|
|
|
// Regular
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"ó"];
|
|
else if ( verbStem.length > 1 && [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"i"]) return [verbStem stringByAppendingString:@"ó"];
|
|
else if ( verbStem.length > 1 && [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"e"]) return [verbStem stringByAppendingString:@"yo"];
|
|
else return [verbStem stringByAppendingString:@"ió"];
|
|
}
|
|
if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"]) {
|
|
// Irregular
|
|
if ( [verb isEqualToString:@"dar"]) return @"dimos";
|
|
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) return @"fuimos";
|
|
|
|
if ( [verbStem isEqualToString:[self getStem:verb]]) {
|
|
// Regular
|
|
if ( [@"ar" isEqualToString:verbExit] ) {
|
|
return [verbStem stringByAppendingString:@"amos"];
|
|
} else if ( [[verbStem substringFromIndex:verbStem.length-1] isEqualToString:@"e"] ) {
|
|
return [verbStem stringByAppendingString:@"ímos"];
|
|
} else if ( [[verbStem substringFromIndex:verbStem.length-1] isEqualToString:@"o"] ) {
|
|
return [verbStem stringByAppendingString:@"ímos"];
|
|
} else {
|
|
return [verbStem stringByAppendingString:@"imos"];
|
|
}
|
|
} else {
|
|
// Irregular
|
|
return [verbStem stringByAppendingString:@"imos"];
|
|
}
|
|
}
|
|
if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"]) {
|
|
// Irregular
|
|
if ( [verb isEqualToString:@"dar"]) return @"disteis";
|
|
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) return @"fuisteis";
|
|
|
|
if ( [verbStem isEqualToString:[self getStem:verb]]) {
|
|
// Regular
|
|
if ( [@"ar" isEqualToString:verbExit] ) {
|
|
return [verbStem stringByAppendingString:@"asteis"];
|
|
} else if ( [[verbStem substringFromIndex:verbStem.length-1] isEqualToString:@"e"] ) {
|
|
return [verbStem stringByAppendingString:@"ísteis"];
|
|
} else if ( [[verbStem substringFromIndex:verbStem.length-1] isEqualToString:@"o"] ) {
|
|
return [verbStem stringByAppendingString:@"ísteis"];
|
|
|
|
} else {
|
|
return [verbStem stringByAppendingString:@"isteis"];
|
|
}
|
|
} else {
|
|
// Irregular
|
|
return [verbStem stringByAppendingString:@"isteis"];
|
|
}
|
|
}
|
|
if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"]) {
|
|
// Irregular
|
|
if ( [verb isEqualToString:@"dar"]) return @"dieron";
|
|
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) return @"fueron";
|
|
|
|
if ( [verbStem isEqualToString:[self getStem:verb]] &&
|
|
verb.length > 3 &&
|
|
![[verb substringFromIndex:verb.length-3] isEqualToString:@"car"] &&
|
|
![[verb substringFromIndex:verb.length-3] isEqualToString:@"gar"] &&
|
|
![[verb substringFromIndex:verb.length-3] isEqualToString:@"zar"]
|
|
) {
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] ) {
|
|
// Verb changes stem from e to i
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"];
|
|
}
|
|
if ( [[self simplePresentOtoUEstemChangersArray] containsObject:verb] ) {
|
|
// Verb changes stem from o to u
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"u"];
|
|
}
|
|
if ( [[self simplePresentEtoIstemChangersArray] containsObject:verb] ) {
|
|
// Verb changes stem from e to i
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"];
|
|
}
|
|
}
|
|
|
|
|
|
if ( [verbStem isEqualToString:[self getStem:verb]]) {
|
|
// Regular
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"aron"];
|
|
else if ( verbStem.length > 0 && [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"j"]) return [verbStem stringByAppendingString:@"eron"];
|
|
else if ( verbStem.length > 0 && [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"i"]) return [verbStem stringByAppendingString:@"yeron"];
|
|
else if ( verbStem.length > 0 && [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"e"]) return [verbStem stringByAppendingString:@"yeron"];
|
|
else if ( verbStem.length > 0 && [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"u"]) return [verbStem stringByAppendingString:@"yeron"];
|
|
else if ( verbStem.length > 0 && [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"o"]) return [verbStem stringByAppendingString:@"yeron"];
|
|
else return [verbStem stringByAppendingString:@"ieron"];
|
|
} else {
|
|
if ( verbStem.length > 1 && [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"j"]) return [verbStem stringByAppendingString:@"eron"];
|
|
else if ( verbStem.length > 0 && [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"i"]) return [verbStem stringByAppendingString:@"eron"];
|
|
else return [verbStem stringByAppendingString:@"ieron"];
|
|
}
|
|
}
|
|
|
|
return verb;
|
|
}
|
|
|
|
# pragma mark - Imperfect
|
|
|
|
- (NSString *) conjugateImperfectVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
NSString * verbStem = [self getStem:verb];
|
|
NSString * verbExit = [self getExit:verb];
|
|
|
|
// regular
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"]) {
|
|
if ( [verb isEqualToString:@"ser"] ) return @"era";
|
|
if ( [verb isEqualToString:@"ir"] ) return @"iba";
|
|
if ( [verb isEqualToString:@"ver"] ) return @"veía";
|
|
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"aba"];
|
|
else return [verbStem stringByAppendingString:@"ía"];
|
|
}
|
|
if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"]) {
|
|
if ( [verb isEqualToString:@"ser"] ) return @"eras";
|
|
if ( [verb isEqualToString:@"ir"] ) return @"ibas";
|
|
if ( [verb isEqualToString:@"ver"] ) return @"veías";
|
|
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"abas"];
|
|
else return [verbStem stringByAppendingString:@"ías"];
|
|
}
|
|
if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"]) {
|
|
if ( [verb isEqualToString:@"ser"] ) return @"era";
|
|
if ( [verb isEqualToString:@"ir"] ) return @"iba";
|
|
if ( [verb isEqualToString:@"ver"] ) return @"veía";
|
|
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"aba"];
|
|
else return [verbStem stringByAppendingString:@"ía"];
|
|
}
|
|
if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"]) {
|
|
if ( [verb isEqualToString:@"ser"] ) return @"éramos";
|
|
if ( [verb isEqualToString:@"ir"] ) return @"íbamos";
|
|
if ( [verb isEqualToString:@"ver"] ) return @"veíamos";
|
|
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"ábamos"];
|
|
else return [verbStem stringByAppendingString:@"íamos"];
|
|
}
|
|
if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"]) {
|
|
if ( [verb isEqualToString:@"ser"] ) return @"erais";
|
|
if ( [verb isEqualToString:@"ir"] ) return @"ibais";
|
|
if ( [verb isEqualToString:@"ver"] ) return @"veíais";
|
|
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"abais"];
|
|
else return [verbStem stringByAppendingString:@"íais"];
|
|
}
|
|
if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"]) {
|
|
if ( [verb isEqualToString:@"ser"] ) return @"eran";
|
|
if ( [verb isEqualToString:@"ir"] ) return @"iban";
|
|
if ( [verb isEqualToString:@"ver"] ) return @"veían";
|
|
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"aban"];
|
|
else return [verbStem stringByAppendingString:@"ían"];
|
|
}
|
|
|
|
return verb;
|
|
|
|
}
|
|
|
|
|
|
- (NSString *) conjugateImperfectSubjunctiveVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
NSString * verbExit = [self getExit:verb];
|
|
NSString * verbStem = nil;
|
|
NSString * imperfect = [self conjugateSimplePastVerb:verb inPerson:@"THIRD_PERSON_PLURAL"];
|
|
|
|
if ( imperfect.length > 2 )
|
|
verbStem = [imperfect substringToIndex:imperfect.length-2];
|
|
|
|
|
|
// regular
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"]) {
|
|
return [verbStem stringByAppendingString:@"a"];
|
|
}
|
|
if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"]) {
|
|
return [verbStem stringByAppendingString:@"as"]; }
|
|
if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"]) {
|
|
return [verbStem stringByAppendingString:@"a"]; }
|
|
if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"]) {
|
|
if ([[verbStem substringFromIndex:verbStem.length-2] isEqualToString:@"ar"])
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"ar" options:NSBackwardsSearch] withString:@"ár"];
|
|
else
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"er" options:NSBackwardsSearch] withString:@"ér"];
|
|
return [verbStem stringByAppendingString:@"amos"];;
|
|
}
|
|
if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"]) {
|
|
return [verbStem stringByAppendingString:@"ais"]; }
|
|
if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"]) {
|
|
return [verbStem stringByAppendingString:@"an"];
|
|
}
|
|
|
|
return verb;
|
|
|
|
}
|
|
|
|
# pragma mark - Future / Condicional
|
|
|
|
// Get stem for Future and Condicional
|
|
- (NSString *) getFutureStem:(NSString *) verb {
|
|
|
|
// Irregular stem
|
|
if ( [verb isEqualToString:@"decir"]) return @"dir";
|
|
if ( [verb isEqualToString:@"haber"]) return @"habr";
|
|
if ( [verb isEqualToString:@"hacer"]) return @"har";
|
|
if ( [verb isEqualToString:@"poder"]) return @"podr";
|
|
if ( [verb isEqualToString:@"poner"]) return @"pondr";
|
|
if ( [verb isEqualToString:@"querer"]) return @"querr";
|
|
if ( [verb isEqualToString:@"saber"]) return @"sabr";
|
|
if ( [verb isEqualToString:@"salir"]) return @"saldr";
|
|
if ( [verb isEqualToString:@"tener"]) return @"tendr";
|
|
if ( [verb isEqualToString:@"valer"]) return @"valdr";
|
|
if ( [verb isEqualToString:@"venir"]) return @"vendr";
|
|
|
|
// Regular stem = infinitive
|
|
return verb;
|
|
}
|
|
|
|
|
|
- (NSString *) conjugateFutureVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
NSString * verbStem = [self getFutureStem:verb];
|
|
|
|
// regular
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"])
|
|
return [verbStem stringByAppendingString:@"é"];
|
|
|
|
if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"])
|
|
return [verbStem stringByAppendingString:@"ás"];
|
|
|
|
if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"])
|
|
return [verbStem stringByAppendingString:@"á"];
|
|
|
|
if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"])
|
|
return [verbStem stringByAppendingString:@"emos"];
|
|
|
|
if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"])
|
|
return [verbStem stringByAppendingString:@"éis"];
|
|
|
|
if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"])
|
|
return [verbStem stringByAppendingString:@"án"];
|
|
|
|
return verb;
|
|
}
|
|
|
|
- (NSString *) conjugateConditionalVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
NSString * verbStem = [self getFutureStem:verb];
|
|
|
|
// regular
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"])
|
|
return [verbStem stringByAppendingString:@"ía"];
|
|
|
|
if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"])
|
|
return [verbStem stringByAppendingString:@"ías"];
|
|
|
|
if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"])
|
|
return [verbStem stringByAppendingString:@"ía"];
|
|
|
|
if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"])
|
|
return [verbStem stringByAppendingString:@"íamos"];
|
|
|
|
if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"])
|
|
return [verbStem stringByAppendingString:@"íais"];
|
|
|
|
if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"])
|
|
return [verbStem stringByAppendingString:@"ían"];
|
|
|
|
return verb;
|
|
}
|
|
|
|
# pragma mark - Perfect
|
|
|
|
- (NSString *) conjugatePerfectVerb:(NSString *) verb {
|
|
NSString * verbStem = [self getStem:verb];
|
|
NSString * verbExit = [self getExit:verb];
|
|
|
|
if ( [verb rangeOfString:@"abrir"].location != NSNotFound)
|
|
return [verb stringByReplacingCharactersInRange:[verb rangeOfString:@"abrir"] withString:@"abierto"];
|
|
if ( [verb rangeOfString:@"cubrir"].location != NSNotFound)
|
|
return [verb stringByReplacingCharactersInRange:[verb rangeOfString:@"cubrir"] withString:@"cubierto"];
|
|
if ( [verb rangeOfString:@"decir"].location != NSNotFound)
|
|
return [verb stringByReplacingCharactersInRange:[verb rangeOfString:@"decir"] withString:@"dicho"];
|
|
if ( [verb rangeOfString:@"escribir"].location != NSNotFound)
|
|
return [verb stringByReplacingCharactersInRange:[verb rangeOfString:@"escribir"] withString:@"escrito"];
|
|
if ( [verb rangeOfString:@"hacer"].location != NSNotFound)
|
|
return [verb stringByReplacingCharactersInRange:[verb rangeOfString:@"hacer"] withString:@"hecho"];
|
|
if ( [verb rangeOfString:@"morir"].location != NSNotFound)
|
|
return [verb stringByReplacingCharactersInRange:[verb rangeOfString:@"morir"] withString:@"muerto"];
|
|
if ( [verb rangeOfString:@"poner"].location != NSNotFound)
|
|
return [verb stringByReplacingCharactersInRange:[verb rangeOfString:@"poner"] withString:@"puesto"];
|
|
if ( [verb rangeOfString:@"romper"].location != NSNotFound)
|
|
return [verb stringByReplacingCharactersInRange:[verb rangeOfString:@"romper"] withString:@"roto"];
|
|
if ( [verb rangeOfString:@"volver"].location != NSNotFound)
|
|
return [verb stringByReplacingCharactersInRange:[verb rangeOfString:@"volver"] withString:@"vuelto"];
|
|
if ( [verb isEqualToString:@"ver"]) return @"visto";
|
|
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"ado"];
|
|
else if ( [@"ír" isEqualToString:verbExit] )
|
|
return [verbStem stringByAppendingString:@"ído"];
|
|
else return [verbStem stringByAppendingString:@"ido"];
|
|
|
|
return verb;
|
|
}
|
|
|
|
// El perfecto
|
|
- (NSString *) conjugatePresentPerfectVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
// Present of haber + Perfect tense
|
|
return [[[self conjugateSimplePresentVerb:@"haber" inPerson:person] stringByAppendingString:@" "] stringByAppendingString:[self conjugatePerfectVerb:verb]];
|
|
|
|
}
|
|
|
|
// El perfecto de subjuntivo
|
|
- (NSString *) conjugatePerfectSubjunctiveVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
// Present of haber + Perfect tense
|
|
return [[[self conjugatePresentSubjunctiveVerb:@"haber" inPerson:person] stringByAppendingString:@" "] stringByAppendingString:[self conjugatePerfectVerb:verb]];
|
|
|
|
}
|
|
|
|
// el pluscuamperfecto
|
|
- (NSString *) conjugatePastPerfectVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
// Past of haber + Perfect tense
|
|
return [[[self conjugateImperfectVerb:@"haber" inPerson:person] stringByAppendingString:@" "] stringByAppendingString:[self conjugatePerfectVerb:verb]];
|
|
|
|
}
|
|
|
|
// el pluscuamperfecto de subjuntivo
|
|
- (NSString *) conjugatePastPerfectSubjunctiveVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
// Past of haber + Perfect tense
|
|
return [[[self conjugateImperfectSubjunctiveVerb:@"haber" inPerson:person] stringByAppendingString:@" "] stringByAppendingString:[self conjugatePerfectVerb:verb]];
|
|
|
|
}
|
|
|
|
// el futuro perfecto
|
|
- (NSString *) conjugateFuturePerfectVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
// Future of haber + Perfect tense
|
|
return [[[self conjugateFutureVerb:@"haber" inPerson:person] stringByAppendingString:@" "] stringByAppendingString:[self conjugatePerfectVerb:verb]];
|
|
|
|
}
|
|
|
|
// el condicional perfecto
|
|
- (NSString *) conjugateConditionalPerfectVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
// Future of haber + Perfect tense
|
|
return [[[self conjugateConditionalVerb:@"haber" inPerson:person] stringByAppendingString:@" "] stringByAppendingString:[self conjugatePerfectVerb:verb]];
|
|
}
|
|
|
|
# pragma mark - Gerund
|
|
|
|
- (NSString *) conjugateGerundVerb:(NSString *) verb inPerson:(NSString *) person {
|
|
|
|
NSString * verbStem = [self getStem:verb];
|
|
NSString * verbExit = [self getExit:verb];
|
|
|
|
// Irregular
|
|
if ( [verb isEqualToString:@"ir"]) return @"yendo";
|
|
|
|
if ( verbStem.length > 1 && (
|
|
[[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"a"] ||
|
|
[[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"e"] ||
|
|
[[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"i"]))
|
|
// If the stem of an -er or -ir ends in a vowel, the -i of the 3rd person changes to y
|
|
return [verbStem stringByAppendingString:@"yendo"];
|
|
|
|
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] ) {
|
|
// Verb changes stem from e to i
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"];
|
|
}
|
|
|
|
if ( [[self simplePresentOtoUEstemChangersArray] containsObject:verb] ) {
|
|
// Verb changes stem from o to u
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"u"];
|
|
}
|
|
if ( [[self simplePresentEtoIstemChangersArray] containsObject:verb] ) {
|
|
// Verb changes stem from e to i
|
|
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"];
|
|
}
|
|
|
|
// Regular
|
|
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"ando"];
|
|
else return [verbStem stringByAppendingString:@"iendo"];
|
|
|
|
return verb;
|
|
}
|
|
|
|
# pragma mark - Conjugate Verb
|
|
|
|
- (NSString *) conjugateVerb:(NSString *) verb inPerson:(NSString *) person andTense:(Tense *) tense {
|
|
BOOL reflexive = FALSE;
|
|
NSString * conjugated = nil;
|
|
|
|
if ( [[self getExit:verb] isEqualToString:@"se"] ) {
|
|
reflexive = TRUE;
|
|
// Getting the stem will remove the last 2 characters
|
|
verb = [self getStem:verb];
|
|
}
|
|
|
|
if ( [tense.tense isEqualToString:@"SIMPLE_PRESENT"])
|
|
conjugated = [self conjugateSimplePresentVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"PRESENT_SUBJUNCTIVE"])
|
|
conjugated = [self conjugatePresentSubjunctiveVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"SIMPLE_PAST"])
|
|
conjugated = [self conjugateSimplePastVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"IMPERFECT"])
|
|
conjugated = [self conjugateImperfectVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"IMPERFECT_SUBJUNCTIVE"])
|
|
conjugated = [self conjugateImperfectSubjunctiveVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"FUTURE"])
|
|
conjugated = [self conjugateFutureVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"PERFECT"])
|
|
conjugated = [self conjugatePerfectVerb:verb];
|
|
else if ( [tense.tense isEqualToString:@"PRESENT_PERFECT"])
|
|
conjugated = [self conjugatePresentPerfectVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"PERFECT_SUBJUNCTIVE"])
|
|
conjugated = [self conjugatePerfectSubjunctiveVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"PAST_PERFECT"]) // Pluscuamperfecto
|
|
conjugated = [self conjugatePastPerfectVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"PAST_PERFECT_SUBJUNCTIVE"]) // Pluscuamperfecto de subjuntivo
|
|
conjugated = [self conjugatePastPerfectSubjunctiveVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"FUTURE_PERFECT"])
|
|
conjugated = [self conjugateFuturePerfectVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"CONDITIONAL_PERFECT"])
|
|
conjugated = [self conjugateConditionalPerfectVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"CONDITIONAL"])
|
|
conjugated = [self conjugateConditionalVerb:verb inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"GERUND"])
|
|
conjugated = [self conjugateGerundVerb:verb inPerson:person];
|
|
else
|
|
return @"Invalid tense";
|
|
|
|
if ( reflexive ) {
|
|
NSLog(@"%@",[[[[self reflexivePersons] objectForKey:person] stringByAppendingString:@" "] stringByAppendingString:conjugated]);
|
|
return [[[[self reflexivePersons] objectForKey:person] stringByAppendingString:@" "] stringByAppendingString:conjugated];
|
|
}
|
|
else {
|
|
return conjugated;
|
|
}
|
|
|
|
}
|
|
|
|
#pragma mark - Generate test answers
|
|
|
|
- (NSMutableArray *)addToAnswers:(NSMutableArray *)answers withCorrectAnswer:(NSString *) correct conjugation:(NSString *) conjugation
|
|
{
|
|
if ( [conjugation isEqualToString:correct])
|
|
return answers;
|
|
else
|
|
// Check if answer already exists in array
|
|
for ( NSString * a in answers) {
|
|
if ( [a isEqualToString:conjugation]) return answers;
|
|
}
|
|
[answers addObject:conjugation];
|
|
return answers;
|
|
}
|
|
|
|
- (id) popLastFromArray:(NSMutableArray *)a
|
|
{
|
|
id lastObject = nil;
|
|
if ( a && a.count > 0 ) {
|
|
lastObject = [a lastObject];
|
|
NSLog(@"Popping: %@", lastObject);
|
|
[a removeLastObject];
|
|
}
|
|
return lastObject;
|
|
}
|
|
|
|
- (NSMutableArray *)generateFalseConjugationsSimplePresentVerb:(NSString *) verb inPerson:(NSString *)person withCorrectAnswer:(NSString *)correct
|
|
{
|
|
NSMutableArray *answers = [[NSMutableArray alloc] init];
|
|
NSString *verbExit = [self getExit:verb];
|
|
NSString *verbStem = [self getStem:verb];
|
|
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"]) {
|
|
|
|
if ( [verb isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vaya"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"ido"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayo"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vaye"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"ido"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"ide"];
|
|
}
|
|
if ( ![verb isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"a"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"e"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ó"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"é"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"í"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ió"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"o"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"o"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"o"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"o"]];
|
|
|
|
if ( [verbExit isEqualToString:@"er"] ) {
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"e"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"e"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"e"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"e"]];
|
|
}
|
|
|
|
if ( [verbExit isEqualToString:@"ir"] ) {
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"i"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"i"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"i"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"i"]];
|
|
}
|
|
|
|
} else if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"] ) {
|
|
|
|
if ( [verb isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayas"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"idas"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayes"];
|
|
}
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"as"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"es"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"is"]];
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"aste"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"abas"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"iste"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"íais"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"s"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"as"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"as"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"as"]];
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"es"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"es"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"es"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"es"]];
|
|
|
|
if ( [verbExit isEqualToString:@"ir"] ) {
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"is"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"is"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"is"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"is"]];
|
|
}
|
|
|
|
} else if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"]) {
|
|
|
|
if ( [verb isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vaya"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"idas"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayo"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"ido"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"ide"];
|
|
}
|
|
if ( ![verb isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"a"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"á"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"e"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"o"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"é"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"í"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ió"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"aba"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ía"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"o"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"o"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"o"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"o"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"e"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"e"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"e"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"e"]];
|
|
|
|
} else if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"]) {
|
|
|
|
if ( [verb isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayamos"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"idamos"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"idemos"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayemos"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"idemos"];
|
|
}
|
|
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"amos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"emos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"imos"]];
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"abamos"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"íais"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"amos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"amos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"amos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"amos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"emos"]];
|
|
|
|
} else if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"] ) {
|
|
|
|
if ( [verb isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayáis"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"idáis"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"idáis"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayéis"];
|
|
}
|
|
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"áis"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"aís"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"éis"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"eís"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"is"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ís"]];
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"abais"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"abas"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"íais"]];
|
|
}
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] ) {
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"áis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"áis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"áis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"áis"]];
|
|
}
|
|
if ( [verbExit isEqualToString:@"er"] ) {
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"éis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"éis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"éis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"éis"]];
|
|
}
|
|
if ( [verbExit isEqualToString:@"ir"] ) {
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"ís"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"ís"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"ís"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"ís"]];
|
|
}
|
|
} else if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"]) {
|
|
|
|
if ( [verb isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayan"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"iden"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"idan"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayen"];
|
|
}
|
|
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"an"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"en"]];
|
|
|
|
if ( [verbExit isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"in"]];
|
|
}
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ieron"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"aban"]];
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"en"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"en"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"en"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"en"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"an"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"an"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"an"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"an"]];
|
|
|
|
|
|
} else {
|
|
answers = [[NSMutableArray alloc] initWithObjects:@"Answer 1",@"Answer 2",@"Answer 3", @"Answer 4", nil];
|
|
}
|
|
|
|
[answers shuffle];
|
|
return [answers mutableCopy];
|
|
}
|
|
|
|
|
|
- (NSMutableArray *)generateFalseConjugationsSimplePastVerb:(NSString *) verb inPerson:(NSString *)person withCorrectAnswer:(NSString *)correct
|
|
{
|
|
NSMutableArray *answers = [[NSMutableArray alloc] init];
|
|
NSString *verbExit = [self getExit:verb];
|
|
NSString *verbStem = [self getStem:verb];
|
|
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"]) {
|
|
|
|
if ( [verb isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fue"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vaye"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayó"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fí"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"iba"];
|
|
}
|
|
|
|
if ( ![verb isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"a"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"e"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ó"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"é"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"í"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ió"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"é"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"é"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"é"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"é"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"í"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"í"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"í"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"í"]];
|
|
|
|
|
|
} else if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"] ) {
|
|
|
|
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fueste"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayaste"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayeste"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fiësta"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"ibaste"];
|
|
}
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"as"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"es"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"is"]];
|
|
}
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"aste"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"abas"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"iste"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"íais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"aste"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"aste"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"aste"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"aste"]];
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"iste"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"iste"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"iste"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"iste"]];
|
|
|
|
} else if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"]) {
|
|
|
|
|
|
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fui"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayó"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vaye"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fiëstó"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"iba"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"iró"];
|
|
}
|
|
if ( ![verb isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"a"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"á"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"e"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"o"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"é"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"í"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ió"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"aba"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ía"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"o"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"o"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"o"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"o"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"ío"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"ío"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"ío"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"ío"]];
|
|
|
|
} else if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"]) {
|
|
|
|
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fuemos"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayemos"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayamos"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fiëstamos"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"ibamos"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"iramos"];
|
|
}
|
|
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"amos"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"emos"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"imos"]];
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"abamos"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"íais"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"amos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"amos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"amos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"amos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"emos"]];
|
|
|
|
if ( ![verbExit isEqualToString:@"ar"] ) {
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"imos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"imos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"imos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"imos"]];
|
|
|
|
}
|
|
|
|
} else if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"] ) {
|
|
|
|
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fuesteis"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayesteis"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayasteis"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fiëstasteis"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"ibeis"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"ireis"];
|
|
}
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"astáis"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"asteis"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"astais"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"esteis"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"estéis"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"isteis"]];
|
|
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"abais"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"abas"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"áis"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"aís"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"íais"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"éis"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"eís"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"is"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ís"]];
|
|
}
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] ) {
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"astáis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"astáis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"astáis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"astáis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"astais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"astais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"astais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"astais"]];
|
|
|
|
}
|
|
if ( [verbExit isEqualToString:@"er"] ) {
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"esteis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"esteis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"esteis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"esteis"]];
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"estéis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"estéis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"estéis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"estéis"]];
|
|
}
|
|
if ( ![verbExit isEqualToString:@"ar"] ) {
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"ísteis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"ísteis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"ísteis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"ísteis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"isteis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"isteis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"isteis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"isteis"]];
|
|
}
|
|
} else if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"]) {
|
|
|
|
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fuiron"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayaron"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayeron"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fieron"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"ibaron"];
|
|
}
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"an"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"en"]];
|
|
|
|
if ( [verbExit isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"in"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"iron"]];
|
|
}
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ieron"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"eron"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"aron"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"aban"]];
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"aron"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"aron"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"aron"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"aron"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"eron"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"eron"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"eron"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"eron"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"ieron"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"ieron"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"ieron"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"ieron"]];
|
|
|
|
} else {
|
|
answers = [[NSMutableArray alloc] initWithObjects:@"Answer 1",@"Answer 2",@"Answer 3", @"Answer 4", nil];
|
|
}
|
|
|
|
[answers shuffle];
|
|
return [answers mutableCopy];
|
|
}
|
|
|
|
|
|
|
|
- (NSMutableArray *)generateFalseConjugationsImperfectVerb:(NSString *) verb inPerson:(NSString *)person withCorrectAnswer:(NSString *)correct
|
|
{
|
|
NSMutableArray *answers = [[NSMutableArray alloc] init];
|
|
NSString *verbExit = [self getExit:verb];
|
|
NSString *verbStem = [self getStem:verb];
|
|
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[self conjugateImperfectSubjunctiveVerb:verb inPerson:person]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[self conjugateImperfectVerb:verb inPerson:person]];
|
|
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"] ||
|
|
[person isEqualToString:@"THIRD_PERSON_SINGULAR"] ) {
|
|
|
|
if ( [verb isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fue"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vaye"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"vayó"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"fí"];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:@"iba"];
|
|
}
|
|
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"a"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"e"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"í"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ió"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"aba"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ía"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ia"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"aba"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"aba"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"aba"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"aba"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"ía"]];
|
|
|
|
|
|
} else if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"] ) {
|
|
|
|
if ( [verbExit isEqualToString:@"ar"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"as"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"es"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"is"]];
|
|
}
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ias"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ías"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"iás"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"íais"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"abas"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"abas"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"abas"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"abas"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"abas"]];
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"ías"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"ías"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"ías"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"ías"]];
|
|
|
|
} else if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"]) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"amos"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"emos"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"imos"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"abamos"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ábamos"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"iamos"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"íamos"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"íais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"ábamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"ábamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"ábamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"ábamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"íamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"íamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"íamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"íamos"]];
|
|
|
|
|
|
} else if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"] ) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"asteis"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"astais"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"abais"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ábais"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"abaís"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"íais"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"iaís"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"isteis"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"áis"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"éis"]];
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"abais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"abais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"abais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"abais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"íais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"íais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"íais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"íais"]];
|
|
|
|
} else if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"]) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"an"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"en"]];
|
|
|
|
if ( [verbExit isEqualToString:@"ir"] ) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"in"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"iron"]];
|
|
}
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ieron"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"eron"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"aron"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"aban"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ían"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ián"]];
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ian"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"aban"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"aban"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"aban"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"aban"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"ían"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"ían"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"ían"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"ían"]];
|
|
|
|
} else {
|
|
answers = [[NSMutableArray alloc] initWithObjects:@"Answer 1",@"Answer 2",@"Answer 3", @"Answer 4", nil];
|
|
}
|
|
|
|
[answers shuffle];
|
|
return [answers mutableCopy];
|
|
}
|
|
|
|
|
|
- (NSMutableArray *)generateFalseConjugationsFutureVerb:(NSString *) verb inPerson:(NSString *)person withCorrectAnswer:(NSString *)correct
|
|
{
|
|
NSMutableArray *answers = [[NSMutableArray alloc] init];
|
|
NSString *verbExit = [self getExit:verb];
|
|
NSString *verbStem = [self getStem:verb];
|
|
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"]) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"é"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"e"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"ó"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"á"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"e"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"ó"]];
|
|
|
|
if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"l"] ||
|
|
[[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"n"]
|
|
))
|
|
{
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"dré"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"drá"]];
|
|
} else if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"c"])
|
|
) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"ré"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"rá"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ré"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"rá"]];
|
|
}
|
|
|
|
if ( [verbExit isEqualToString:@"ir"]) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"í"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"é"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"é"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"é"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"é"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"á"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"á"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"á"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"á"]];
|
|
|
|
} else if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"] ) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"as"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"es"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"és"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"ás"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"es"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"és"]];
|
|
|
|
if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"l"] ||
|
|
[[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"n"]
|
|
))
|
|
{
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"drés"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"drás"]];
|
|
} else if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"c"])
|
|
) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"rés"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"rás"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"rés"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"rás"]];
|
|
}
|
|
|
|
if ( [verbExit isEqualToString:@"ir"]) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"ís"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"és"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"és"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"és"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"és"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"ás"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"ás"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ás"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ás"]];
|
|
|
|
} else if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"]) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"a"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"é"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"ó"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"a"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"é"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"ó"]];
|
|
|
|
if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"l"] ||
|
|
[[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"n"]
|
|
))
|
|
{
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"dré"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"drá"]];
|
|
} else if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"c"])
|
|
) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"ré"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"rá"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ré"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"rá"]];
|
|
}
|
|
|
|
if ( [verbExit isEqualToString:@"ir"]) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"í"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"é"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"é"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"é"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"é"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"á"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"á"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"á"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"á"]];
|
|
|
|
} else if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"]) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"amos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"imos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"abamos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"amos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"imos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"abamos"]];
|
|
|
|
if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"l"] ||
|
|
[[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"n"]
|
|
))
|
|
{
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"dremos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"dramos"]];
|
|
} else if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"c"])
|
|
) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"remos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"ramos"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"remos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ramos"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"emos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"emos"]];
|
|
|
|
|
|
} else if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"] ) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"eís"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"áis"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"aís"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"abáis"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"áis"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"éis"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"abáis"]];
|
|
|
|
if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"l"] ||
|
|
[[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"n"]
|
|
))
|
|
{
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"dréis"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"dráis"]];
|
|
} else if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"c"])
|
|
) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"réis"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"réis"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"réis"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"réis"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ráis"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"éis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"éis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"éis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"éis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"áis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"áis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"áis"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"áis"]];
|
|
|
|
|
|
} else if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"]) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"én"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"an"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"en"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"én"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"án"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"en"]];
|
|
|
|
if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"l"] ||
|
|
[[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"n"]
|
|
))
|
|
{
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"drán"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"dran"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"dren"]];
|
|
} else if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"c"])
|
|
) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"rán"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"ran"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"ren"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"rán"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ran"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ren"]];
|
|
}
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"én"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"én"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"én"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"én"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"án"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"án"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"án"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"án"]];
|
|
|
|
} else {
|
|
answers = [[NSMutableArray alloc] initWithObjects:@"Answer 1",@"Answer 2",@"Answer 3", @"Answer 4", nil];
|
|
}
|
|
|
|
[answers shuffle];
|
|
return [answers mutableCopy];
|
|
}
|
|
|
|
- (NSMutableArray *)generateFalseConjugationsConditionalVerb:(NSString *) verb inPerson:(NSString *)person withCorrectAnswer:(NSString *)correct
|
|
{
|
|
NSMutableArray *answers = [[NSMutableArray alloc] init];
|
|
NSString *verbExit = [self getExit:verb];
|
|
NSString *verbStem = [self getStem:verb];
|
|
|
|
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"]) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"é"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"ia"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"a"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ía"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"á"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"ía"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"é"]];
|
|
|
|
if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"l"] ||
|
|
[[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"n"]
|
|
))
|
|
{
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"dría"]];
|
|
} else if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"c"])
|
|
) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"ría"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ría"]];
|
|
}
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
} else if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"] ) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"és"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"ias"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"as"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ías"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"as"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"ias"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"é"]];
|
|
|
|
if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"l"] ||
|
|
[[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"n"]
|
|
))
|
|
{
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"drías"]];
|
|
} else if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"c"])
|
|
) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"rías"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"rías"]];
|
|
}
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"ías"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"ías"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ías"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ías"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"ías"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"ías"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ías"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ías"]];
|
|
|
|
} else if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"]) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"é"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"ia"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"a"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ía"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"á"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"ía"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"é"]];
|
|
|
|
if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"l"] ||
|
|
[[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"n"]
|
|
))
|
|
{
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"dría"]];
|
|
} else if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"c"])
|
|
) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"ría"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ría"]];
|
|
}
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ía"]];
|
|
|
|
} else if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"]) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"émos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"iamos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"amas"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"íamos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"ámos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"íamos"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"émos"]];
|
|
|
|
if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"l"] ||
|
|
[[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"n"]
|
|
))
|
|
{
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"dríamos"]];
|
|
} else if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"c"])
|
|
) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"ríamos"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ríamos"]];
|
|
}
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"íamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"íamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"íamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"íamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"íamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"íamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"íamos"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"íamos"]];
|
|
|
|
} else if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"] ) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"eís"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"áis"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"aís"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"abáis"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"íais"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"ás"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"íais"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"íeis"]];
|
|
|
|
if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"l"] ||
|
|
[[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"n"]
|
|
))
|
|
{
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"dríais"]];
|
|
} else if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"c"])
|
|
) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"ríais"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ríais"]];
|
|
}
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"íais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"íais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"íais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"íais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"íais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"íais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"íais"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"íais"]];
|
|
|
|
} else if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"]) {
|
|
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"én"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"ian"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verb stringByAppendingString:@"an"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"ía"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"án"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"ían"]];
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[self getFutureStem:verb] stringByAppendingString:@"én"]];
|
|
|
|
if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"l"] ||
|
|
[[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"n"]
|
|
))
|
|
{
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"drían"]];
|
|
} else if ( verbStem.length > 1 &&
|
|
([[verbStem substringFromIndex:verbStem.length -1] isEqualToString:@"c"])
|
|
) {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[verbStem substringToIndex:verbStem.length -1] stringByAppendingString:@"rían"]];
|
|
} else {
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[verbStem stringByAppendingString:@"rían"]];
|
|
}
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"ían"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"ían"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ían"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ían"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:verbExit] stringByAppendingString:@"ían"]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:verbExit] stringByAppendingString:@"ían"]];
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ían"]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers withCorrectAnswer:correct conjugation:[[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:verbExit] stringByAppendingString:@"ían"]];
|
|
|
|
} else {
|
|
answers = [[NSMutableArray alloc] initWithObjects:@"Answer 1",@"Answer 2",@"Answer 3", @"Answer 4", nil];
|
|
}
|
|
|
|
[answers shuffle];
|
|
return [answers mutableCopy];
|
|
}
|
|
|
|
|
|
|
|
- (NSMutableArray *)generateFalseConjugationsPerfectVerb:(NSString *) verb withHaberConjugation:(NSString *)haberConj withCorrectAnswer:(NSString *)correct inPerson:(NSString *)person
|
|
{
|
|
NSMutableArray *answers = [[NSMutableArray alloc] init];
|
|
NSString *verbExit = [self getExit:verb];
|
|
NSString *verbStem = [self getStem:verb];
|
|
|
|
if ((arc4random() % 2) == 0 ) {
|
|
|
|
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[self conjugateFuturePerfectVerb:verb inPerson:person]];
|
|
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[self conjugatePastPerfectVerb:verb inPerson:person]];
|
|
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[self conjugatePresentPerfectVerb:verb inPerson:person]];
|
|
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[self conjugatePastPerfectSubjunctiveVerb:verb inPerson:person]];
|
|
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[self conjugatePerfectSubjunctiveVerb:verb inPerson:person]];
|
|
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[self conjugateConditionalPerfectVerb:verb inPerson:person]];
|
|
|
|
} else {
|
|
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[verbStem stringByAppendingString:@"ado"]]];
|
|
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[verbStem stringByAppendingString:@"ido"]]];
|
|
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[verbStem stringByAppendingString:@"endo"]]];
|
|
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[verbStem stringByAppendingString:@"iendo"]]];
|
|
|
|
if ( [verbExit isEqualToString:@"ir"]){
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[verbStem stringByAppendingString:@"ierto"]]];
|
|
}
|
|
|
|
if ( [verbExit isEqualToString:@"ar"]){
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"ado"]]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"ado"]]];
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"ado"]]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"ado"]]];
|
|
} else {
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"ie"] stringByAppendingString:@"ido"]]];
|
|
|
|
if ( [verbStem rangeOfString:@"e" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e" options:NSBackwardsSearch] withString:@"i"] stringByAppendingString:@"ido"]]];
|
|
|
|
|
|
if ( [verbStem rangeOfString:@"o" options:NSBackwardsSearch].location != NSNotFound)
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o" options:NSBackwardsSearch] withString:@"ue"] stringByAppendingString:@"ido"]]];
|
|
|
|
if ( [verbStem rangeOfString:@"u"].location != NSNotFound)
|
|
[self addToAnswers:answers
|
|
withCorrectAnswer:correct
|
|
conjugation:[[haberConj stringByAppendingString:@" "] stringByAppendingString:[[verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"u"] withString:@"ue"] stringByAppendingString:@"ido"]]];
|
|
}
|
|
}
|
|
|
|
[answers shuffle];
|
|
return [answers mutableCopy];
|
|
}
|
|
|
|
- (NSMutableArray *) getTestConjugationsForVerb:(NSString *) verb inPerson:(NSString *) person andTense:(Tense *) tense {
|
|
|
|
BOOL reflexive = FALSE;
|
|
|
|
NSLog(@"Getting test conjugation for %@ in person %@ and %@",verb,person,tense);
|
|
|
|
if ( [[self getExit:verb] isEqualToString:@"se"] ) {
|
|
reflexive = TRUE;
|
|
// Getting the stem will remove the last 2 characters
|
|
verb = [self getStem:verb];
|
|
}
|
|
|
|
NSString * correctAnswer = nil;
|
|
NSMutableArray * wrongAnswers = nil;
|
|
NSMutableArray * answers = [[NSMutableArray alloc] init];
|
|
|
|
if ( reflexive) {
|
|
correctAnswer = [[[[self reflexivePersons] objectForKey:person] stringByAppendingString:@" "] stringByAppendingString:[self conjugateVerb:verb inPerson:person andTense:tense]];
|
|
} else {
|
|
correctAnswer = [self conjugateVerb:verb inPerson:person andTense:tense];
|
|
}
|
|
|
|
|
|
NSLog(@"Correct answer: %@", correctAnswer);
|
|
|
|
if ( [tense.tense isEqualToString:@"SIMPLE_PRESENT"])
|
|
wrongAnswers = [self generateFalseConjugationsSimplePresentVerb:verb inPerson:person withCorrectAnswer:correctAnswer];
|
|
else if ( [tense.tense isEqualToString:@"PRESENT_SUBJUNCTIVE"])
|
|
wrongAnswers = [self generateFalseConjugationsSimplePresentVerb:verb inPerson:person withCorrectAnswer:correctAnswer];
|
|
else if ( [tense.tense isEqualToString:@"SIMPLE_PAST"])
|
|
wrongAnswers = [self generateFalseConjugationsSimplePastVerb:verb inPerson:person withCorrectAnswer:correctAnswer];
|
|
else if ( [tense.tense isEqualToString:@"IMPERFECT"])
|
|
wrongAnswers = [self generateFalseConjugationsImperfectVerb:verb inPerson:person withCorrectAnswer:correctAnswer];
|
|
else if ( [tense.tense isEqualToString:@"IMPERFECT_SUBJUNCTIVE"])
|
|
wrongAnswers = [self generateFalseConjugationsImperfectVerb:verb inPerson:person withCorrectAnswer:correctAnswer];
|
|
else if ( [tense.tense isEqualToString:@"PRESENT_PERFECT"])
|
|
wrongAnswers = [self generateFalseConjugationsPerfectVerb:verb withHaberConjugation:[self conjugateSimplePresentVerb:@"haber" inPerson:person] withCorrectAnswer:correctAnswer inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"PERFECT_SUBJUNCTIVE"])
|
|
wrongAnswers = [self generateFalseConjugationsPerfectVerb:verb withHaberConjugation:[self conjugatePresentSubjunctiveVerb:@"haber" inPerson:person] withCorrectAnswer:correctAnswer inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"PAST_PERFECT"])
|
|
wrongAnswers = [self generateFalseConjugationsPerfectVerb:verb withHaberConjugation:[self conjugateImperfectVerb:@"haber" inPerson:person] withCorrectAnswer:correctAnswer inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"PAST_PERFECT_SUBJUNCTIVE"])
|
|
wrongAnswers = [self generateFalseConjugationsPerfectVerb:verb withHaberConjugation:[self conjugateImperfectSubjunctiveVerb:@"haber" inPerson:person] withCorrectAnswer:correctAnswer inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"FUTURE"])
|
|
wrongAnswers = [self generateFalseConjugationsFutureVerb:verb inPerson:person withCorrectAnswer:correctAnswer];
|
|
else if ( [tense.tense isEqualToString:@"FUTURE_PERFECT"])
|
|
wrongAnswers = [self generateFalseConjugationsPerfectVerb:verb withHaberConjugation:[self conjugateFutureVerb:@"haber" inPerson:person] withCorrectAnswer:correctAnswer inPerson:person];
|
|
else if ( [tense.tense isEqualToString:@"CONDITIONAL"])
|
|
wrongAnswers = [self generateFalseConjugationsConditionalVerb:verb inPerson:person withCorrectAnswer:correctAnswer];
|
|
else if ( [tense.tense isEqualToString:@"CONDITIONAL_PERFECT"])
|
|
wrongAnswers = [self generateFalseConjugationsPerfectVerb:verb withHaberConjugation:[self conjugateConditionalVerb:@"haber" inPerson:person] withCorrectAnswer:correctAnswer inPerson:person];
|
|
else
|
|
wrongAnswers = [[NSMutableArray alloc] initWithObjects:@"Answer 1",@"Answer 2",@"Answer 3", nil];
|
|
|
|
if ( reflexive) {
|
|
// Need to correct the wrong answers
|
|
NSMutableArray *rAnswers = [[NSMutableArray alloc] init];
|
|
for ( NSString * v in wrongAnswers){
|
|
[rAnswers addObject:[[[[self reflexivePersons] objectForKey:person] stringByAppendingString:@" "] stringByAppendingString:v]];
|
|
}
|
|
wrongAnswers = rAnswers;
|
|
}
|
|
|
|
// Add the correct answer
|
|
[answers addObject:correctAnswer];
|
|
|
|
// add 3 wrong answers
|
|
[answers addObject:[self popLastFromArray:wrongAnswers]];
|
|
[answers addObject:[self popLastFromArray:wrongAnswers]];
|
|
[answers addObject:[self popLastFromArray:wrongAnswers]];
|
|
|
|
[answers shuffle];
|
|
return [answers mutableCopy];
|
|
}
|
|
|
|
@end
|