From 4d3fb2dcc668003b4fd6ca5f23ae246256671849 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 14 Nov 2012 00:02:37 +0400 Subject: [PATCH 1/2] FINAL --- .DS_Store | Bin 0 -> 6148 bytes DNA/.DS_Store | Bin 0 -> 6148 bytes DNA/DNA.xcodeproj/project.pbxproj | 249 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 13697 bytes .../xcdebugger/Breakpoints.xcbkptlist | 5 + .../alex.xcuserdatad/xcschemes/DNA.xcscheme | 86 ++++++ .../xcschemes/xcschememanagement.plist | 22 ++ DNA/DNA/Cell.h | 24 ++ DNA/DNA/Cell.m | 87 ++++++ DNA/DNA/DNA-Prefix.pch | 7 + DNA/DNA/DNA.1 | 79 ++++++ DNA/DNA/main.m | 36 +++ 13 files changed, 602 insertions(+) create mode 100644 .DS_Store create mode 100644 DNA/.DS_Store create mode 100644 DNA/DNA.xcodeproj/project.pbxproj create mode 100644 DNA/DNA.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/alex.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 DNA/DNA.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist create mode 100644 DNA/DNA.xcodeproj/xcuserdata/alex.xcuserdatad/xcschemes/DNA.xcscheme create mode 100644 DNA/DNA.xcodeproj/xcuserdata/alex.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 DNA/DNA/Cell.h create mode 100644 DNA/DNA/Cell.m create mode 100644 DNA/DNA/DNA-Prefix.pch create mode 100644 DNA/DNA/DNA.1 create mode 100644 DNA/DNA/main.m diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..04c152fae5096abb76cbfaf4b8cecb091c91e711 GIT binary patch literal 6148 zcmeHK!A{#i5S>i|wFOAIAaS%fafnb*sNlfCM4>8&R#k(<0T9?VB9Tmt5{Dc@!0He6 z7y1D`_jlmU?tm1a$07yINV9J|JG1t_wRU%i$TWw^22quWJSbzyNArqsKkExAiKhZI zJVy2-PO}(KJe_@RsI!UrQJbZum3fr za%FD*gXjC+;_+d(mt>=6HtZ#Xqjo17wY$lA9Q9AEok#g_(2V-F=UbF_&|~d`EK6Y@ zOY~tk$vdajmGSsvqfrYQ8}&&o7;kOWYr$q?douAo&#(UWmRHwzJ|9FkliRz(ekK|G zidL2cAK@nqnZ$Lw-%GRJ1w0(>(|6jVUC{6axK5XpJR{>1qL>ULWWZEW29yD1V0Iah zjnZ3~-6`moD+9{Fe`0|5hXBeL3KkCS)`7;B06@M*T7hjZ|G>W zQeqgX9gIsye<<;VLzhm*z8T}ln~hW`MoJG8*l;qTLv57-Wnh|tvU{xZ`M>w?`hPk} zpOgV*;9W6bDy?>_i7Cn1`eJf?)&|fsC=16G4xdtB*rOP+d=#%ht-v3!0SpBThwwo3 OB4BCIMj3ch1|9%0y;I-- literal 0 HcmV?d00001 diff --git a/DNA/.DS_Store b/DNA/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9715bcb1dd8bf7897681a2843c89d07eab5839c4 GIT binary patch literal 6148 zcmeHKyGjH>5UlntI1u4N!wroD|6n~*;Qxn)?${O%iSg@T@awzh=ZV;zU^spw%VQr$K6p#XA1!g&2djG$o|MLDHlQfe8Qs7@HVDs*-Tk(^s zw@yCJdu>C%r+*r2qnsgHF)>;(C*F!rztuH9X1*;P5`)h5pc8cwa9w0l;4c*T0L(xp A#sB~S literal 0 HcmV?d00001 diff --git a/DNA/DNA.xcodeproj/project.pbxproj b/DNA/DNA.xcodeproj/project.pbxproj new file mode 100644 index 00000000..b8bb804d --- /dev/null +++ b/DNA/DNA.xcodeproj/project.pbxproj @@ -0,0 +1,249 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + FA46C743164CCE8F00A22643 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA46C742164CCE8F00A22643 /* Foundation.framework */; }; + FA46C746164CCE8F00A22643 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = FA46C745164CCE8F00A22643 /* main.m */; }; + FA46C74A164CCE8F00A22643 /* DNA.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FA46C749164CCE8F00A22643 /* DNA.1 */; }; + FA46C7521652CEBB00A22643 /* Cell.m in Sources */ = {isa = PBXBuildFile; fileRef = FA46C7511652CEBB00A22643 /* Cell.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + FA46C73C164CCE8F00A22643 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FA46C74A164CCE8F00A22643 /* DNA.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + FA46C73E164CCE8F00A22643 /* DNA */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = DNA; sourceTree = BUILT_PRODUCTS_DIR; }; + FA46C742164CCE8F00A22643 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + FA46C745164CCE8F00A22643 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + FA46C748164CCE8F00A22643 /* DNA-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DNA-Prefix.pch"; sourceTree = ""; }; + FA46C749164CCE8F00A22643 /* DNA.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = DNA.1; sourceTree = ""; }; + FA46C7501652CEBB00A22643 /* Cell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Cell.h; sourceTree = ""; }; + FA46C7511652CEBB00A22643 /* Cell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Cell.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + FA46C73B164CCE8F00A22643 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FA46C743164CCE8F00A22643 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + FA46C733164CCE8F00A22643 = { + isa = PBXGroup; + children = ( + FA46C744164CCE8F00A22643 /* DNA */, + FA46C741164CCE8F00A22643 /* Frameworks */, + FA46C73F164CCE8F00A22643 /* Products */, + ); + sourceTree = ""; + }; + FA46C73F164CCE8F00A22643 /* Products */ = { + isa = PBXGroup; + children = ( + FA46C73E164CCE8F00A22643 /* DNA */, + ); + name = Products; + sourceTree = ""; + }; + FA46C741164CCE8F00A22643 /* Frameworks */ = { + isa = PBXGroup; + children = ( + FA46C742164CCE8F00A22643 /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + FA46C744164CCE8F00A22643 /* DNA */ = { + isa = PBXGroup; + children = ( + FA46C745164CCE8F00A22643 /* main.m */, + FA46C749164CCE8F00A22643 /* DNA.1 */, + FA46C747164CCE8F00A22643 /* Supporting Files */, + FA46C7501652CEBB00A22643 /* Cell.h */, + FA46C7511652CEBB00A22643 /* Cell.m */, + ); + path = DNA; + sourceTree = ""; + }; + FA46C747164CCE8F00A22643 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + FA46C748164CCE8F00A22643 /* DNA-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + FA46C73D164CCE8F00A22643 /* DNA */ = { + isa = PBXNativeTarget; + buildConfigurationList = FA46C74D164CCE8F00A22643 /* Build configuration list for PBXNativeTarget "DNA" */; + buildPhases = ( + FA46C73A164CCE8F00A22643 /* Sources */, + FA46C73B164CCE8F00A22643 /* Frameworks */, + FA46C73C164CCE8F00A22643 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DNA; + productName = DNA; + productReference = FA46C73E164CCE8F00A22643 /* DNA */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + FA46C735164CCE8F00A22643 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0450; + ORGANIZATIONNAME = Alex; + }; + buildConfigurationList = FA46C738164CCE8F00A22643 /* Build configuration list for PBXProject "DNA" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = FA46C733164CCE8F00A22643; + productRefGroup = FA46C73F164CCE8F00A22643 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + FA46C73D164CCE8F00A22643 /* DNA */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + FA46C73A164CCE8F00A22643 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FA46C746164CCE8F00A22643 /* main.m in Sources */, + FA46C7521652CEBB00A22643 /* Cell.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + FA46C74B164CCE8F00A22643 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.8; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + FA46C74C164CCE8F00A22643 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.8; + SDKROOT = macosx; + }; + name = Release; + }; + FA46C74E164CCE8F00A22643 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "DNA/DNA-Prefix.pch"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + FA46C74F164CCE8F00A22643 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "DNA/DNA-Prefix.pch"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + FA46C738164CCE8F00A22643 /* Build configuration list for PBXProject "DNA" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FA46C74B164CCE8F00A22643 /* Debug */, + FA46C74C164CCE8F00A22643 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FA46C74D164CCE8F00A22643 /* Build configuration list for PBXNativeTarget "DNA" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FA46C74E164CCE8F00A22643 /* Debug */, + FA46C74F164CCE8F00A22643 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = FA46C735164CCE8F00A22643 /* Project object */; +} diff --git a/DNA/DNA.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/DNA/DNA.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..f6feef27 --- /dev/null +++ b/DNA/DNA.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/alex.xcuserdatad/UserInterfaceState.xcuserstate b/DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/alex.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..112a7da187acb38134c7701395864373e11d6c2a GIT binary patch literal 13697 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 PB7Sohh~L4_T>k$7PQ%a= literal 0 HcmV?d00001 diff --git a/DNA/DNA.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/DNA/DNA.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist new file mode 100644 index 00000000..05301bc2 --- /dev/null +++ b/DNA/DNA.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist @@ -0,0 +1,5 @@ + + + diff --git a/DNA/DNA.xcodeproj/xcuserdata/alex.xcuserdatad/xcschemes/DNA.xcscheme b/DNA/DNA.xcodeproj/xcuserdata/alex.xcuserdatad/xcschemes/DNA.xcscheme new file mode 100644 index 00000000..de240fb1 --- /dev/null +++ b/DNA/DNA.xcodeproj/xcuserdata/alex.xcuserdatad/xcschemes/DNA.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DNA/DNA.xcodeproj/xcuserdata/alex.xcuserdatad/xcschemes/xcschememanagement.plist b/DNA/DNA.xcodeproj/xcuserdata/alex.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..fff57bfc --- /dev/null +++ b/DNA/DNA.xcodeproj/xcuserdata/alex.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + DNA.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + FA46C73D164CCE8F00A22643 + + primary + + + + + diff --git a/DNA/DNA/Cell.h b/DNA/DNA/Cell.h new file mode 100644 index 00000000..2fca3c05 --- /dev/null +++ b/DNA/DNA/Cell.h @@ -0,0 +1,24 @@ +// +// Cell.h +// DNA +// +// Created by Alex on 11/13/12. +// Copyright (c) 2012 Alex. All rights reserved. +// + +#import + +@interface Cell : NSObject + +@property NSMutableArray *DNA; + +-(int) hammingDistance: (Cell*)other; +-(NSString*) getRandomGenom; + +@end + +@interface Cell (mutator) + +-(void) mutate: (int)count; + +@end diff --git a/DNA/DNA/Cell.m b/DNA/DNA/Cell.m new file mode 100644 index 00000000..93ddda3c --- /dev/null +++ b/DNA/DNA/Cell.m @@ -0,0 +1,87 @@ +// +// Cell.m +// DNA +// +// Created by Alex on 11/13/12. +// Copyright (c) 2012 Alex. All rights reserved. +// + +#import "Cell.h" + +@implementation Cell + +-(NSString*) getRandomGenom +{ + int r = arc4random() % 4; + + NSString *genom; + if (r == 0) + { + genom = @"A"; + } + else if (r == 1) + { + genom = @"T"; + } + else if (r == 2) + { + genom = @"G"; + } + else if (r == 3) + { + genom = @"C"; + } + + return genom; +} + +-(id) init +{ + self = [super init]; + + if (self) + { + _DNA = [[NSMutableArray alloc] init]; + + for (int i = 0; i < 100; ++i) + { + [_DNA addObject:[self getRandomGenom]]; + } + + } + + return self; +} + +-(int) hammingDistance: (Cell*)other +{ + int diff = 0; + + for (int i = 0; i < 100; ++i) + { + if ([_DNA objectAtIndex:i] != [[other DNA] objectAtIndex:i]) + { + ++diff; + } + } + + return diff; +} + +@end + +@implementation Cell (mutator) + +-(void) mutate: (int)count +{ + NSUInteger length = [_DNA count]; + + int toReplace = 100.0 * length / count; + + for (int i = 0; i < toReplace; ++i) + { + [_DNA setObject:[self getRandomGenom] atIndexedSubscript:i]; + } +} + +@end diff --git a/DNA/DNA/DNA-Prefix.pch b/DNA/DNA/DNA-Prefix.pch new file mode 100644 index 00000000..cd50d540 --- /dev/null +++ b/DNA/DNA/DNA-Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'DNA' target in the 'DNA' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/DNA/DNA/DNA.1 b/DNA/DNA/DNA.1 new file mode 100644 index 00000000..c76db8d8 --- /dev/null +++ b/DNA/DNA/DNA.1 @@ -0,0 +1,79 @@ +.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples. +.\"See Also: +.\"man mdoc.samples for a complete listing of options +.\"man mdoc for the short list of editing options +.\"/usr/share/misc/mdoc.template +.Dd 11/9/12 \" DATE +.Dt DNA 1 \" Program name and manual section number +.Os Darwin +.Sh NAME \" Section Header - required - don't modify +.Nm DNA, +.\" The following lines are read in generating the apropos(man -k) database. Use only key +.\" words here as the database is built based on the words here and in the .ND line. +.Nm Other_name_for_same_program(), +.Nm Yet another name for the same program. +.\" Use .Nm macro to designate other names for the documented program. +.Nd This line parsed for whatis database. +.Sh SYNOPSIS \" Section Header - required - don't modify +.Nm +.Op Fl abcd \" [-abcd] +.Op Fl a Ar path \" [-a path] +.Op Ar file \" [file] +.Op Ar \" [file ...] +.Ar arg0 \" Underlined argument - use .Ar anywhere to underline +arg2 ... \" Arguments +.Sh DESCRIPTION \" Section Header - required - don't modify +Use the .Nm macro to refer to your program throughout the man page like such: +.Nm +Underlining is accomplished with the .Ar macro like this: +.Ar underlined text . +.Pp \" Inserts a space +A list of items with descriptions: +.Bl -tag -width -indent \" Begins a tagged list +.It item a \" Each item preceded by .It macro +Description of item a +.It item b +Description of item b +.El \" Ends the list +.Pp +A list of flags and their descriptions: +.Bl -tag -width -indent \" Differs from above in tag removed +.It Fl a \"-a flag as a list item +Description of -a flag +.It Fl b +Description of -b flag +.El \" Ends the list +.Pp +.\" .Sh ENVIRONMENT \" May not be needed +.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1 +.\" .It Ev ENV_VAR_1 +.\" Description of ENV_VAR_1 +.\" .It Ev ENV_VAR_2 +.\" Description of ENV_VAR_2 +.\" .El +.Sh FILES \" File used or created by the topic of the man page +.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact +.It Pa /usr/share/file_name +FILE_1 description +.It Pa /Users/joeuser/Library/really_long_file_name +FILE_2 description +.El \" Ends the list +.\" .Sh DIAGNOSTICS \" May not be needed +.\" .Bl -diag +.\" .It Diagnostic Tag +.\" Diagnostic informtion here. +.\" .It Diagnostic Tag +.\" Diagnostic informtion here. +.\" .El +.Sh SEE ALSO +.\" List links in ascending order by section, alphabetically within a section. +.\" Please do not reference files that do not exist without filing a bug report +.Xr a 1 , +.Xr b 1 , +.Xr c 1 , +.Xr a 2 , +.Xr b 2 , +.Xr a 3 , +.Xr b 3 +.\" .Sh BUGS \" Document known, unremedied bugs +.\" .Sh HISTORY \" Document history if command behaves in a unique manner \ No newline at end of file diff --git a/DNA/DNA/main.m b/DNA/DNA/main.m new file mode 100644 index 00000000..7f6cff54 --- /dev/null +++ b/DNA/DNA/main.m @@ -0,0 +1,36 @@ +// +// main.m +// DNA +// +// Created by Alex on 11/9/12. +// Copyright (c) 2012 Alex. All rights reserved. +// + +#import +#import "Cell.h" + +int main(int argc, const char * argv[]) +{ + + @autoreleasepool { + + // insert code here... + NSLog(@"Hello, World!"); + + Cell *cell1 = [[Cell alloc] init]; + Cell *cell2 = [[Cell alloc] init]; + + int distance1 = [cell1 hammingDistance:cell2]; + + NSLog(@"%i", distance1); + + [cell1 mutate:5]; + [cell2 mutate:5]; + + int distance2 = [cell1 hammingDistance:cell2]; + + NSLog(@"%i", distance2); + } + return 0; +} + From d25a2f8734169d52616d2c1c2e4e8c094c99d1d6 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 14 Nov 2012 00:25:14 +0400 Subject: [PATCH 2/2] Fixed error in mutate --- .../UserInterfaceState.xcuserstate | Bin 13697 -> 13987 bytes DNA/DNA/Cell.h | 1 + DNA/DNA/Cell.m | 13 ++++++++++++- DNA/DNA/main.m | 4 ++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/alex.xcuserdatad/UserInterfaceState.xcuserstate b/DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/alex.xcuserdatad/UserInterfaceState.xcuserstate index 112a7da187acb38134c7701395864373e11d6c2a..c57cb0c79b13abaf706340e10dfcb118d9b2a698 100644 GIT binary patch delta 7595 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 z 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