Build the MatchCard App Game
The UI does not have to be identical- feel free to experiment with a different setup as long as its intuitive to the user and you can code the logic.
But I’d like to see a similar logic. If you change the UI controls or scoring scheme for the players, please make a note of it when you submit your assignment.
#import “CardGameViewController.h”
@interface CardGameViewController ()
@end
NSArray *validSuits, *validRanks;
@implementation CardGameViewController
– (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
validSuits = @[@”♠”,@”♣”,@”♥”,@”♦”];
validRanks = @[@”A”,@”2″,@”3″,@”4″,@”5″,@”6″,@”7″, @”8″,@”9″,@”10″,@”J”,@”Q”,@”K”];
NSLog(@”Displaying suitsn”);
for (int i=0; i < validSuits.count; i++)
{
NSLog(@”Suit at index %d is %@n”,i, validSuits[i]);
}
NSLog(@”Displaying ranksn”);
for (int i=0; i < validRanks.count; i++)
{
NSLog(@”Rank at index %d is %@n”,i, validRanks[i]);
}
[self resetTheGame];
}
– (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)resetTheGame
{
yourScore = phoneScore = 0;
lblExplanation.text = @””;
[self updateScores];
}
-(void)updateScores
{
NSString *scoreText = [NSString stringWithFormat:@”Your score is %d”, yourScore];
lblYourScore.text = scoreText;
scoreText = [NSString stringWithFormat:@”Phone’s score is %d”, phoneScore];
lblPhoneScore.text = scoreText;
}
– (IBAction)gameReset:(id)sender {
[self resetTheGame];
}
– (IBAction)touchedCard:(UIButton *)sender {
//UIButton *pButton = (UIButton *)sender;
if ([sender.currentTitle length])
{
//When the card front is showing – flip it to show the back for both cards
[sender setBackgroundImage:[UIImage imageNamed:@”CardBack.jpg”] forState:UIControlStateNormal];
[sender setTitle:@”” forState:(UIControlStateNormal)];
[btn2 setBackgroundImage:[UIImage imageNamed:@”CardBack.jpg”] forState:UIControlStateNormal];
[btn2 setTitle:@”” forState:(UIControlStateNormal)];
lblExplanation.text = @””;
}
else
{
//When the card back is showing – flip it to show the rank and suit for both cards
//Add your logic here to decide who scores higher and why
//Display the updated score and results to the user
}
}
@end
#import <UIKit/UIKit.h>
@interface CardGameViewController : UIViewController
{
int yourScore;
int phoneScore;
IBOutlet UIButton *btn2;
IBOutlet UILabel *lblYourScore;
IBOutlet UILabel *lblPhoneScore;
IBOutlet UILabel *lblExplanation;
}
- (IBAction)touchedCard:(UIButton *)sender;
- (IBAction)gameReset:(id)sender;
@end


0 comments