#import "PolygonShape.h"
@implementation PolygonShape
@synthesize numberOfSides, minimumNumberOfSides, maximumNumberOfSides, name;
- (void) setNumberOfSides:(int) numSides {
if (numSides > maximumNumberOfSides) {
NSLog(@"Invalid number of sides: %d is greater than the maximum of %d allowed",numSides, maximumNumberOfSides);
return;
}
if (numSides < minimumNumberOfSides) {
NSLog(@"Invalid number of sides: %d is less than the minimmum of %d allowed",numSides, minimumNumberOfSides);
return;
}
numberOfSides = numSides;
}
- (void) setMinimumNumberOfSides:(int) newMin {
if (newMin < 2) {
NSLog(@"Invalid number of minimum sides, %d is less than 2", newMin);
return;
}
minimumNumberOfSides = newMin;
}
- (void) setMaximumNumberOfSides:(int) newMax {
if (newMax > 12) {
NSLog(@"Invalid number of maximum sides, %d is more than 2", newMax);
return;
}
maximumNumberOfSides = newMax;
}
- (id) initWithNumberOfSides: (int) numSides minimumNumberOfSides:(int) minSides maximumNumberOfSides:(int) maxSides {
[self setMinimumNumberOfSides:minSides];
[self setMaximumNumberOfSides:maxSides];
[self setNumberOfSides:numSides];
NSLog([self description]);
return self;
};
- (id) init {
return self = [[PolygonShape alloc] initWithNumberOfSides:5 minimumNumberOfSides:3 maximumNumberOfSides:10];
};
- (NSString *) description {
float degAngle = (float) (180 * (float) (numberOfSides-2) / numberOfSides);
float radAngle = (float) degAngle/180 * M_PI;
NSArray *polyName = [NSArray arrayWithObjects: @"triangle", @"square", @"pentagon", @"hexagon", @"heptagon",
@"octagon" , @"enneagon", @"decagon", @"hendecagon", @"dodecagon", nil];
return [NSString stringWithFormat:@"Hello, I am a %d-sided polygon (aka a %@) with angles of %0.0f degrees (%f radians).",
numberOfSides, [polyName objectAtIndex: (numberOfSides-3)], degAngle, radAngle];
}
- (void) dealloc {
[super dealloc];
NSLog(@"A poly just died");
};
@end