This is SNGraphNode.m in view mode; [Download] [Up]
// // $Id: SNGraphNode.m,v 1.8 1997/10/31 04:52:02 nygard Exp $ // // // This file is a part of Empire, a game of exploration and conquest. // Copyright (C) 1996 Steve Nygard // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // // You may contact the author by: // e-mail: nygard@telusplanet.net // #import "Empire.h" RCSID ("$Id: SNGraphNode.m,v 1.8 1997/10/31 04:52:02 nygard Exp $"); #import "SNGraphNode.h" //====================================================================== // This represents a location on the map for use in a breadth first // search. //====================================================================== @implementation SNGraphNode + nodeWithLocation:(EMMapLocation)target { return [[[SNGraphNode alloc] initWithLocation:target] autorelease]; } //---------------------------------------------------------------------- - initWithLocation:(EMMapLocation)target { [super init]; location = target; color = c_white; distance = 1000000; predecessor = nil; biasValue = 0; return self; } //---------------------------------------------------------------------- - (SNGraphNode *) predecessor { return predecessor; } //---------------------------------------------------------------------- - (void) setPredecessor:(SNGraphNode *)aGraphNode { predecessor = aGraphNode; distance = [predecessor distance] + 1; } //---------------------------------------------------------------------- - (GraphColor) nodeColor { return color; } //---------------------------------------------------------------------- - (void) setNodeColor:(GraphColor)newColor { color = newColor; } //---------------------------------------------------------------------- - (int) distance { return distance; } //---------------------------------------------------------------------- - (void) setDistance:(int)newDistance { distance = newDistance; } //---------------------------------------------------------------------- - (EMMapLocation) nodeLocation { return location; } //---------------------------------------------------------------------- - (int) biasValue { return biasValue; } //---------------------------------------------------------------------- - (void) setBiasValue:(int)bias { biasValue = bias; } //---------------------------------------------------------------------- - (int) compareWith:(SNGraphNode *)otherNode { if (distance < [otherNode distance]) return -1; else if (distance > [otherNode distance]) return 1; return (biasValue < [otherNode biasValue]) ? -1 : 1; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.