//
// 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 <CoreMotion/CoreMotion.h>
@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