// // RollViewController.m // Each image view is a die. // The first coin is imageView. // Each image view uses the 6 png images in the resource folder to create the #import "TossViewController.h" #import "SelectCoinViewController.h" #import @implementation TossViewController // This creates setter and getter methods for each of the imageViews automatically @synthesize toggleButton; @synthesize imageView,imageView2; @synthesize animationSpeed; @synthesize hopsPerSecond; @synthesize motionManager; @synthesize startLabel; @synthesize coinOneA,coinOneB,coinOneC,coinOneD,coinOneE,coinOneF,coinOneG,coinOneH,coinOneI,coinOneJ; @synthesize coinTwoA,coinTwoB,coinTwoC,coinTwoD,coinTwoE,coinTwoF,coinTwoG,coinTwoH,coinTwoI,coinTwoJ; @synthesize headsTails, headsHeads, tailsHeads, tailsTails; int xCoin = 0; // This variable is used to record the start up of the dice game. // It is used to prevent didViewLoad from rolling the dice on statup // when it is called int amountSelectedCoin = 0; // local varibale to store the amount returned from the Selection method // called returnSelection // default value of 0, which gives one view int r; // used for random side generation, the current toss int r2; int l = 1; // used to record what the last flip was, initialised to heads int l2 = 1; int i; // used to fill the current animation array to be used int i2; int initArrays = 0; int labelcount; // int to keep track of the label values NSMutableArray *randAnimation; NSMutableArray *randAnimation2; NSString *coinOneStringVal; NSString *coinTwoStringVal; bool *animationFinished; -(void) updateLabels { // the method that controls the update of the coinX labels switch (labelcount) { // Golden Lesson, Strings Use %@ for output case 1: coinOneA.text = [NSString stringWithFormat:@" "]; coinTwoA.text = [NSString stringWithFormat:@" "]; coinOneB.text = [NSString stringWithFormat:@" "]; coinTwoB.text = [NSString stringWithFormat:@" "]; coinOneC.text = [NSString stringWithFormat:@" "]; coinTwoC.text = [NSString stringWithFormat:@" "]; coinOneD.text = [NSString stringWithFormat:@" "]; coinTwoD.text = [NSString stringWithFormat:@" "]; coinOneE.text = [NSString stringWithFormat:@" "]; coinTwoE.text = [NSString stringWithFormat:@" "]; coinOneF.text = [NSString stringWithFormat:@" "]; coinTwoF.text = [NSString stringWithFormat:@" "]; coinOneG.text = [NSString stringWithFormat:@" "]; coinTwoG.text = [NSString stringWithFormat:@" "]; coinOneH.text = [NSString stringWithFormat:@" "]; coinTwoH.text = [NSString stringWithFormat:@" "]; coinOneI.text = [NSString stringWithFormat:@" "]; coinTwoI.text = [NSString stringWithFormat:@" "]; coinOneJ.text = [NSString stringWithFormat:@" "]; coinTwoJ.text = [NSString stringWithFormat:@" "]; coinOneA.text = [NSString stringWithFormat:@"%@", coinOneStringVal]; coinTwoA.text = [NSString stringWithFormat:@"%@", coinTwoStringVal]; break; case 2: coinOneB.text = [NSString stringWithFormat:@"%@", coinOneStringVal]; coinTwoB.text = [NSString stringWithFormat:@"%@", coinTwoStringVal]; break; case 3: coinOneC.text = [NSString stringWithFormat:@"%@", coinOneStringVal]; coinTwoC.text = [NSString stringWithFormat:@"%@", coinTwoStringVal]; break; case 4: coinOneD.text = [NSString stringWithFormat:@"%@", coinOneStringVal]; coinTwoD.text = [NSString stringWithFormat:@"%@", coinTwoStringVal]; break; case 5: coinOneE.text = [NSString stringWithFormat:@"%@", coinOneStringVal]; coinTwoE.text = [NSString stringWithFormat:@"%@", coinTwoStringVal]; break; case 6: coinOneF.text = [NSString stringWithFormat:@"%@", coinOneStringVal]; coinTwoF.text = [NSString stringWithFormat:@"%@", coinTwoStringVal]; break; case 7: coinOneG.text = [NSString stringWithFormat:@"%@", coinOneStringVal]; coinTwoG.text = [NSString stringWithFormat:@"%@", coinTwoStringVal]; break; case 8: coinOneH.text = [NSString stringWithFormat:@"%@", coinOneStringVal]; coinTwoH.text = [NSString stringWithFormat:@"%@", coinTwoStringVal]; break; case 9: coinOneI.text = [NSString stringWithFormat:@"%@", coinOneStringVal]; coinTwoI.text = [NSString stringWithFormat:@"%@", coinTwoStringVal]; break; case 10: coinOneJ.text = [NSString stringWithFormat:@"%@", coinOneStringVal]; coinTwoJ.text = [NSString stringWithFormat:@"%@", coinTwoStringVal]; labelcount = 0; // reset labelcount break; default: return; break; } self.view.userInteractionEnabled = YES; // reenable user interaction // after touches complete } // This action is triggered by the user rolling the dice. -(IBAction) toggleAnimation:(id)sender { xCoin = 2; // set x greater than 0, to allow the dice to be rolled. // now that the program will have already loaded. [self callValueFromSelect]; // calls this self method that accesses the // value from the Select class .m file [self rollTheDice]; // calls the viewDidLoad Class, generate random array ( roll pattern) and display. } -(void) fillArrays{ // ********************************** // **** Create the 4 Animations ***** // ********************************** /* A much more efficient way to do this is NSTimer *imageTimer; int animationCount; -(void) startAnimation { imageTimer = [NSTimer scheduledTimerWithInterval:.1 target: self selector:@selector(switchImage) userInfo:nil repeats:YES]; } -(void)switchImage { NSString *imageName = [NSString stringWithFormat:@"timer%i", animationCount]; UIImage *image = [UIImage imageNamed:imageName]; someImageView.image = image; // possibly without this line // instead load array here } */ // Need to created the specific array of images for hh, ht, th and tt headsTails =[[NSMutableArray alloc] initWithObjects: // the array is initialised with these // png images. [UIImage imageNamed:@"Frame 1ht.png"], // 0 [UIImage imageNamed:@"Frame 2ht.png"], [UIImage imageNamed:@"Frame 3ht.png"], [UIImage imageNamed:@"Frame 4ht.png"], [UIImage imageNamed:@"Frame 5ht.png"], [UIImage imageNamed:@"Frame 6ht.png"], [UIImage imageNamed:@"Frame 7ht.png"], [UIImage imageNamed:@"Frame 8ht.png"], [UIImage imageNamed:@"Frame 9ht.png"], [UIImage imageNamed:@"Frame 10ht.png"], [UIImage imageNamed:@"Frame 11ht.png"], [UIImage imageNamed:@"Frame 12ht.png"], [UIImage imageNamed:@"Frame 13ht.png"], [UIImage imageNamed:@"Frame 14ht.png"], [UIImage imageNamed:@"Frame 15ht.png"], [UIImage imageNamed:@"Frame 16ht.png"], [UIImage imageNamed:@"Frame 17ht.png"], [UIImage imageNamed:@"Frame 18ht.png"], [UIImage imageNamed:@"Frame 19ht.png"], [UIImage imageNamed:@"Frame 20ht.png"], [UIImage imageNamed:@"Frame 21ht.png"], [UIImage imageNamed:@"Frame 22ht.png"], [UIImage imageNamed:@"Frame 23ht.png"], [UIImage imageNamed:@"Frame 24ht.png"], [UIImage imageNamed:@"Frame 25ht.png"], [UIImage imageNamed:@"Frame 26ht.png"], [UIImage imageNamed:@"Frame 27ht.png"], [UIImage imageNamed:@"Frame 28ht.png"], [UIImage imageNamed:@"Frame 29ht.png"], [UIImage imageNamed:@"Frame 30ht.png"], [UIImage imageNamed:@"Frame 31ht.png"], [UIImage imageNamed:@"Frame 32ht.png"], [UIImage imageNamed:@"Frame 33ht.png"], [UIImage imageNamed:@"Frame 34ht.png"], [UIImage imageNamed:@"Frame 35ht.png"], [UIImage imageNamed:@"Frame 36ht.png"], [UIImage imageNamed:@"Frame 37ht.png"], [UIImage imageNamed:@"Frame 38ht.png"], [UIImage imageNamed:@"Frame 39ht.png"], [UIImage imageNamed:@"Frame 40ht.png"], [UIImage imageNamed:@"Frame 41ht.png"], [UIImage imageNamed:@"Frame 42ht.png"], [UIImage imageNamed:@"Frame 43ht.png"], [UIImage imageNamed:@"Frame 44ht.png"], [UIImage imageNamed:@"Frame 45ht.png"], [UIImage imageNamed:@"Frame 46ht.png"], [UIImage imageNamed:@"Frame 47ht.png"], [UIImage imageNamed:@"Frame 48ht.png"], [UIImage imageNamed:@"Frame 49ht.png"], [UIImage imageNamed:@"Frame 50ht.png"], [UIImage imageNamed:@"Frame 51ht.png"], [UIImage imageNamed:@"Frame 52ht.png"], [UIImage imageNamed:@"Frame 53ht.png"], [UIImage imageNamed:@"Frame 54ht.png"], [UIImage imageNamed:@"Frame 55ht.png"], [UIImage imageNamed:@"Frame 56ht.png"], [UIImage imageNamed:@"Frame 57ht.png"], [UIImage imageNamed:@"Frame 58ht.png"], [UIImage imageNamed:@"Frame 59ht.png"], [UIImage imageNamed:@"Frame 60ht.png"], [UIImage imageNamed:@"Frame 61ht.png"], [UIImage imageNamed:@"Frame 62ht.png"], [UIImage imageNamed:@"Frame 63ht.png"], [UIImage imageNamed:@"Frame 64ht.png"], [UIImage imageNamed:@"Frame 65ht.png"], [UIImage imageNamed:@"Frame 66ht.png"], [UIImage imageNamed:@"Frame 67ht.png"], [UIImage imageNamed:@"Frame 68ht.png"], [UIImage imageNamed:@"Frame 69ht.png"], [UIImage imageNamed:@"Frame 70ht.png"], [UIImage imageNamed:@"Frame 71ht.png"], [UIImage imageNamed:@"Frame 72ht.png"], [UIImage imageNamed:@"Frame 73ht.png"], [UIImage imageNamed:@"Frame 74ht.png"], [UIImage imageNamed:@"Frame 75ht.png"], [UIImage imageNamed:@"Frame 76ht.png"], [UIImage imageNamed:@"Frame 77ht.png"], [UIImage imageNamed:@"Frame 78ht.png"], [UIImage imageNamed:@"Frame 79ht.png"], [UIImage imageNamed:@"Frame 80ht.png"], [UIImage imageNamed:@"Frame 81ht.png"], [UIImage imageNamed:@"Frame 82ht.png"], [UIImage imageNamed:@"Frame 83ht.png"], [UIImage imageNamed:@"Frame 84ht.png"], [UIImage imageNamed:@"Frame 85ht.png"], [UIImage imageNamed:@"Frame 86ht.png"], [UIImage imageNamed:@"Frame 87ht.png"], [UIImage imageNamed:@"Frame 88ht.png"], [UIImage imageNamed:@"Frame 89ht.png"], [UIImage imageNamed:@"Frame 90ht.png"], // 89th : 90 Total nil ]; headsHeads =[[NSMutableArray alloc] initWithObjects: [UIImage imageNamed:@"Frame 1hh.png"], // 0 [UIImage imageNamed:@"Frame 2hh.png"], [UIImage imageNamed:@"Frame 3hh.png"], [UIImage imageNamed:@"Frame 4hh.png"], [UIImage imageNamed:@"Frame 5hh.png"], [UIImage imageNamed:@"Frame 6hh.png"], [UIImage imageNamed:@"Frame 7hh.png"], [UIImage imageNamed:@"Frame 8hh.png"], [UIImage imageNamed:@"Frame 9hh.png"], [UIImage imageNamed:@"Frame 10hh.png"], [UIImage imageNamed:@"Frame 11hh.png"], [UIImage imageNamed:@"Frame 12hh.png"], [UIImage imageNamed:@"Frame 13hh.png"], [UIImage imageNamed:@"Frame 14hh.png"], [UIImage imageNamed:@"Frame 15hh.png"], [UIImage imageNamed:@"Frame 16hh.png"], [UIImage imageNamed:@"Frame 17hh.png"], [UIImage imageNamed:@"Frame 18hh.png"], [UIImage imageNamed:@"Frame 19hh.png"], [UIImage imageNamed:@"Frame 20hh.png"], [UIImage imageNamed:@"Frame 21hh.png"], [UIImage imageNamed:@"Frame 22hh.png"], [UIImage imageNamed:@"Frame 23hh.png"], [UIImage imageNamed:@"Frame 24hh.png"], [UIImage imageNamed:@"Frame 25hh.png"], [UIImage imageNamed:@"Frame 26hh.png"], [UIImage imageNamed:@"Frame 27hh.png"], [UIImage imageNamed:@"Frame 28hh.png"], [UIImage imageNamed:@"Frame 29hh.png"], [UIImage imageNamed:@"Frame 30hh.png"], [UIImage imageNamed:@"Frame 31hh.png"], [UIImage imageNamed:@"Frame 32hh.png"], [UIImage imageNamed:@"Frame 33hh.png"], [UIImage imageNamed:@"Frame 34hh.png"], [UIImage imageNamed:@"Frame 35hh.png"], [UIImage imageNamed:@"Frame 36hh.png"], [UIImage imageNamed:@"Frame 37hh.png"], [UIImage imageNamed:@"Frame 38hh.png"], [UIImage imageNamed:@"Frame 39hh.png"], [UIImage imageNamed:@"Frame 40hh.png"], [UIImage imageNamed:@"Frame 41hh.png"], [UIImage imageNamed:@"Frame 42hh.png"], [UIImage imageNamed:@"Frame 43hh.png"], [UIImage imageNamed:@"Frame 44hh.png"], [UIImage imageNamed:@"Frame 45hh.png"], [UIImage imageNamed:@"Frame 46hh.png"], [UIImage imageNamed:@"Frame 47hh.png"], [UIImage imageNamed:@"Frame 48hh.png"], [UIImage imageNamed:@"Frame 49hh.png"], [UIImage imageNamed:@"Frame 50hh.png"], [UIImage imageNamed:@"Frame 51hh.png"], [UIImage imageNamed:@"Frame 52hh.png"], [UIImage imageNamed:@"Frame 53hh.png"], [UIImage imageNamed:@"Frame 54hh.png"], [UIImage imageNamed:@"Frame 55hh.png"], [UIImage imageNamed:@"Frame 56hh.png"], [UIImage imageNamed:@"Frame 57hh.png"], [UIImage imageNamed:@"Frame 58hh.png"], [UIImage imageNamed:@"Frame 59hh.png"], [UIImage imageNamed:@"Frame 60hh.png"], [UIImage imageNamed:@"Frame 61hh.png"], [UIImage imageNamed:@"Frame 62hh.png"], [UIImage imageNamed:@"Frame 63hh.png"], [UIImage imageNamed:@"Frame 64hh.png"], [UIImage imageNamed:@"Frame 65hh.png"], [UIImage imageNamed:@"Frame 66hh.png"], [UIImage imageNamed:@"Frame 67hh.png"], [UIImage imageNamed:@"Frame 68hh.png"], [UIImage imageNamed:@"Frame 69hh.png"], [UIImage imageNamed:@"Frame 70hh.png"], [UIImage imageNamed:@"Frame 71hh.png"], [UIImage imageNamed:@"Frame 72hh.png"], [UIImage imageNamed:@"Frame 73hh.png"], [UIImage imageNamed:@"Frame 74hh.png"], [UIImage imageNamed:@"Frame 75hh.png"], [UIImage imageNamed:@"Frame 76hh.png"], [UIImage imageNamed:@"Frame 77hh.png"], [UIImage imageNamed:@"Frame 78hh.png"], [UIImage imageNamed:@"Frame 79hh.png"], [UIImage imageNamed:@"Frame 80hh.png"], [UIImage imageNamed:@"Frame 81hh.png"], [UIImage imageNamed:@"Frame 82hh.png"], [UIImage imageNamed:@"Frame 83hh.png"], [UIImage imageNamed:@"Frame 84hh.png"], [UIImage imageNamed:@"Frame 85hh.png"], [UIImage imageNamed:@"Frame 86hh.png"], [UIImage imageNamed:@"Frame 87hh.png"], [UIImage imageNamed:@"Frame 88hh.png"], [UIImage imageNamed:@"Frame 89hh.png"], [UIImage imageNamed:@"Frame 90hh.png"], [UIImage imageNamed:@"Frame 91hh.png"], [UIImage imageNamed:@"Frame 92hh.png"], [UIImage imageNamed:@"Frame 93hh.png"], [UIImage imageNamed:@"Frame 94hh.png"], [UIImage imageNamed:@"Frame 95hh.png"], [UIImage imageNamed:@"Frame 96hh.png"], [UIImage imageNamed:@"Frame 97hh.png"], [UIImage imageNamed:@"Frame 98hh.png"], nil ]; tailsTails =[[NSMutableArray alloc] initWithObjects: [UIImage imageNamed:@"Frame 1tt.png"], // 0 [UIImage imageNamed:@"Frame 2tt.png"], [UIImage imageNamed:@"Frame 3tt.png"], [UIImage imageNamed:@"Frame 4tt.png"], [UIImage imageNamed:@"Frame 5tt.png"], [UIImage imageNamed:@"Frame 6tt.png"], [UIImage imageNamed:@"Frame 7tt.png"], [UIImage imageNamed:@"Frame 8tt.png"], [UIImage imageNamed:@"Frame 9tt.png"], [UIImage imageNamed:@"Frame 10tt.png"], [UIImage imageNamed:@"Frame 11tt.png"], [UIImage imageNamed:@"Frame 12tt.png"], [UIImage imageNamed:@"Frame 13tt.png"], [UIImage imageNamed:@"Frame 14tt.png"], [UIImage imageNamed:@"Frame 15tt.png"], [UIImage imageNamed:@"Frame 16tt.png"], [UIImage imageNamed:@"Frame 17tt.png"], [UIImage imageNamed:@"Frame 18tt.png"], [UIImage imageNamed:@"Frame 19tt.png"], [UIImage imageNamed:@"Frame 20tt.png"], [UIImage imageNamed:@"Frame 21tt.png"], [UIImage imageNamed:@"Frame 22tt.png"], [UIImage imageNamed:@"Frame 23tt.png"], [UIImage imageNamed:@"Frame 24tt.png"], [UIImage imageNamed:@"Frame 25tt.png"], [UIImage imageNamed:@"Frame 26tt.png"], [UIImage imageNamed:@"Frame 27tt.png"], [UIImage imageNamed:@"Frame 28tt.png"], [UIImage imageNamed:@"Frame 29tt.png"], [UIImage imageNamed:@"Frame 30tt.png"], [UIImage imageNamed:@"Frame 31tt.png"], [UIImage imageNamed:@"Frame 32tt.png"], [UIImage imageNamed:@"Frame 33tt.png"], [UIImage imageNamed:@"Frame 34tt.png"], [UIImage imageNamed:@"Frame 35tt.png"], // fixed [UIImage imageNamed:@"Frame 36tt.png"], [UIImage imageNamed:@"Frame 37tt.png"], [UIImage imageNamed:@"Frame 38tt.png"], [UIImage imageNamed:@"Frame 39tt.png"], [UIImage imageNamed:@"Frame 40tt.png"], [UIImage imageNamed:@"Frame 41tt.png"], [UIImage imageNamed:@"Frame 42tt.png"], [UIImage imageNamed:@"Frame 43tt.png"], [UIImage imageNamed:@"Frame 44tt.png"], [UIImage imageNamed:@"Frame 45tt.png"], [UIImage imageNamed:@"Frame 46tt.png"], [UIImage imageNamed:@"Frame 47tt.png"], [UIImage imageNamed:@"Frame 48tt.png"], [UIImage imageNamed:@"Frame 49tt.png"], [UIImage imageNamed:@"Frame 50tt.png"], [UIImage imageNamed:@"Frame 51tt.png"], [UIImage imageNamed:@"Frame 52tt.png"], [UIImage imageNamed:@"Frame 53tt.png"], [UIImage imageNamed:@"Frame 54tt.png"], [UIImage imageNamed:@"Frame 55tt.png"], [UIImage imageNamed:@"Frame 56tt.png"], [UIImage imageNamed:@"Frame 57tt.png"], [UIImage imageNamed:@"Frame 58tt.png"], [UIImage imageNamed:@"Frame 59tt.png"], [UIImage imageNamed:@"Frame 60tt.png"], [UIImage imageNamed:@"Frame 61tt.png"], [UIImage imageNamed:@"Frame 62tt.png"], [UIImage imageNamed:@"Frame 63tt.png"], [UIImage imageNamed:@"Frame 64tt.png"], [UIImage imageNamed:@"Frame 65tt.png"], [UIImage imageNamed:@"Frame 66tt.png"], //fixed [UIImage imageNamed:@"Frame 67tt.png"], [UIImage imageNamed:@"Frame 68tt.png"], [UIImage imageNamed:@"Frame 69tt.png"], [UIImage imageNamed:@"Frame 70tt.png"], [UIImage imageNamed:@"Frame 71tt.png"], [UIImage imageNamed:@"Frame 72tt.png"], [UIImage imageNamed:@"Frame 73tt.png"], [UIImage imageNamed:@"Frame 74tt.png"], [UIImage imageNamed:@"Frame 75tt.png"], [UIImage imageNamed:@"Frame 76tt.png"], [UIImage imageNamed:@"Frame 77tt.png"], [UIImage imageNamed:@"Frame 78tt.png"], [UIImage imageNamed:@"Frame 79tt.png"], [UIImage imageNamed:@"Frame 80tt.png"], [UIImage imageNamed:@"Frame 81tt.png"], [UIImage imageNamed:@"Frame 82tt.png"], [UIImage imageNamed:@"Frame 83tt.png"], nil ]; tailsHeads = [[NSMutableArray alloc] initWithObjects: [UIImage imageNamed:@"Frame 1th.png"], // 273 th start [UIImage imageNamed:@"Frame 2th.png"], [UIImage imageNamed:@"Frame 3th.png"], [UIImage imageNamed:@"Frame 4th.png"], [UIImage imageNamed:@"Frame 5th.png"], [UIImage imageNamed:@"Frame 6th.png"], [UIImage imageNamed:@"Frame 7th.png"], [UIImage imageNamed:@"Frame 8th.png"], [UIImage imageNamed:@"Frame 9th.png"], [UIImage imageNamed:@"Frame 10th.png"], [UIImage imageNamed:@"Frame 11th.png"], [UIImage imageNamed:@"Frame 12th.png"], [UIImage imageNamed:@"Frame 13th.png"], [UIImage imageNamed:@"Frame 14th.png"], [UIImage imageNamed:@"Frame 15th.png"], [UIImage imageNamed:@"Frame 16th.png"], [UIImage imageNamed:@"Frame 17th.png"], [UIImage imageNamed:@"Frame 18th.png"], [UIImage imageNamed:@"Frame 19th.png"], [UIImage imageNamed:@"Frame 20th.png"], [UIImage imageNamed:@"Frame 21th.png"], [UIImage imageNamed:@"Frame 22th.png"], [UIImage imageNamed:@"Frame 23th.png"], [UIImage imageNamed:@"Frame 24th.png"], [UIImage imageNamed:@"Frame 25th.png"], [UIImage imageNamed:@"Frame 26th.png"], [UIImage imageNamed:@"Frame 27th.png"], [UIImage imageNamed:@"Frame 28th.png"], [UIImage imageNamed:@"Frame 29th.png"], [UIImage imageNamed:@"Frame 30th.png"], [UIImage imageNamed:@"Frame 31th.png"], [UIImage imageNamed:@"Frame 32th.png"], [UIImage imageNamed:@"Frame 33th.png"], [UIImage imageNamed:@"Frame 34th.png"], [UIImage imageNamed:@"Frame 35th.png"], // fixed [UIImage imageNamed:@"Frame 36th.png"], [UIImage imageNamed:@"Frame 37th.png"], [UIImage imageNamed:@"Frame 38th.png"], [UIImage imageNamed:@"Frame 39th.png"], [UIImage imageNamed:@"Frame 40th.png"], [UIImage imageNamed:@"Frame 41th.png"], [UIImage imageNamed:@"Frame 42th.png"], [UIImage imageNamed:@"Frame 43th.png"], [UIImage imageNamed:@"Frame 44th.png"], [UIImage imageNamed:@"Frame 45th.png"], [UIImage imageNamed:@"Frame 46th.png"], [UIImage imageNamed:@"Frame 47th.png"], [UIImage imageNamed:@"Frame 48th.png"], [UIImage imageNamed:@"Frame 49th.png"], [UIImage imageNamed:@"Frame 50th.png"], [UIImage imageNamed:@"Frame 51th.png"], [UIImage imageNamed:@"Frame 52th.png"], [UIImage imageNamed:@"Frame 53th.png"], [UIImage imageNamed:@"Frame 54th.png"], [UIImage imageNamed:@"Frame 55th.png"], [UIImage imageNamed:@"Frame 56th.png"], [UIImage imageNamed:@"Frame 57th.png"], [UIImage imageNamed:@"Frame 58th.png"], [UIImage imageNamed:@"Frame 59th.png"], [UIImage imageNamed:@"Frame 60th.png"], [UIImage imageNamed:@"Frame 61th.png"], [UIImage imageNamed:@"Frame 62th.png"], [UIImage imageNamed:@"Frame 63th.png"], [UIImage imageNamed:@"Frame 64th.png"], [UIImage imageNamed:@"Frame 65th.png"], [UIImage imageNamed:@"Frame 66th.png"], [UIImage imageNamed:@"Frame 67th.png"], [UIImage imageNamed:@"Frame 68th.png"], [UIImage imageNamed:@"Frame 69th.png"], [UIImage imageNamed:@"Frame 70th.png"], [UIImage imageNamed:@"Frame 71th.png"], [UIImage imageNamed:@"Frame 72th.png"], [UIImage imageNamed:@"Frame 73th.png"], [UIImage imageNamed:@"Frame 74th.png"], [UIImage imageNamed:@"Frame 75th.png"], [UIImage imageNamed:@"Frame 76th.png"], [UIImage imageNamed:@"Frame 77th.png"], [UIImage imageNamed:@"Frame 78th.png"], [UIImage imageNamed:@"Frame 79th.png"], [UIImage imageNamed:@"Frame 80th.png"], [UIImage imageNamed:@"Frame 81th.png"], [UIImage imageNamed:@"Frame 82th.png"], [UIImage imageNamed:@"Frame 83th.png"], [UIImage imageNamed:@"Frame 84th.png"], [UIImage imageNamed:@"Frame 85th.png"], [UIImage imageNamed:@"Frame 86th.png"], [UIImage imageNamed:@"Frame 87th.png"], [UIImage imageNamed:@"Frame 88th.png"], [UIImage imageNamed:@"Frame 89th.png"], [UIImage imageNamed:@"Frame 90th.png"], [UIImage imageNamed:@"Frame 91th.png"], [UIImage imageNamed:@"Frame 92th.png"], nil ]; NSLog(@"Finshised Loading . .. "); NSLog(@"[headsTails retainCount] = %i", [headsTails retainCount]); NSLog(@"[headsHeads retainCount] = %i", [headsHeads retainCount]); NSLog(@"[tailsTails retainCount] = %i", [tailsTails retainCount]); NSLog(@"[tailsHeads retainCount] = %i", [tailsHeads retainCount]); NSLog(@" "); } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; return self; } - (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use. } #pragma mark - View lifecycle - (void)viewDidLoad { [super viewDidLoad]; self.title = @"Coin Toss"; labelcount = 0; // resets the labels each time view is loaded // This is the same code that is in touches began, from here // TO DO : put in a function. initArrays = 1; xCoin = 2; r = arc4random() % 2; // will pick a 0 or a 1, assign it to r r2 = arc4random() % 2; // " for coin 2. labelcount +=1; [self callValueFromSelect]; [self fillArrays]; [self rollTheDice]; [startLabel setHidden:YES]; // hides the tap to begin, after one touch. NSLog(@"IN VIEW DID LOAD"); NSLog(@"[coinOneA retainCount] = %i", [coinOneA retainCount]); NSLog(@"[coinOneB retainCount] = %i", [coinOneB retainCount]); NSLog(@"[coinOneC retainCount] = %i", [coinOneC retainCount]); NSLog(@"[coinOneD retainCount] = %i", [coinOneD retainCount]); NSLog(@"[coinOneE retainCount] = %i", [coinOneE retainCount]); NSLog(@"[coinOneF retainCount] = %i", [coinOneF retainCount]); NSLog(@"[coinOneG retainCount] = %i", [coinOneG retainCount]); NSLog(@"[coinOneH retainCount] = %i", [coinOneH retainCount]); NSLog(@"[coinOneI retainCount] = %i", [coinOneI retainCount]); NSLog(@"[coinOneJ retainCount] = %i", [coinOneJ retainCount]); NSLog(@" "); } -(void) rollTheDice { // ********************************** // **** Select Current Animation **** // ********************************** randAnimation = [[NSMutableArray alloc] init]; // coin 1 randAnimation2 = [[NSMutableArray alloc] init]; // coin 2 // ************************* Coin ONE ********************************* // H -> H // last was heads, this is heads if ((r==1) && (l==1)) { imageView.animationImages = headsHeads; // Coin 1 imageView.image = [headsHeads lastObject]; // NEW TACTICS HERE l = 1; // update last coinOneStringVal = @"H"; // set the label to be a H when printed } // H -> T // last was heads ( l = 1), this is tails ( r = 0) if ((r==0) && (l==1)) { imageView.animationImages= headsTails; // Coin 1 imageView.image = [headsTails lastObject]; // NEW TACTICS HERE l =0; // update last coinOneStringVal = @"T"; // set the label to be a T when printed } // T -> H // last was tails ( l = 0), this is heads ( r = 1) if ((r==1) && (l==0)) { imageView.animationImages= tailsHeads; // Coin 1 imageView.image = [tailsHeads lastObject]; // NEW TACTICS HERE l =1; // update last coinOneStringVal = @"H"; // set the label to be a H when printed } // T -> T // last was tails ( l =0), this is tails ( r = 0) if ((r==0) && (l==0)) { imageView.animationImages= tailsTails; // Coin 1 imageView.image = [tailsTails lastObject]; // NEW TACTICS HERE l = 0; // update last coinOneStringVal = @"T"; // set the label to be a H when printed } // ************************* Coin TWO ********************************* // H -> H // last was heads, this is heads if ((r2==1) && (l2==1)) { imageView2.animationImages = headsHeads; // Coin 2 imageView2.image = [headsHeads lastObject]; // NEW TACTICS HERE // TO KEEP IMAGE AT THE END l2 = 1; // update last if (amountSelectedCoin == 0){ coinTwoStringVal = @""; } else coinTwoStringVal = @"H"; // set the label to be a H when printed } // H -> T // last was heads ( l2 = 1), this is tails ( r2 = 0) if ((r2==0) && (l2==1)) { [randAnimation2 removeAllObjects]; for (i2 =0; i2 < headsTails.count; i2++) { [randAnimation2 addObject:[headsTails objectAtIndex:i2]]; } imageView2.animationImages= randAnimation2; // Coin 2 imageView2.image = [randAnimation2 lastObject]; // NEW TACTICS HERE l2 =0; // update last if (amountSelectedCoin == 0){ coinTwoStringVal = @""; } else coinTwoStringVal = @"T"; // set the label to be a H when printed } // T -> H // last was tails ( l2 = 0), this is heads ( r2 = 1) if ((r2==1) && (l2==0)) { imageView2.animationImages= tailsHeads; // Coin 2 imageView2.image = [tailsHeads lastObject]; // NEW TACTICS HERE l2 =1; // update last if (amountSelectedCoin == 0){ coinTwoStringVal = @""; } else coinTwoStringVal = @"H"; // set the label to be a H when printed } // T -> T // last was tails ( l2 =0), this is tails ( r2 = 0) if ((r2==0) && (l2==0)) { imageView2.animationImages= tailsTails; // Coin 2 imageView2.image = [tailsTails lastObject]; // NEW TACTICS HERE l2 = 0; // update last if (amountSelectedCoin == 0){ coinTwoStringVal = @""; } else coinTwoStringVal = @"T"; // set the label to be a H when printed } imageView.animationDuration=4; // The duration for which the image is displayed on imageView2.animationDuration=4; // The duration for which the image is displayed on imageView.animationRepeatCount = 1; // Animation only played once on each die imageView2.animationRepeatCount = 1; // Animation only played once on each die // The Switch Statement // This decides on the amount of images to show if ( xCoin > 0) { // if its not the first execution of the code switch(amountSelectedCoin) { case 0: // One Coin [imageView2 setHidden:YES]; // Hides the second coin [imageView startAnimating]; // when the roll button is pressed, this code is called // Code to display label results after the coin animation is // finsihed. [self performSelector:@selector(updateLabels) withObject:nil afterDelay:imageView.animationDuration]; break; case 1: // Two Coins [imageView2 setHidden:NO]; // Unhide the 2nd Coin [imageView startAnimating]; // Execute coin 1 animation [imageView2 startAnimating];// Execute coin 2 animation // Checks animation arrays are not empty at last object [self performSelector:@selector(updateLabels) withObject:nil afterDelay:imageView.animationDuration]; break; }} [randAnimation release]; [randAnimation2 release]; NSLog(@"The second method counts : "); NSLog(@"[headsTails retainCount] = %i", [headsTails retainCount]); NSLog(@"[headsHeads retainCount] = %i", [headsHeads retainCount]); NSLog(@"[tailsTails retainCount] = %i", [tailsTails retainCount]); NSLog(@"[tailsHeads retainCount] = %i", [tailsHeads retainCount]); NSLog(@" "); NSLog(@"Others"); NSLog(@"[toggleButton retainCount] = %i", [toggleButton retainCount]); NSLog(@"[imageView retainCount] = %i", [imageView retainCount]); NSLog(@"[imageView2 retainCount] = %i", [imageView2 retainCount]); NSLog(@"[animationSpeed retainCount] = %i", [animationSpeed retainCount]); NSLog(@"[coinOneA retainCount] = %i", [coinOneA retainCount]); NSLog(@"[coinOneB retainCount] = %i", [coinOneB retainCount]); NSLog(@"[coinOneC retainCount] = %i", [coinOneC retainCount]); NSLog(@"[coinOneD retainCount] = %i", [coinOneD retainCount]); NSLog(@"[coinOneE retainCount] = %i", [coinOneE retainCount]); NSLog(@"[coinOneF retainCount] = %i", [coinOneF retainCount]); NSLog(@"[coinOneG retainCount] = %i", [coinOneG retainCount]); NSLog(@"[coinOneH retainCount] = %i", [coinOneH retainCount]); NSLog(@"[coinOneI retainCount] = %i", [coinOneI retainCount]); NSLog(@"[coinOneJ retainCount] = %i", [coinOneJ retainCount]); } // ********** V E R Y ********* // ********** I M P O R T A N T ********* // function to call from the SelectCoinViewController class // then this fucntion should be called from the IBAction method above -(void) callValueFromSelect { SelectCoinViewController *instanceOfSelect = [[SelectCoinViewController alloc]init]; amountSelectedCoin = [instanceOfSelect returnSelection]; // testing for value of amountSelectedCoin // prints to label hopsPerSecond.text = [NSString stringWithFormat:@"%i", amountSelectedCoin]; startLabel.text = @"Loading . . ."; [instanceOfSelect release]; } - (void)viewDidUnload { self.toggleButton = nil; self.imageView = nil; self.imageView2 = nil; self.animationSpeed = nil; self.hopsPerSecond = nil; self.startLabel = nil; self.coinOneA = nil; self.coinOneB = nil; self.coinOneC = nil; self.coinOneD = nil; self.coinOneE = nil; self.coinOneF = nil; self.coinOneG = nil; self.coinOneH = nil; self.coinOneI = nil; self.coinOneJ = nil; self.coinTwoA = nil; self.coinTwoB = nil; self.coinTwoC = nil; self.coinTwoD = nil; self.coinTwoE = nil; self.coinTwoF = nil; self.coinTwoG = nil; self.coinTwoH = nil; self.coinTwoI = nil; self.coinTwoJ = nil; [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation == UIInterfaceOrientationPortrait); } - (void)dealloc { [toggleButton release]; [imageView release]; [imageView2 release]; [animationSpeed release]; [hopsPerSecond release]; [coinOneA release]; [coinOneB release]; [coinOneC release]; [coinOneD release]; [coinOneE release]; [coinOneF release]; [coinOneG release]; [coinOneH release]; [coinOneI release]; [coinOneJ release]; [coinTwoA release]; [coinTwoB release]; [coinTwoC release]; [coinTwoD release]; [coinTwoE release]; [coinTwoF release]; [coinTwoG release]; [coinTwoH release]; [coinTwoI release]; [coinTwoJ release]; [headsTails release]; [headsHeads release]; [tailsHeads release]; [tailsTails release]; [super dealloc]; // note the arrays headsHeads etc. are not being released anywhere at the moment } // This code calls is the same as the button call, // is is used anytime the view is touched. // Touch is enabled. #pragma mark - - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { self.view.userInteractionEnabled = NO; // disables user interaction after touch // enable after update of label initArrays = 1; xCoin = 2; r = arc4random() % 2; // will pick a 0 or a 1, assign it to r r2 = arc4random() % 2; // " for coin 2. labelcount +=1; [self callValueFromSelect]; [self fillArrays]; [self rollTheDice]; [startLabel setHidden:YES]; // hides the tap to begin, after one touch. } @end