All Data Structures Files Functions Variables Enumerations Enumerator Properties Defines
/Projects/Cogito/src/Utils/Utils.m
Go to the documentation of this file.
00001 //
00002 //  Utils.h
00003 //  Author: Thomas Taylor
00004 //
00005 //  A class of static 'util' methods
00006 //
00007 //  18/12/2011: Created class
00008 //
00009 
00010 #import "Utils.h"
00011 
00012 @implementation Utils
00013 
00021 +(int)generateRandomNumberFrom:(int)_min to:(int)_max
00022 {
00023     return (CCRANDOM_0_1() * (_max - _min) + _min);
00024 }
00025 
00031 +(NSString*)getTimeStampWithFormat:(NSString*)_format
00032 {
00033     // set up the format
00034     NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
00035     [dateFormatter setDateFormat:_format];
00036     
00037     // create the string
00038     NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
00039     [dateFormatter release];
00040     
00041     return dateString;
00042 }
00043 
00051 +(UIColor*)getUIColourFromRed:(int)_red green:(int)_green blue:(int)_blue
00052 {
00053     return [UIColor colorWithRed:(float)_red/255.0 green:(float)_green/255.0 blue:(float)_blue/255.0 alpha:1.0];
00054 }
00055 
00061 +(NSString*)secondsToMinutes:(int)_seconds
00062 {
00063     int quotient = floor(_seconds/60);
00064     int remainder = fmod(_seconds, 60);
00065     
00066     NSString* quotientString = (quotient < 10) ? [NSString stringWithFormat:@"0%i", quotient] : [NSString stringWithFormat:@"%i", quotient];
00067     NSString* remainderString = (remainder < 10) ? [NSString stringWithFormat:@"0%i", remainder] : [NSString stringWithFormat:@"%i", remainder];
00068     
00069     return [NSString stringWithFormat:@"%@:%@", quotientString, remainderString];
00070 }
00071 
00076 +(NSDictionary*)loadPlistFromFile:(NSString*)_filename
00077 {
00078     NSString *plistPath;
00079     
00080     // Get path to plist file
00081     NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
00082     plistPath = [rootPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%.plist", _filename]];
00083     if(![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) plistPath = [[NSBundle mainBundle] pathForResource:_filename ofType:@"plist"];
00084     
00085     // Read the plist file and return the dictionary
00086     NSDictionary *plistDictionary = [NSDictionary dictionaryWithContentsOfFile:plistPath];
00087     return plistDictionary;
00088 }
00089 
00094 +(void)listAvailableFonts
00095 {
00096     NSMutableArray *fontNames = [[NSMutableArray alloc] init];
00097     NSArray *fontFamilyNames = [UIFont familyNames];
00098     
00099     for (NSString *familyName in fontFamilyNames) 
00100     {
00101         NSArray *names = [UIFont fontNamesForFamilyName:familyName];
00102         [fontNames addObjectsFromArray:names];
00103     }
00104     
00105     [fontNames sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
00106     NSLog(@"%@", fontNames);
00107     [fontNames release];
00108 }
00109 
00115 +(NSString*)getActionAsString:(Action)_action
00116 {
00117     NSString* action = nil;
00118     
00119     switch (_action) 
00120     {
00121         case kActionLeft:
00122             action = @"Left";
00123             break;
00124             
00125         case kActionLeftHelmet:
00126             action = @"Left (helmet)";
00127             break;
00128             
00129         case kActionRight:
00130             action = @"Right";
00131             break;
00132             
00133         case kActionRightHelmet:
00134             action = @"Right (helmet)";
00135             break;
00136             
00137         case kActionDown:
00138             action = @"Down";
00139             break;
00140             
00141         case kActionDownUmbrella:
00142             action = @"Down (umbrella)";
00143             break;
00144             
00145         case kActionEquipUmbrella:
00146             action = @"Equip umbrella";
00147             break;
00148             
00149         default:
00150             action = [NSString stringWithFormat:@"unknown Action: %i", _action];
00151             break;
00152     }
00153     
00154     return action;
00155 
00156 }
00157 
00163 +(NSString*)getBooleanAsString:(BOOL)_bool
00164 {
00165     return (_bool) ? @"YES" : @"NO";
00166 }
00167 
00173 +(NSString*)getDifficultyAsString:(Difficulty)_difficulty
00174 {
00175     NSString* difficulty = nil;
00176     
00177     switch(_difficulty) 
00178     {
00179         case kDifficultyEasy:
00180             difficulty = @"Easy";
00181             break;
00182             
00183         case kDifficultyNormal:
00184             difficulty = @"Normal";
00185             break;
00186             
00187         case kDifficultyHard:
00188             difficulty = @"Hard";
00189             break;
00190             
00191         default:
00192             difficulty = [NSString stringWithFormat:@"unknown Difficulty: %i", _difficulty];
00193             break;
00194     }
00195     
00196     return difficulty;
00197 }
00198 
00204 +(NSString*)getLearningTypeAsString:(MachineLearningType)_learningType
00205 {
00206     NSString* learningType = nil;
00207     
00208     switch (_learningType) 
00209     {
00210         case kLearningMixed:
00211             learningType = @"Mixed";
00212             break;
00213             
00214         case kLearningReinforcement:
00215             learningType = @"Reinforcement";
00216             break;
00217             
00218         case kLearningTree:
00219             learningType = @"Decision Tree";
00220             break;
00221             
00222         case kLearningShortestRoute:
00223             learningType = @"Shortest Route";
00224             break;
00225             
00226         case kLearningNone:
00227             learningType = @"None";
00228             break;
00229             
00230         default:
00231             learningType = @"unknown MachineLearningType";
00232             break;
00233     }
00234     
00235     return learningType;
00236     
00237 }
00238 
00244 +(NSString*)getObjectAsString:(GameObjectType)_object
00245 {
00246     NSString* object = nil;
00247     
00248     switch (_object) 
00249     {
00250         case kObjectTypeNone:
00251             object = @"None";
00252             break;
00253             
00254         case kObjectExit:
00255             object = @"Exit";
00256             break;
00257             
00258         case kObjectTrapdoor:
00259             object = @"Trapdoor";
00260             break;
00261             
00262         case kObjectTerrain:
00263             object = @"Terrain";
00264             break;
00265             
00266         case kObjectTerrainEnd:
00267             object = @"Terrain End";
00268             break;
00269             
00270         case kObstaclePit:
00271             object = @"Pit";
00272             break;
00273             
00274         case kObstacleCage:
00275             object = @"Cage";
00276             break;
00277             
00278         case kObstacleWater:
00279             object = @"Water";
00280             break;
00281             
00282         case kObstacleStamper:
00283             object = @"Stamper";
00284             break;
00285             
00286         default:
00287             object = @"Unknown GameObject";
00288             break;
00289     }
00290  
00291     return object;
00292 }
00293 
00299 +(NSString*)getRatingAsString:(GameRating)_rating
00300 {
00301     NSString* rating = nil;
00302     
00303     switch (_rating) 
00304     {
00305         case kRatingA:
00306             rating = @"A";
00307             break;
00308             
00309         case kRatingB:
00310             rating = @"B";
00311             break;
00312             
00313         case kRatingC:
00314             rating = @"C";
00315             break;
00316             
00317         case kRatingD:
00318             rating = @"D";
00319             break;
00320             
00321         case kRatingF:
00322             rating = @"F";
00323             break;
00324             
00325         default:
00326             rating = @"Unknown GameRating";
00327             break;
00328     }
00329   
00330     return rating;
00331 }
00332 
00338 +(NSString*)getStateAsString:(CharacterStates)_state
00339 {
00340     NSString* state = nil;
00341     
00342     switch (_state) 
00343     {
00344         case kStateSpawning:
00345             state = @"Spawning";
00346             break;
00347             
00348         case kStateFalling:
00349             state = @"Falling";
00350             break;
00351             
00352         case kStateIdle:
00353             state = @"Idle";
00354             break;
00355             
00356         case kStateWalking:
00357             state = @"Walking";
00358             break;
00359             
00360         case kStateFloating:
00361             state = @"Floating";
00362             break;
00363             
00364         case kStateDead:
00365             state = @"Dead";
00366             break;
00367             
00368         case kStateWin:
00369             state = @"CHARLIE SHEEN";
00370             break;
00371             
00372         default:
00373             state = @"unknown CharacterState";
00374             break;
00375     }
00376     
00377     return state;
00378 }
00379 
00380 @end