GeekGameBoard.xcodeproj/project.pbxproj
author Jens Alfke <jens@mooseyard.com>
Sun Mar 16 15:06:47 2008 -0700 (2008-03-16)
changeset 7 428a194e3e59
parent 0 e9f7ba4718e1
child 8 45c82a071aca
permissions -rw-r--r--
Game class now tracks board state and moves, as strings, and can step through its history.
Fixed another bug in Go (you could drag your captured stones back to the board!)
     1 // !$*UTF8*$!
     2 {
     3 	archiveVersion = 1;
     4 	classes = {
     5 	};
     6 	objectVersion = 44;
     7 	objects = {
     8 
     9 /* Begin PBXBuildFile section */
    10 		27224FA00CC29B1A00814095 /* Grid.m in Sources */ = {isa = PBXBuildFile; fileRef = 27224F9F0CC29B1A00814095 /* Grid.m */; };
    11 		2722526F0CC2E86600814095 /* QuartzUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 2722526E0CC2E86600814095 /* QuartzUtils.m */; };
    12 		2727556A0CC3234F009C4C6C /* Dispenser.m in Sources */ = {isa = PBXBuildFile; fileRef = 272755690CC3234F009C4C6C /* Dispenser.m */; };
    13 		27275A550CC6713E009C4C6C /* HexGrid.m in Sources */ = {isa = PBXBuildFile; fileRef = 27275A540CC6713E009C4C6C /* HexGrid.m */; };
    14 		27275C4B0CC700F2009C4C6C /* Game.m in Sources */ = {isa = PBXBuildFile; fileRef = 27275C4A0CC700F2009C4C6C /* Game.m */; };
    15 		27275C920CC7C578009C4C6C /* TicTacToeGame.m in Sources */ = {isa = PBXBuildFile; fileRef = 27275C910CC7C578009C4C6C /* TicTacToeGame.m */; };
    16 		272C90AB0CCACBA4009EE530 /* DiscPiece.m in Sources */ = {isa = PBXBuildFile; fileRef = 272C90AA0CCACBA4009EE530 /* DiscPiece.m */; };
    17 		2731E0280CD430B800E6E4C8 /* Deck.m in Sources */ = {isa = PBXBuildFile; fileRef = 2731E0270CD430B800E6E4C8 /* Deck.m */; };
    18 		2731E2A80CD5630600E6E4C8 /* BitHolder.m in Sources */ = {isa = PBXBuildFile; fileRef = 2731E2A70CD5630600E6E4C8 /* BitHolder.m */; };
    19 		2734B2620CC7F25A0070C008 /* HexchequerGame.m in Sources */ = {isa = PBXBuildFile; fileRef = 2734B2610CC7F25A0070C008 /* HexchequerGame.m */; };
    20 		2734B4F00CCA5BDB0070C008 /* CheckersGame.m in Sources */ = {isa = PBXBuildFile; fileRef = 2734B4EF0CCA5BDB0070C008 /* CheckersGame.m */; };
    21 		274124060CFCCF9D00842A9B /* DemoBoardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 274124050CFCCF9D00842A9B /* DemoBoardView.m */; };
    22 		276DFC410D00867000D329AE /* Green Ball.png in Resources */ = {isa = PBXBuildFile; fileRef = 276DFC400D00867000D329AE /* Green Ball.png */; };
    23 		276DFC560D00890C00D329AE /* Red Ball.png in Resources */ = {isa = PBXBuildFile; fileRef = 276DFC530D00890C00D329AE /* Red Ball.png */; };
    24 		276DFC570D00890C00D329AE /* Yellow Ball.png in Resources */ = {isa = PBXBuildFile; fileRef = 276DFC540D00890C00D329AE /* Yellow Ball.png */; };
    25 		276DFC580D00890C00D329AE /* White Ball.png in Resources */ = {isa = PBXBuildFile; fileRef = 276DFC550D00890C00D329AE /* White Ball.png */; };
    26 		2795C2B80CC278C800D7B2BD /* Piece.m in Sources */ = {isa = PBXBuildFile; fileRef = 2795C2B70CC278C800D7B2BD /* Piece.m */; };
    27 		279F4D870D8606C200B32DBF /* GGBLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 279F4D840D8606C200B32DBF /* GGBLayer.m */; };
    28 		279F4D880D8606C200B32DBF /* GGBTextLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 279F4D860D8606C200B32DBF /* GGBTextLayer.m */; };
    29 		279F4DB20D8607AD00B32DBF /* O.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 279F4DB00D8607AD00B32DBF /* O.tiff */; };
    30 		279F4DB30D8607AD00B32DBF /* X.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 279F4DB10D8607AD00B32DBF /* X.tiff */; };
    31 		279F4DE20D8609C200B32DBF /* Background.png in Resources */ = {isa = PBXBuildFile; fileRef = 279F4DE10D8609C200B32DBF /* Background.png */; };
    32 		27B7543E0D08884F000516B9 /* Wood.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 27B7543D0D08884F000516B9 /* Wood.jpg */; };
    33 		27C999C30D81185E005AFD4F /* GGBUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 27C999C20D81185E005AFD4F /* GGBUtils.m */; };
    34 		27CCA8050CB8A3F9001CFE24 /* BoardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 27CCA8040CB8A3F9001CFE24 /* BoardView.m */; };
    35 		27CCA95F0CB8A74D001CFE24 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27CCA95E0CB8A74D001CFE24 /* Quartz.framework */; };
    36 		27CCAABD0CB92A9F001CFE24 /* Card.m in Sources */ = {isa = PBXBuildFile; fileRef = 27CCAABC0CB92A9F001CFE24 /* Card.m */; };
    37 		27CCABBF0CB9496B001CFE24 /* Bit.m in Sources */ = {isa = PBXBuildFile; fileRef = 27CCABBE0CB9496B001CFE24 /* Bit.m */; };
    38 		27CCAC750CB95C2B001CFE24 /* PlayingCard.m in Sources */ = {isa = PBXBuildFile; fileRef = 27CCAC740CB95C2B001CFE24 /* PlayingCard.m */; };
    39 		27D4F1260CCF011200923605 /* Stack.m in Sources */ = {isa = PBXBuildFile; fileRef = 27D4F1250CCF011200923605 /* Stack.m */; };
    40 		27DFC4410CCD01B7005E34CE /* GoGame.m in Sources */ = {isa = PBXBuildFile; fileRef = 27DFC4400CCD01B7005E34CE /* GoGame.m */; };
    41 		27F230B90CD1A61B006939C1 /* KlondikeGame.m in Sources */ = {isa = PBXBuildFile; fileRef = 27F230B80CD1A61B006939C1 /* KlondikeGame.m */; };
    42 		8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
    43 		8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
    44 		8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
    45 		8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
    46 /* End PBXBuildFile section */
    47 
    48 /* Begin PBXFileReference section */
    49 		089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
    50 		1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
    51 		27224F9E0CC29B1A00814095 /* Grid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Grid.h; sourceTree = "<group>"; };
    52 		27224F9F0CC29B1A00814095 /* Grid.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Grid.m; sourceTree = "<group>"; };
    53 		2722526D0CC2E86600814095 /* QuartzUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuartzUtils.h; sourceTree = "<group>"; };
    54 		2722526E0CC2E86600814095 /* QuartzUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QuartzUtils.m; sourceTree = "<group>"; };
    55 		272755680CC3234F009C4C6C /* Dispenser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Dispenser.h; sourceTree = "<group>"; };
    56 		272755690CC3234F009C4C6C /* Dispenser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Dispenser.m; sourceTree = "<group>"; };
    57 		27275A530CC6713E009C4C6C /* HexGrid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HexGrid.h; sourceTree = "<group>"; };
    58 		27275A540CC6713E009C4C6C /* HexGrid.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HexGrid.m; sourceTree = "<group>"; };
    59 		27275C490CC700F2009C4C6C /* Game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Game.h; sourceTree = "<group>"; };
    60 		27275C4A0CC700F2009C4C6C /* Game.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Game.m; sourceTree = "<group>"; };
    61 		27275C900CC7C578009C4C6C /* TicTacToeGame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TicTacToeGame.h; sourceTree = "<group>"; };
    62 		27275C910CC7C578009C4C6C /* TicTacToeGame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TicTacToeGame.m; sourceTree = "<group>"; };
    63 		272C90A90CCACBA4009EE530 /* DiscPiece.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiscPiece.h; sourceTree = "<group>"; };
    64 		272C90AA0CCACBA4009EE530 /* DiscPiece.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DiscPiece.m; sourceTree = "<group>"; };
    65 		2731E0260CD430B800E6E4C8 /* Deck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Deck.h; sourceTree = "<group>"; };
    66 		2731E0270CD430B800E6E4C8 /* Deck.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Deck.m; sourceTree = "<group>"; };
    67 		2731E2A60CD5630600E6E4C8 /* BitHolder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitHolder.h; sourceTree = "<group>"; };
    68 		2731E2A70CD5630600E6E4C8 /* BitHolder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BitHolder.m; sourceTree = "<group>"; };
    69 		2734B2600CC7F25A0070C008 /* HexchequerGame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HexchequerGame.h; sourceTree = "<group>"; };
    70 		2734B2610CC7F25A0070C008 /* HexchequerGame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HexchequerGame.m; sourceTree = "<group>"; };
    71 		2734B4EE0CCA5BDB0070C008 /* CheckersGame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CheckersGame.h; sourceTree = "<group>"; };
    72 		2734B4EF0CCA5BDB0070C008 /* CheckersGame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CheckersGame.m; sourceTree = "<group>"; };
    73 		274124040CFCCF9D00842A9B /* DemoBoardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoBoardView.h; sourceTree = "<group>"; };
    74 		274124050CFCCF9D00842A9B /* DemoBoardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoBoardView.m; sourceTree = "<group>"; };
    75 		276DFC400D00867000D329AE /* Green Ball.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Green Ball.png"; path = "Resources/Green Ball.png"; sourceTree = "<group>"; };
    76 		276DFC530D00890C00D329AE /* Red Ball.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Red Ball.png"; path = "Resources/Red Ball.png"; sourceTree = "<group>"; };
    77 		276DFC540D00890C00D329AE /* Yellow Ball.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Yellow Ball.png"; path = "Resources/Yellow Ball.png"; sourceTree = "<group>"; };
    78 		276DFC550D00890C00D329AE /* White Ball.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "White Ball.png"; path = "Resources/White Ball.png"; sourceTree = "<group>"; };
    79 		2795C2B60CC278C800D7B2BD /* Piece.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Piece.h; sourceTree = "<group>"; };
    80 		2795C2B70CC278C800D7B2BD /* Piece.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Piece.m; sourceTree = "<group>"; };
    81 		279F4D830D8606C200B32DBF /* GGBLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GGBLayer.h; sourceTree = "<group>"; };
    82 		279F4D840D8606C200B32DBF /* GGBLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GGBLayer.m; sourceTree = "<group>"; };
    83 		279F4D850D8606C200B32DBF /* GGBTextLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GGBTextLayer.h; sourceTree = "<group>"; };
    84 		279F4D860D8606C200B32DBF /* GGBTextLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GGBTextLayer.m; sourceTree = "<group>"; };
    85 		279F4DB00D8607AD00B32DBF /* O.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = O.tiff; path = Resources/O.tiff; sourceTree = "<group>"; };
    86 		279F4DB10D8607AD00B32DBF /* X.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = X.tiff; path = Resources/X.tiff; sourceTree = "<group>"; };
    87 		279F4DE10D8609C200B32DBF /* Background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Background.png; path = Resources/Background.png; sourceTree = "<group>"; };
    88 		27B7543D0D08884F000516B9 /* Wood.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = Wood.jpg; path = Resources/Wood.jpg; sourceTree = "<group>"; };
    89 		27C999C10D81185E005AFD4F /* GGBUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GGBUtils.h; sourceTree = "<group>"; };
    90 		27C999C20D81185E005AFD4F /* GGBUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GGBUtils.m; sourceTree = "<group>"; };
    91 		27C99AB40D820500005AFD4F /* BoardUIView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BoardUIView.h; sourceTree = "<group>"; };
    92 		27C99AB50D820500005AFD4F /* BoardUIView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BoardUIView.m; sourceTree = "<group>"; };
    93 		27CCA8030CB8A3F9001CFE24 /* BoardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BoardView.h; sourceTree = "<group>"; };
    94 		27CCA8040CB8A3F9001CFE24 /* BoardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BoardView.m; sourceTree = "<group>"; };
    95 		27CCA95E0CB8A74D001CFE24 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = /System/Library/Frameworks/Quartz.framework; sourceTree = "<absolute>"; };
    96 		27CCAABB0CB92A9F001CFE24 /* Card.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Card.h; sourceTree = "<group>"; };
    97 		27CCAABC0CB92A9F001CFE24 /* Card.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Card.m; sourceTree = "<group>"; };
    98 		27CCABBD0CB9496B001CFE24 /* Bit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bit.h; sourceTree = "<group>"; };
    99 		27CCABBE0CB9496B001CFE24 /* Bit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Bit.m; sourceTree = "<group>"; };
   100 		27CCAC730CB95C2B001CFE24 /* PlayingCard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlayingCard.h; sourceTree = "<group>"; };
   101 		27CCAC740CB95C2B001CFE24 /* PlayingCard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlayingCard.m; sourceTree = "<group>"; };
   102 		27D4F1240CCF011200923605 /* Stack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Stack.h; sourceTree = "<group>"; };
   103 		27D4F1250CCF011200923605 /* Stack.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Stack.m; sourceTree = "<group>"; };
   104 		27DFC43F0CCD01B7005E34CE /* GoGame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GoGame.h; sourceTree = "<group>"; };
   105 		27DFC4400CCD01B7005E34CE /* GoGame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GoGame.m; sourceTree = "<group>"; };
   106 		27F230B70CD1A61B006939C1 /* KlondikeGame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KlondikeGame.h; sourceTree = "<group>"; };
   107 		27F230B80CD1A61B006939C1 /* KlondikeGame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KlondikeGame.m; sourceTree = "<group>"; };
   108 		29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
   109 		29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = "<group>"; };
   110 		29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
   111 		29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
   112 		32CA4F630368D1EE00C91783 /* GeekGameBoard_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeekGameBoard_Prefix.pch; sourceTree = "<group>"; };
   113 		8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Resources/Info.plist; sourceTree = "<group>"; };
   114 		8D1107320486CEB800E47090 /* GeekGameBoard.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GeekGameBoard.app; sourceTree = BUILT_PRODUCTS_DIR; };
   115 /* End PBXFileReference section */
   116 
   117 /* Begin PBXFrameworksBuildPhase section */
   118 		8D11072E0486CEB800E47090 /* Frameworks */ = {
   119 			isa = PBXFrameworksBuildPhase;
   120 			buildActionMask = 2147483647;
   121 			files = (
   122 				8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
   123 				27CCA95F0CB8A74D001CFE24 /* Quartz.framework in Frameworks */,
   124 			);
   125 			runOnlyForDeploymentPostprocessing = 0;
   126 		};
   127 /* End PBXFrameworksBuildPhase section */
   128 
   129 /* Begin PBXGroup section */
   130 		080E96DDFE201D6D7F000001 /* Source */ = {
   131 			isa = PBXGroup;
   132 			children = (
   133 				27CCA8030CB8A3F9001CFE24 /* BoardView.h */,
   134 				27CCA8040CB8A3F9001CFE24 /* BoardView.m */,
   135 				27C99AB40D820500005AFD4F /* BoardUIView.h */,
   136 				27C99AB50D820500005AFD4F /* BoardUIView.m */,
   137 				27CCABBD0CB9496B001CFE24 /* Bit.h */,
   138 				27CCABBE0CB9496B001CFE24 /* Bit.m */,
   139 				2731E2A60CD5630600E6E4C8 /* BitHolder.h */,
   140 				2731E2A70CD5630600E6E4C8 /* BitHolder.m */,
   141 				27D4F1240CCF011200923605 /* Stack.h */,
   142 				27D4F1250CCF011200923605 /* Stack.m */,
   143 				27275C440CC70095009C4C6C /* Cards */,
   144 				27275C450CC700C4009C4C6C /* Boards and Pieces */,
   145 				27275C480CC700D8009C4C6C /* Games */,
   146 				279F4D830D8606C200B32DBF /* GGBLayer.h */,
   147 				279F4D840D8606C200B32DBF /* GGBLayer.m */,
   148 				279F4D850D8606C200B32DBF /* GGBTextLayer.h */,
   149 				279F4D860D8606C200B32DBF /* GGBTextLayer.m */,
   150 				2722526D0CC2E86600814095 /* QuartzUtils.h */,
   151 				2722526E0CC2E86600814095 /* QuartzUtils.m */,
   152 				27C999C10D81185E005AFD4F /* GGBUtils.h */,
   153 				27C999C20D81185E005AFD4F /* GGBUtils.m */,
   154 			);
   155 			path = Source;
   156 			sourceTree = "<group>";
   157 		};
   158 		1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
   159 			isa = PBXGroup;
   160 			children = (
   161 				1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
   162 			);
   163 			name = "Linked Frameworks";
   164 			sourceTree = "<group>";
   165 		};
   166 		1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
   167 			isa = PBXGroup;
   168 			children = (
   169 				29B97324FDCFA39411CA2CEA /* AppKit.framework */,
   170 				27CCA95E0CB8A74D001CFE24 /* Quartz.framework */,
   171 				29B97325FDCFA39411CA2CEA /* Foundation.framework */,
   172 			);
   173 			name = "Other Frameworks";
   174 			sourceTree = "<group>";
   175 		};
   176 		19C28FACFE9D520D11CA2CBB /* Products */ = {
   177 			isa = PBXGroup;
   178 			children = (
   179 				8D1107320486CEB800E47090 /* GeekGameBoard.app */,
   180 			);
   181 			name = Products;
   182 			sourceTree = "<group>";
   183 		};
   184 		27275C440CC70095009C4C6C /* Cards */ = {
   185 			isa = PBXGroup;
   186 			children = (
   187 				27CCAABB0CB92A9F001CFE24 /* Card.h */,
   188 				27CCAABC0CB92A9F001CFE24 /* Card.m */,
   189 				2731E0260CD430B800E6E4C8 /* Deck.h */,
   190 				2731E0270CD430B800E6E4C8 /* Deck.m */,
   191 				27CCAC730CB95C2B001CFE24 /* PlayingCard.h */,
   192 				27CCAC740CB95C2B001CFE24 /* PlayingCard.m */,
   193 			);
   194 			name = Cards;
   195 			sourceTree = "<group>";
   196 		};
   197 		27275C450CC700C4009C4C6C /* Boards and Pieces */ = {
   198 			isa = PBXGroup;
   199 			children = (
   200 				2795C2B60CC278C800D7B2BD /* Piece.h */,
   201 				2795C2B70CC278C800D7B2BD /* Piece.m */,
   202 				272C90A90CCACBA4009EE530 /* DiscPiece.h */,
   203 				272C90AA0CCACBA4009EE530 /* DiscPiece.m */,
   204 				27224F9E0CC29B1A00814095 /* Grid.h */,
   205 				27224F9F0CC29B1A00814095 /* Grid.m */,
   206 				27275A530CC6713E009C4C6C /* HexGrid.h */,
   207 				27275A540CC6713E009C4C6C /* HexGrid.m */,
   208 				272755680CC3234F009C4C6C /* Dispenser.h */,
   209 				272755690CC3234F009C4C6C /* Dispenser.m */,
   210 			);
   211 			name = "Boards and Pieces";
   212 			sourceTree = "<group>";
   213 		};
   214 		27275C480CC700D8009C4C6C /* Games */ = {
   215 			isa = PBXGroup;
   216 			children = (
   217 				27275C490CC700F2009C4C6C /* Game.h */,
   218 				27275C4A0CC700F2009C4C6C /* Game.m */,
   219 				27275C900CC7C578009C4C6C /* TicTacToeGame.h */,
   220 				27275C910CC7C578009C4C6C /* TicTacToeGame.m */,
   221 				2734B4EE0CCA5BDB0070C008 /* CheckersGame.h */,
   222 				2734B4EF0CCA5BDB0070C008 /* CheckersGame.m */,
   223 				2734B2600CC7F25A0070C008 /* HexchequerGame.h */,
   224 				2734B2610CC7F25A0070C008 /* HexchequerGame.m */,
   225 				27DFC43F0CCD01B7005E34CE /* GoGame.h */,
   226 				27DFC4400CCD01B7005E34CE /* GoGame.m */,
   227 				27F230B70CD1A61B006939C1 /* KlondikeGame.h */,
   228 				27F230B80CD1A61B006939C1 /* KlondikeGame.m */,
   229 			);
   230 			name = Games;
   231 			sourceTree = "<group>";
   232 		};
   233 		29B97314FDCFA39411CA2CEA /* BoardGame */ = {
   234 			isa = PBXGroup;
   235 			children = (
   236 				080E96DDFE201D6D7F000001 /* Source */,
   237 				29B97315FDCFA39411CA2CEA /* Demo Application */,
   238 				29B97317FDCFA39411CA2CEA /* Resources */,
   239 				29B97323FDCFA39411CA2CEA /* Frameworks */,
   240 				19C28FACFE9D520D11CA2CBB /* Products */,
   241 			);
   242 			name = BoardGame;
   243 			sourceTree = "<group>";
   244 		};
   245 		29B97315FDCFA39411CA2CEA /* Demo Application */ = {
   246 			isa = PBXGroup;
   247 			children = (
   248 				274124040CFCCF9D00842A9B /* DemoBoardView.h */,
   249 				274124050CFCCF9D00842A9B /* DemoBoardView.m */,
   250 				32CA4F630368D1EE00C91783 /* GeekGameBoard_Prefix.pch */,
   251 				29B97316FDCFA39411CA2CEA /* main.m */,
   252 			);
   253 			name = "Demo Application";
   254 			path = Source;
   255 			sourceTree = "<group>";
   256 		};
   257 		29B97317FDCFA39411CA2CEA /* Resources */ = {
   258 			isa = PBXGroup;
   259 			children = (
   260 				29B97318FDCFA39411CA2CEA /* MainMenu.nib */,
   261 				8D1107310486CEB800E47090 /* Info.plist */,
   262 				089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
   263 				279F4DE10D8609C200B32DBF /* Background.png */,
   264 				276DFC400D00867000D329AE /* Green Ball.png */,
   265 				276DFC530D00890C00D329AE /* Red Ball.png */,
   266 				276DFC540D00890C00D329AE /* Yellow Ball.png */,
   267 				276DFC550D00890C00D329AE /* White Ball.png */,
   268 				27B7543D0D08884F000516B9 /* Wood.jpg */,
   269 				279F4DB00D8607AD00B32DBF /* O.tiff */,
   270 				279F4DB10D8607AD00B32DBF /* X.tiff */,
   271 			);
   272 			name = Resources;
   273 			sourceTree = "<group>";
   274 		};
   275 		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
   276 			isa = PBXGroup;
   277 			children = (
   278 				1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
   279 				1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
   280 			);
   281 			name = Frameworks;
   282 			sourceTree = "<group>";
   283 		};
   284 /* End PBXGroup section */
   285 
   286 /* Begin PBXNativeTarget section */
   287 		8D1107260486CEB800E47090 /* BoardGame */ = {
   288 			isa = PBXNativeTarget;
   289 			buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "BoardGame" */;
   290 			buildPhases = (
   291 				8D1107290486CEB800E47090 /* Resources */,
   292 				8D11072C0486CEB800E47090 /* Sources */,
   293 				8D11072E0486CEB800E47090 /* Frameworks */,
   294 			);
   295 			buildRules = (
   296 			);
   297 			dependencies = (
   298 			);
   299 			name = BoardGame;
   300 			productInstallPath = "$(HOME)/Applications";
   301 			productName = BoardGame;
   302 			productReference = 8D1107320486CEB800E47090 /* GeekGameBoard.app */;
   303 			productType = "com.apple.product-type.application";
   304 		};
   305 /* End PBXNativeTarget section */
   306 
   307 /* Begin PBXProject section */
   308 		29B97313FDCFA39411CA2CEA /* Project object */ = {
   309 			isa = PBXProject;
   310 			buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "GeekGameBoard" */;
   311 			compatibilityVersion = "Xcode 3.0";
   312 			hasScannedForEncodings = 1;
   313 			mainGroup = 29B97314FDCFA39411CA2CEA /* BoardGame */;
   314 			projectDirPath = "";
   315 			projectRoot = "";
   316 			targets = (
   317 				8D1107260486CEB800E47090 /* BoardGame */,
   318 			);
   319 		};
   320 /* End PBXProject section */
   321 
   322 /* Begin PBXResourcesBuildPhase section */
   323 		8D1107290486CEB800E47090 /* Resources */ = {
   324 			isa = PBXResourcesBuildPhase;
   325 			buildActionMask = 2147483647;
   326 			files = (
   327 				8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */,
   328 				8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
   329 				276DFC410D00867000D329AE /* Green Ball.png in Resources */,
   330 				276DFC560D00890C00D329AE /* Red Ball.png in Resources */,
   331 				276DFC570D00890C00D329AE /* Yellow Ball.png in Resources */,
   332 				276DFC580D00890C00D329AE /* White Ball.png in Resources */,
   333 				27B7543E0D08884F000516B9 /* Wood.jpg in Resources */,
   334 				279F4DB20D8607AD00B32DBF /* O.tiff in Resources */,
   335 				279F4DB30D8607AD00B32DBF /* X.tiff in Resources */,
   336 				279F4DE20D8609C200B32DBF /* Background.png in Resources */,
   337 			);
   338 			runOnlyForDeploymentPostprocessing = 0;
   339 		};
   340 /* End PBXResourcesBuildPhase section */
   341 
   342 /* Begin PBXSourcesBuildPhase section */
   343 		8D11072C0486CEB800E47090 /* Sources */ = {
   344 			isa = PBXSourcesBuildPhase;
   345 			buildActionMask = 2147483647;
   346 			files = (
   347 				8D11072D0486CEB800E47090 /* main.m in Sources */,
   348 				27CCA8050CB8A3F9001CFE24 /* BoardView.m in Sources */,
   349 				27CCAABD0CB92A9F001CFE24 /* Card.m in Sources */,
   350 				27CCABBF0CB9496B001CFE24 /* Bit.m in Sources */,
   351 				27CCAC750CB95C2B001CFE24 /* PlayingCard.m in Sources */,
   352 				2795C2B80CC278C800D7B2BD /* Piece.m in Sources */,
   353 				27224FA00CC29B1A00814095 /* Grid.m in Sources */,
   354 				2722526F0CC2E86600814095 /* QuartzUtils.m in Sources */,
   355 				2727556A0CC3234F009C4C6C /* Dispenser.m in Sources */,
   356 				27275A550CC6713E009C4C6C /* HexGrid.m in Sources */,
   357 				27275C4B0CC700F2009C4C6C /* Game.m in Sources */,
   358 				27275C920CC7C578009C4C6C /* TicTacToeGame.m in Sources */,
   359 				2734B2620CC7F25A0070C008 /* HexchequerGame.m in Sources */,
   360 				2734B4F00CCA5BDB0070C008 /* CheckersGame.m in Sources */,
   361 				272C90AB0CCACBA4009EE530 /* DiscPiece.m in Sources */,
   362 				27DFC4410CCD01B7005E34CE /* GoGame.m in Sources */,
   363 				27D4F1260CCF011200923605 /* Stack.m in Sources */,
   364 				27F230B90CD1A61B006939C1 /* KlondikeGame.m in Sources */,
   365 				2731E0280CD430B800E6E4C8 /* Deck.m in Sources */,
   366 				2731E2A80CD5630600E6E4C8 /* BitHolder.m in Sources */,
   367 				274124060CFCCF9D00842A9B /* DemoBoardView.m in Sources */,
   368 				27C999C30D81185E005AFD4F /* GGBUtils.m in Sources */,
   369 				279F4D870D8606C200B32DBF /* GGBLayer.m in Sources */,
   370 				279F4D880D8606C200B32DBF /* GGBTextLayer.m in Sources */,
   371 			);
   372 			runOnlyForDeploymentPostprocessing = 0;
   373 		};
   374 /* End PBXSourcesBuildPhase section */
   375 
   376 /* Begin PBXVariantGroup section */
   377 		089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
   378 			isa = PBXVariantGroup;
   379 			children = (
   380 				089C165DFE840E0CC02AAC07 /* English */,
   381 			);
   382 			name = InfoPlist.strings;
   383 			sourceTree = "<group>";
   384 		};
   385 		29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = {
   386 			isa = PBXVariantGroup;
   387 			children = (
   388 				29B97319FDCFA39411CA2CEA /* English */,
   389 			);
   390 			name = MainMenu.nib;
   391 			sourceTree = "<group>";
   392 		};
   393 /* End PBXVariantGroup section */
   394 
   395 /* Begin XCBuildConfiguration section */
   396 		C01FCF4B08A954540054247B /* Debug */ = {
   397 			isa = XCBuildConfiguration;
   398 			buildSettings = {
   399 				COPY_PHASE_STRIP = NO;
   400 				GCC_DYNAMIC_NO_PIC = NO;
   401 				GCC_ENABLE_FIX_AND_CONTINUE = YES;
   402 				GCC_MODEL_TUNING = G5;
   403 				GCC_OPTIMIZATION_LEVEL = 0;
   404 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
   405 				GCC_PREFIX_HEADER = Source/GeekGameBoard_Prefix.pch;
   406 				INFOPLIST_FILE = Resources/Info.plist;
   407 				INSTALL_PATH = "$(HOME)/Applications";
   408 				PRODUCT_NAME = GeekGameBoard;
   409 				WRAPPER_EXTENSION = app;
   410 				ZERO_LINK = YES;
   411 			};
   412 			name = Debug;
   413 		};
   414 		C01FCF4C08A954540054247B /* Release */ = {
   415 			isa = XCBuildConfiguration;
   416 			buildSettings = {
   417 				ARCHS = (
   418 					i386,
   419 					ppc,
   420 					ppc64,
   421 					x86_64,
   422 				);
   423 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
   424 				GCC_MODEL_TUNING = G5;
   425 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
   426 				GCC_PREFIX_HEADER = Source/GeekGameBoard_Prefix.pch;
   427 				INFOPLIST_FILE = Resources/Info.plist;
   428 				INSTALL_PATH = "$(HOME)/Applications";
   429 				PRODUCT_NAME = GeekGameBoard;
   430 				WRAPPER_EXTENSION = app;
   431 			};
   432 			name = Release;
   433 		};
   434 		C01FCF4F08A954540054247B /* Debug */ = {
   435 			isa = XCBuildConfiguration;
   436 			buildSettings = {
   437 				GCC_C_LANGUAGE_STANDARD = gnu99;
   438 				GCC_ENABLE_OBJC_GC = unsupported;
   439 				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
   440 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
   441 				GCC_WARN_UNUSED_VARIABLE = YES;
   442 				PREBINDING = NO;
   443 				SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
   444 				WARNING_CFLAGS = "-Wall";
   445 			};
   446 			name = Debug;
   447 		};
   448 		C01FCF5008A954540054247B /* Release */ = {
   449 			isa = XCBuildConfiguration;
   450 			buildSettings = {
   451 				ARCHS = (
   452 					ppc,
   453 					i386,
   454 				);
   455 				GCC_C_LANGUAGE_STANDARD = gnu99;
   456 				GCC_ENABLE_OBJC_GC = unsupported;
   457 				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
   458 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
   459 				GCC_WARN_UNUSED_VARIABLE = YES;
   460 				PREBINDING = NO;
   461 				SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
   462 				WARNING_CFLAGS = "-Wall";
   463 			};
   464 			name = Release;
   465 		};
   466 /* End XCBuildConfiguration section */
   467 
   468 /* Begin XCConfigurationList section */
   469 		C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "BoardGame" */ = {
   470 			isa = XCConfigurationList;
   471 			buildConfigurations = (
   472 				C01FCF4B08A954540054247B /* Debug */,
   473 				C01FCF4C08A954540054247B /* Release */,
   474 			);
   475 			defaultConfigurationIsVisible = 0;
   476 			defaultConfigurationName = Release;
   477 		};
   478 		C01FCF4E08A954540054247B /* Build configuration list for PBXProject "GeekGameBoard" */ = {
   479 			isa = XCConfigurationList;
   480 			buildConfigurations = (
   481 				C01FCF4F08A954540054247B /* Debug */,
   482 				C01FCF5008A954540054247B /* Release */,
   483 			);
   484 			defaultConfigurationIsVisible = 0;
   485 			defaultConfigurationName = Release;
   486 		};
   487 /* End XCConfigurationList section */
   488 	};
   489 	rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
   490 }