mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 12:22:12 +00:00
Also ported TennisGame3. Furthermore pushed instance vars down to better match spirit of Java implementation
This commit is contained in:
parent
ea3e95e55f
commit
99a5861125
@ -2,7 +2,12 @@
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="3432493f-5b19-44ab-868c-f539ff9f9548" name="Default" comment="">
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Tennis/TennisGame.h" afterPath="$PROJECT_DIR$/Tennis/TennisGame.h" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Tennis/TennisGame.m" afterPath="$PROJECT_DIR$/Tennis/TennisGame.m" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Tennis/TennisGame1.h" afterPath="$PROJECT_DIR$/Tennis/TennisGame1.h" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Tennis/TennisGame1.m" afterPath="$PROJECT_DIR$/Tennis/TennisGame1.m" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Tennis/TennisGame2.m" afterPath="$PROJECT_DIR$/Tennis/TennisGame2.m" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Tennis/TennisGame3.m" afterPath="$PROJECT_DIR$/Tennis/TennisGame3.m" />
|
||||
</list>
|
||||
<ignored path="Tennis.iws" />
|
||||
<ignored path=".idea/workspace.xml" />
|
||||
@ -14,11 +19,11 @@
|
||||
<file path="/TennisGame3.h" changelist="3432493f-5b19-44ab-868c-f539ff9f9548" time="1370013520283" ignored="false" />
|
||||
<file path="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/usr/include/string.h" changelist="3432493f-5b19-44ab-868c-f539ff9f9548" time="1370014093686" ignored="false" />
|
||||
<file path="/Dummy.txt" changelist="3432493f-5b19-44ab-868c-f539ff9f9548" time="1370018279112" ignored="false" />
|
||||
<file path="/TennisGame3.m" changelist="3432493f-5b19-44ab-868c-f539ff9f9548" time="1370018390956" ignored="false" />
|
||||
<file path="/TennisGame.m" changelist="3432493f-5b19-44ab-868c-f539ff9f9548" time="1370020624289" ignored="false" />
|
||||
<file path="/TennisGame3.m" changelist="3432493f-5b19-44ab-868c-f539ff9f9548" time="1370021989037" ignored="false" />
|
||||
<file path="/TennisGame.m" changelist="3432493f-5b19-44ab-868c-f539ff9f9548" time="1370021495666" ignored="false" />
|
||||
<file path="/TennisGame1.m" changelist="3432493f-5b19-44ab-868c-f539ff9f9548" time="1370020207784" ignored="false" />
|
||||
<file path="/TennisGame.h" changelist="3432493f-5b19-44ab-868c-f539ff9f9548" time="1370019947680" ignored="false" />
|
||||
<file path="/TennisGame2.m" changelist="3432493f-5b19-44ab-868c-f539ff9f9548" time="1370021340497" ignored="false" />
|
||||
<file path="/TennisGame2.m" changelist="3432493f-5b19-44ab-868c-f539ff9f9548" time="1370021568226" ignored="false" />
|
||||
<option name="TRACKING_ENABLED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@ -38,10 +43,10 @@
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf>
|
||||
<file leaf-file-name="TennisGame3.m" pinned="false" current="false" current-in-tab="false">
|
||||
<file leaf-file-name="TennisGame3.m" pinned="false" current="true" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame3.m">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="13" column="0" selection-start="233" selection-end="233" vertical-scroll-proportion="0.0">
|
||||
<state line="50" column="8" selection-start="1203" selection-end="1203" vertical-scroll-proportion="1.2908778">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@ -59,7 +64,7 @@
|
||||
<file leaf-file-name="TennisTests.m" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/TennisTests/TennisTests.m">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="85" column="30" selection-start="2316" selection-end="2316" vertical-scroll-proportion="0.0">
|
||||
<state line="85" column="0" selection-start="2286" selection-end="2286" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="e#144#183#0" expanded="true" />
|
||||
</folding>
|
||||
@ -67,10 +72,10 @@
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="TennisGame2.m" pinned="false" current="true" current-in-tab="true">
|
||||
<file leaf-file-name="TennisGame2.m" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame2.m">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="136" column="22" selection-start="2901" selection-end="2901" vertical-scroll-proportion="0.8450947">
|
||||
<state line="26" column="8" selection-start="617" selection-end="617" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@ -97,7 +102,7 @@
|
||||
<file leaf-file-name="TennisGame1.m" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame1.m">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="11" column="27" selection-start="231" selection-end="231" vertical-scroll-proportion="0.0">
|
||||
<state line="14" column="1" selection-start="267" selection-end="267" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@ -106,7 +111,7 @@
|
||||
<file leaf-file-name="TennisGame1.h" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame1.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="12" column="28" selection-start="265" selection-end="265" vertical-scroll-proportion="0.0">
|
||||
<state line="15" column="0" selection-start="365" selection-end="365" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@ -115,7 +120,7 @@
|
||||
<file leaf-file-name="TennisGame.m" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame.m">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="21" column="19" selection-start="472" selection-end="472" vertical-scroll-proportion="0.0">
|
||||
<state line="13" column="0" selection-start="254" selection-end="254" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@ -124,7 +129,7 @@
|
||||
<file leaf-file-name="TennisGame.h" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="15" column="0" selection-start="283" selection-end="283" vertical-scroll-proportion="0.0">
|
||||
<state line="13" column="0" selection-start="248" selection-end="248" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@ -148,16 +153,16 @@
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="changedFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/Tennis/TennisGame1.h" />
|
||||
<option value="$PROJECT_DIR$/Tennis/TennisGame2.h" />
|
||||
<option value="$PROJECT_DIR$/Tennis/TennisGame3.h" />
|
||||
<option value="$PROJECT_DIR$/Tennis/TennisGame.mm" />
|
||||
<option value="$PROJECT_DIR$/Tennis/TennisGame3.m" />
|
||||
<option value="$PROJECT_DIR$/TennisTests/TennisTests.m" />
|
||||
<option value="$PROJECT_DIR$/Tennis/TennisGame1.m" />
|
||||
<option value="$PROJECT_DIR$/Tennis/TennisGame.h" />
|
||||
<option value="$PROJECT_DIR$/Tennis/TennisGame1.h" />
|
||||
<option value="$PROJECT_DIR$/Tennis/TennisGame.m" />
|
||||
<option value="$PROJECT_DIR$/TennisTests/TennisTests.m" />
|
||||
<option value="$PROJECT_DIR$/Tennis/TennisGame2.m" />
|
||||
<option value="$PROJECT_DIR$/Tennis/TennisGame3.m" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@ -398,9 +403,30 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/ViewController.h">
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<state line="13" column="0" selection-start="248" selection-end="248" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame1.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="15" column="0" selection-start="365" selection-end="365" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame1.m">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="14" column="1" selection-start="267" selection-end="267" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame.m">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="13" column="0" selection-start="254" selection-end="254" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
@ -412,53 +438,32 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame1.h">
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame2.m">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="12" column="28" selection-start="265" selection-end="265" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="15" column="0" selection-start="283" selection-end="283" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame1.m">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="11" column="27" selection-start="231" selection-end="231" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame.m">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="21" column="19" selection-start="472" selection-end="472" vertical-scroll-proportion="0.0">
|
||||
<state line="26" column="8" selection-start="617" selection-end="617" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/TennisTests/TennisTests.m">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="85" column="30" selection-start="2316" selection-end="2316" vertical-scroll-proportion="0.0">
|
||||
<state line="85" column="0" selection-start="2286" selection-end="2286" vertical-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="e#144#183#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame3.m">
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/ViewController.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="13" column="0" selection-start="233" selection-end="233" vertical-scroll-proportion="0.0">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame2.m">
|
||||
<entry file="file://$PROJECT_DIR$/Tennis/TennisGame3.m">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="136" column="22" selection-start="2901" selection-end="2901" vertical-scroll-proportion="0.8450947">
|
||||
<state line="50" column="8" selection-start="1203" selection-end="1203" vertical-scroll-proportion="1.2908778">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
||||
@ -9,13 +9,7 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
|
||||
@interface TennisGame : NSObject {
|
||||
int score1;
|
||||
int score2;
|
||||
}
|
||||
|
||||
@property(nonatomic, copy) NSString *player1;
|
||||
@property(nonatomic, copy) NSString *player2;
|
||||
@interface TennisGame : NSObject
|
||||
|
||||
- (id)initWithPlayer1:(NSString *)player1 player2:(NSString *)player2;
|
||||
- (void)wonPoint:(NSString *)playerName;
|
||||
|
||||
@ -12,19 +12,7 @@
|
||||
|
||||
@implementation TennisGame
|
||||
|
||||
|
||||
- (id)initWithPlayer1:(NSString *)player1 player2:(NSString *)player2 {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
self.player1 = player1;
|
||||
self.player2 = player2;
|
||||
score1 = 0;
|
||||
score2 = 0;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithPlayer1:(NSString *)player1 player2:(NSString *)player2 { return [super init]; }
|
||||
- (void)wonPoint:(NSString *)playerName {}
|
||||
- (NSString *)score { return nil; }
|
||||
|
||||
|
||||
@ -11,4 +11,6 @@
|
||||
|
||||
|
||||
@interface TennisGame1 : TennisGame
|
||||
@property(nonatomic, copy) NSString *player1;
|
||||
@property(nonatomic, copy) NSString *player2;
|
||||
@end
|
||||
@ -9,7 +9,22 @@
|
||||
#import "TennisGame1.h"
|
||||
|
||||
|
||||
@implementation TennisGame1
|
||||
@implementation TennisGame1 {
|
||||
int score1;
|
||||
int score2;
|
||||
}
|
||||
|
||||
- (id)initWithPlayer1:(NSString *)player1 player2:(NSString *)player2 {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
self.player1 = player1;
|
||||
self.player2 = player2;
|
||||
score1 = 0;
|
||||
score2 = 0;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)wonPoint:(NSString *)playerName {
|
||||
if ([playerName isEqualToString:@"player1"])
|
||||
|
||||
@ -9,6 +9,11 @@
|
||||
#import "TennisGame2.h"
|
||||
|
||||
|
||||
@interface TennisGame2 ()
|
||||
@property(nonatomic, copy) NSString *player2Name;
|
||||
@property(nonatomic, copy) NSString *player1Name;
|
||||
@end
|
||||
|
||||
@implementation TennisGame2 {
|
||||
int P1point;
|
||||
NSString *P1res;
|
||||
@ -16,6 +21,17 @@
|
||||
NSString *P2res;
|
||||
}
|
||||
|
||||
- (id)initWithPlayer1:(NSString *)player1Name player2:(NSString *)player2Name {
|
||||
self = [super initWithPlayer1:player1Name player2:player2Name];
|
||||
if (self) {
|
||||
self.player1Name = player1Name;
|
||||
self.player2Name = player2Name;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (NSString *)score {
|
||||
NSString *score = @"";
|
||||
if (P1point == P2point && P1point < 4)
|
||||
|
||||
@ -9,6 +9,47 @@
|
||||
#import "TennisGame3.h"
|
||||
|
||||
|
||||
@implementation TennisGame3
|
||||
@interface TennisGame3 ()
|
||||
@end
|
||||
|
||||
@implementation TennisGame3 {
|
||||
int p1;
|
||||
int p2;
|
||||
NSString *p1N;
|
||||
NSString *p2N;
|
||||
}
|
||||
|
||||
- (id)initWithPlayer1:(NSString *)p1N player2:(NSString *)p2N {
|
||||
self = [super initWithPlayer1:p1N player2:p2N];
|
||||
if (self) {
|
||||
self->p1N = p1N;
|
||||
self->p2N = p2N;
|
||||
p1 = 0;
|
||||
p2 = 0;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSString *)score {
|
||||
NSString *s;
|
||||
if (p1 < 4 && p2 < 4) {
|
||||
NSArray* p = @[@"Love", @"Fifteen", @"Thirty", @"Forty"];
|
||||
s = p[p1];
|
||||
return (p1 == p2) ? [NSString stringWithFormat:@"%@-All",s] : [NSString stringWithFormat:@"%@-%@",s,p[p2]];
|
||||
} else {
|
||||
if (p1 == p2)
|
||||
return @"Deuce";
|
||||
s = p1 > p2 ? p1N : p2N;
|
||||
return ((p1-p2)*(p1-p2) == 1) ? [NSString stringWithFormat:@"Advantage %@",s] : [NSString stringWithFormat:@"Win for %@",s];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)wonPoint:(NSString *)playerName {
|
||||
if ([playerName isEqualToString:@"player1"])
|
||||
p1 += 1;
|
||||
else
|
||||
p2 += 1;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
Loading…
Reference in New Issue
Block a user