Ajout première partie
This commit is contained in:
parent
90f99960fe
commit
1254e2946a
3 changed files with 104 additions and 0 deletions
45
jour14/jour14.m
Normal file
45
jour14/jour14.m
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#import "raindeer.h"
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// obligatoire dans un main
|
||||||
|
NSAutoreleasePool *myPool = [[NSAutoreleasePool alloc] init];
|
||||||
|
NSString *path = @"input";
|
||||||
|
NSError *err;
|
||||||
|
NSString *contentFile = [[NSString alloc] initWithContentsOfFile:path
|
||||||
|
encoding:NSUTF8StringEncoding
|
||||||
|
error:&err];
|
||||||
|
NSArray *lines = [contentFile componentsSeparatedByString:@"\n"];
|
||||||
|
NSMutableArray *listDeer = [[NSMutableArray alloc] init];
|
||||||
|
|
||||||
|
for (NSString *tmp in lines)
|
||||||
|
{
|
||||||
|
NSArray *parsedSpace = [tmp componentsSeparatedByString:@" "];
|
||||||
|
if ([parsedSpace count] > 2)
|
||||||
|
{
|
||||||
|
Raindeer *rd = [Raindeer initWithName:[parsedSpace objectAtIndex:0]
|
||||||
|
zatSpeed:[[parsedSpace objectAtIndex:3] integerValue]
|
||||||
|
boostTime:[[parsedSpace objectAtIndex:6] integerValue]
|
||||||
|
LunchTime:[[parsedSpace objectAtIndex:13] integerValue]];
|
||||||
|
[listDeer addObject:rd];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int ret = 0;
|
||||||
|
int tmp = 0;
|
||||||
|
for (Raindeer *rd in listDeer)
|
||||||
|
{
|
||||||
|
tmp = [rd calculDistance:2503];
|
||||||
|
if (tmp > ret)
|
||||||
|
ret = tmp;
|
||||||
|
[rd release];
|
||||||
|
}
|
||||||
|
NSLog(@"le résultat est : %d", ret);
|
||||||
|
|
||||||
|
//finir le main par ça
|
||||||
|
[contentFile release];
|
||||||
|
[listDeer release];
|
||||||
|
[myPool drain];
|
||||||
|
return 0;
|
||||||
|
}
|
19
jour14/raindeer.h
Normal file
19
jour14/raindeer.h
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface Raindeer : NSObject
|
||||||
|
{
|
||||||
|
NSString *name;
|
||||||
|
int speed;
|
||||||
|
int boostTime;
|
||||||
|
int pause;
|
||||||
|
}
|
||||||
|
|
||||||
|
// permet de générer des setters et getter selon des attributs
|
||||||
|
// ici retain, nonatomic et assign
|
||||||
|
@property (retain, nonatomic) NSString *name;
|
||||||
|
@property (assign) int speed, boostTime, pause;
|
||||||
|
|
||||||
|
+ (id) initWithName:(NSString*)name zatSpeed:(int)speed boostTime:(int)timeSpeed LunchTime:(int)pause;
|
||||||
|
- (int) calculDistance:(int)time;
|
||||||
|
|
||||||
|
@end
|
40
jour14/raindeer.m
Normal file
40
jour14/raindeer.m
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
#import "raindeer.h"
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@implementation Raindeer
|
||||||
|
|
||||||
|
// permet de créer les getters et setters à partir de property
|
||||||
|
@synthesize name, speed, boostTime, pause;
|
||||||
|
|
||||||
|
+ (id) initWithName:(NSString*)name zatSpeed:(int)speed boostTime:(int)boostTime LunchTime:(int)pause
|
||||||
|
{
|
||||||
|
Raindeer *new;
|
||||||
|
if ((new = [[Raindeer alloc] init]))
|
||||||
|
{
|
||||||
|
new.name = name;
|
||||||
|
new.speed = speed;
|
||||||
|
new.boostTime = boostTime;
|
||||||
|
new.pause = pause;
|
||||||
|
}
|
||||||
|
return new;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (int) calculDistance:(int) time
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
while (time > 0)
|
||||||
|
{
|
||||||
|
int rest = boostTime - time;
|
||||||
|
ret += (rest > 0) ? speed * rest : speed * boostTime;
|
||||||
|
time -= boostTime + pause;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) dealloc
|
||||||
|
{
|
||||||
|
[name release];
|
||||||
|
[super dealloc];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
Loading…
Reference in a new issue