miércoles, 20 de abril de 2011

Mi segunda aplicación Cocoa Capítulo 3 y útimo

Nos queda la parte que lleva el cálculo, se puede usar, pero no sacar beneficios de él:


#import "PrimitivaAppDelegate.h"

@implementation PrimitivaAppDelegate

@synthesize window;
@synthesize numeros,num1,num2,num3,num4,num5,num6;
@synthesize aordenar;

NSInteger shuffleSort(id n1, id n2, void *context){
int resultado = arc4random()%3;
if (resultado==0) {
return NSOrderedAscending;
}
if (resultado==1) {
return NSOrderedDescending;
}
return NSOrderedSame;
}

-(IBAction)boton {
numeros =[NSMutableArray arrayWithObjects:@" 1",@" 2",@" 3",@" 4",@" 5",@" 6",@" 7",@" 8",@" 9",@"10",
  @"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20",
  @"21",@"22",@"23",@"24",@"25",@"26",@"27",@"28",@"29",@"30",
  @"31",@"32",@"33",@"34",@"35",@"36",@"37",@"38",@"39",@"40",
  @"41",@"42",@"43",@"44",@"45",@"46",@"47",@"48",@"49",nil];
srand(time(nil));
//agitar al agitador, si no se repiten
NSArray *numerosAgitados;
numerosAgitados = [numeros sortedArrayUsingFunction:shuffleSort context:NULL];  //agitar los numeros
// primer numero
int i1 = rand() % 49;   //el que diga random a elegir entre 49
num1 = [numerosAgitados objectAtIndex:i1];
[num1 retain];
NSMutableArray *numerosAgitados1;
numerosAgitados1 =[[NSMutableArray alloc] initWithArray:numerosAgitados];  
//para quitar un numero
  [numerosAgitados1 removeObjectAtIndex:i1];              //quita el que salio
srand(time(nil));
NSArray *numeros2Agitados;
numeros2Agitados = [numerosAgitados1 sortedArrayUsingFunction:shuffleSort context:NULL]; //agitamos
// segundo numero
    int i2 = rand() % 48;
num2 = [numeros2Agitados objectAtIndex:i2];
[num2 retain];
NSMutableArray *numerosAgitados2;
numerosAgitados2 =[[NSMutableArray alloc] initWithArray:numeros2Agitados];   
//para quitar otro numero
[numerosAgitados2 removeObjectAtIndex:i2];               //quita el que salio
srand(time(nil));
NSArray *numeros3Agitados;
numeros3Agitados = [numerosAgitados2 sortedArrayUsingFunction:shuffleSort context:NULL]; 
// tercer numero
int i3 = rand() % 47;
num3 = [numeros3Agitados objectAtIndex:i3];
[num3 retain];
NSMutableArray *numerosAgitados3;
numerosAgitados3 =[[NSMutableArray alloc] initWithArray:numeros3Agitados];
[numerosAgitados3 removeObjectAtIndex:i3];
srand(time(nil));
NSArray *numeros4Agitados;
numeros4Agitados = [numerosAgitados3 sortedArrayUsingFunction:shuffleSort context:NULL]; 
// cuarto numero
int i4 = rand() % 46;
num4 = [numeros4Agitados objectAtIndex:i4];
[num4 retain];
NSMutableArray *numerosAgitados4;
numerosAgitados4 =[[NSMutableArray alloc] initWithArray:numeros4Agitados];
[numerosAgitados4 removeObjectAtIndex:i4];
srand(time(nil));
NSArray *numeros5Agitados;
numeros5Agitados = [numerosAgitados4 sortedArrayUsingFunction:shuffleSort context:NULL]; 
// quinto numero
int i5 = rand() % 45;
num5 = [numeros5Agitados objectAtIndex:i5];
[num5 retain];
NSMutableArray *numerosAgitados5;
numerosAgitados5 =[[NSMutableArray alloc] initWithArray:numeros5Agitados];
[numerosAgitados5 removeObjectAtIndex:i5];
srand(time(nil));
NSArray *numeros6Agitados;
numeros6Agitados = [numerosAgitados5 sortedArrayUsingFunction:shuffleSort context:NULL]; 

// sexto numero
int i6 = rand() % 44;
num6 = [numeros6Agitados objectAtIndex:i6];
[num6 retain];
aordenar = [NSMutableArray arrayWithObjects:num1,num2,num3,num4,num5,num6,nil];
[aordenar sortUsingSelector:@selector(compare:)];
    [eti1 setText:[NSString stringWithFormat:@"%@",[aordenar objectAtIndex:0]]];
[eti2 setText:[NSString stringWithFormat:@"%@",[aordenar objectAtIndex:1]]];
[eti3 setText:[NSString stringWithFormat:@"%@",[aordenar objectAtIndex:2]]];
[eti4 setText:[NSString stringWithFormat:@"%@",[aordenar objectAtIndex:3]]];
[eti5 setText:[NSString stringWithFormat:@"%@",[aordenar objectAtIndex:4]]];
[eti6 setText:[NSString stringWithFormat:@"%@",[aordenar objectAtIndex:5]]];
}

-(void)applicationDidFinishLaunching:(UIApplication *)application{
[window makeKeyAndVisible];
}


@end

Y ejecutando:
Lo que falta se puede obtener con google. Ahora ando viendo como lo hago con Android.

Cordiales

miércoles, 6 de abril de 2011

Mi segunda aplicación Cocoa Capítulo 2

Hoy vamos con los enganches, hay que utilizar el Interface Builder: doble click en MainWindow.xib.
Cuando estén pintados las etiquetas y el botón quedará así:
Es bastante tosco pero el caso es que funcione.
El arrastrar es fácil, tecla control, primero desde el botón hasta PrimitivaAppDelegate, que habremos incluido antes en MainView:
Y cada una de las etiquetas:
Hasta aquí lo bonito, lo que mola, para el próximo y último capítulo el código que gererará los números aleatorios.

Bye