Password Practice allows you to practice your password with statistics on how many mistakes you made and how accurate you are.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

77 lines
2.0 KiB

//
// MGMController.m
// Password Practice
//
// Created by Mr. Gecko's Media on 5/21/10.
//
#import "MGMController.h"
NSString * const MGMSoundsKey = @"sounds";
@implementation MGMController
- (void)awakeFromNib {
[ppSounds setState:([[NSUserDefaults standardUserDefaults] boolForKey:MGMSoundsKey] ? NSOnState : NSOffState)];
total = 0;
correct = 0;
mistakes = 0;
[passwordWindow makeKeyAndOrderFront:self];
}
- (void)dealloc {
if (password!=nil)
[password release];
[super dealloc];
}
- (IBAction)pwContinue:(id)sender {
if ([[pwPassword stringValue] isEqualToString:[pwVerify stringValue]]) {
password = [[pwPassword stringValue] copy];
[pwPassword setStringValue:@""];
[pwVerify setStringValue:@""];
[passwordWindow orderOut:self];
[practiceWindow makeKeyAndOrderFront:self];
} else {
NSBeep();
NSAlert *theAlert = [[NSAlert new] autorelease];
[theAlert setMessageText:@"Incorrect Password"];
[theAlert setInformativeText:@"The Passwords you have entered does not match. Please try again."];
[theAlert addButtonWithTitle:@"Ok"];
[theAlert runModal];
}
}
- (IBAction)ppCheck:(id)sender {
total++;
if ([[ppPassword stringValue] isEqualToString:password]) {
correct++;
if ([ppSounds state]==NSOnState && sound==nil) {
sound = [[NSSound soundNamed:@"Glass"] retain];
[sound setDelegate:self];
[sound play];
}
} else {
if ([ppSounds state]==NSOnState && sound==nil) {
sound = [[NSSound soundNamed:@"Basso"] retain];
[sound setDelegate:self];
[sound play];
}
mistakes++;
}
[ppTotal setIntValue:total];
[ppCorrect setIntValue:correct];
[ppMistakes setIntValue:mistakes];
[ppAccuracy setStringValue:[NSString stringWithFormat:@"%.0f%%", ((float)correct/(float)total)*100]];
[ppPassword setStringValue:@""];
}
- (IBAction)ppSounds:(id)sender {
[[NSUserDefaults standardUserDefaults] setBool:([ppSounds state]==NSOnState) forKey:MGMSoundsKey];
}
- (void)sound:(NSSound *)theSound didFinishPlaying:(BOOL)finishedPlaying {
if (finishedPlaying) {
if (theSound==sound) {
[sound release];
sound = nil;
}
}
}
@end