From: Michael A. <out...@gm...> - 2013-08-28 06:24:49
|
Everyone, I'd like to add a check to see if the currently operating company can run from specific MapHex to another. It seems like there should be a way to do this, since a similar calculation would have to be made when determining what MapHexs are eligible to have a tile placed, but I can't seem to figure out how to do it. What am I missing? Thanks, Michael Alexander |
From: Stefan F. <ste...@we...> - 2013-08-28 10:10:09
|
Hi Michael, I will come back to this question as soon as I have some time to spare. Unfortunately real life events are still keeping me busy. Stefan On 08/28/2013 08:24 AM, Michael Alexander wrote: > Everyone, > > I'd like to add a check to see if the currently operating company > can run from specific MapHex to another. It seems like there should be > a way to do this, since a similar calculation would have to be made when > determining what MapHexs are eligible to have a tile placed, but I can't > seem to figure out how to do it. What am I missing? > > Thanks, > > Michael Alexander > > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > > > > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > |
From: Chris S. <chr...@gm...> - 2013-08-28 13:28:20
|
Would this be for games where companies are limited to building track where their trains can actually reach, or some other purpose? -- Chris Please consider the environment before printing this e-mail. On Tue, Aug 27, 2013 at 11:24 PM, Michael Alexander <out...@gm...> wrote: > Everyone, > > I'd like to add a check to see if the currently operating company can > run from specific MapHex to another. It seems like there should be a way to > do this, since a similar calculation would have to be made when determining > what MapHexs are eligible to have a tile placed, but I can't seem to figure > out how to do it. What am I missing? > > Thanks, > > Michael Alexander > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > |
From: Michael A. <out...@gm...> - 2013-08-28 13:35:55
|
Both Major Companies in 1856 and Foreign Investors in 1880 have the idea of needing to reach a destination. Both are implemented by having the game player use a special action to tell the game engine that a connection has taken place. Once the connection exists, some one time event occurs. It seems like if there is code that could be used to determine if a connection exists, the game could automatically determine that without relying on the player to tell it. So I actually want something slightly different than what I said. It's not that the current company can make a run between two hexes that I want to know, it's that a connection exists (regardless of tokens). Mike On Wed, Aug 28, 2013 at 9:28 AM, Chris Shaffer <chr...@gm...>wrote: > Would this be for games where companies are limited to building track > where their trains can actually reach, or some other purpose? > > -- > Chris > > Please consider the environment before printing this e-mail. > > > On Tue, Aug 27, 2013 at 11:24 PM, Michael Alexander > <out...@gm...> wrote: > > Everyone, > > > > I'd like to add a check to see if the currently operating company can > > run from specific MapHex to another. It seems like there should be a > way to > > do this, since a similar calculation would have to be made when > determining > > what MapHexs are eligible to have a tile placed, but I can't seem to > figure > > out how to do it. What am I missing? > > > > Thanks, > > > > Michael Alexander > > > > > ------------------------------------------------------------------------------ > > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > > Discover the easy way to master current and previous Microsoft > technologies > > and advance your career. Get an incredible 1,500+ hours of step-by-step > > tutorial videos with LearnDevNow. Subscribe today and save! > > > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > > _______________________________________________ > > Rails-devel mailing list > > Rai...@li... > > https://lists.sourceforge.net/lists/listinfo/rails-devel > > > > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > |
From: Chris S. <chr...@gm...> - 2013-08-28 13:50:58
|
There are games where tokens do block destinations, so whatever code you write should allow for that possibility. There are also games where connections are considered complete as soon as the tile is laid, and others where the check occurs during the relevant company's operating turn. -- Chris Please consider the environment before printing this e-mail. On Wed, Aug 28, 2013 at 6:35 AM, Michael Alexander <out...@gm...> wrote: > Both Major Companies in 1856 and Foreign Investors in 1880 have the idea of > needing to reach a destination. Both are implemented by having the game > player use a special action to tell the game engine that a connection has > taken place. Once the connection exists, some one time event occurs. It > seems like if there is code that could be used to determine if a connection > exists, the game could automatically determine that without relying on the > player to tell it. > > So I actually want something slightly different than what I said. It's not > that the current company can make a run between two hexes that I want to > know, it's that a connection exists (regardless of tokens). > > Mike > > > On Wed, Aug 28, 2013 at 9:28 AM, Chris Shaffer <chr...@gm...> > wrote: >> >> Would this be for games where companies are limited to building track >> where their trains can actually reach, or some other purpose? >> >> -- >> Chris >> >> Please consider the environment before printing this e-mail. >> >> >> On Tue, Aug 27, 2013 at 11:24 PM, Michael Alexander >> <out...@gm...> wrote: >> > Everyone, >> > >> > I'd like to add a check to see if the currently operating company >> > can >> > run from specific MapHex to another. It seems like there should be a >> > way to >> > do this, since a similar calculation would have to be made when >> > determining >> > what MapHexs are eligible to have a tile placed, but I can't seem to >> > figure >> > out how to do it. What am I missing? >> > >> > Thanks, >> > >> > Michael Alexander >> > >> > >> > ------------------------------------------------------------------------------ >> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >> > Discover the easy way to master current and previous Microsoft >> > technologies >> > and advance your career. Get an incredible 1,500+ hours of step-by-step >> > tutorial videos with LearnDevNow. Subscribe today and save! >> > >> > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >> > _______________________________________________ >> > Rails-devel mailing list >> > Rai...@li... >> > https://lists.sourceforge.net/lists/listinfo/rails-devel >> > >> >> >> ------------------------------------------------------------------------------ >> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >> Discover the easy way to master current and previous Microsoft >> technologies >> and advance your career. Get an incredible 1,500+ hours of step-by-step >> tutorial videos with LearnDevNow. Subscribe today and save! >> >> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >> _______________________________________________ >> Rails-devel mailing list >> Rai...@li... >> https://lists.sourceforge.net/lists/listinfo/rails-devel > > > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > |
From: brett l. <bre...@gm...> - 2013-08-28 18:39:13
|
In order to do tile rotations, there is already logic that is aware of the "exits" of a tile. There's also the route suggestion code. It might be possible to leverage that same code to create a route graph that enables detection of destination runs. It probably needs a fair bit of work to adapt for this purpose, but those are at least places in the code to start looking. ---Brett. ---Brett. On Wed, Aug 28, 2013 at 9:50 AM, Chris Shaffer <chr...@gm...>wrote: > There are games where tokens do block destinations, so whatever code > you write should allow for that possibility. There are also games > where connections are considered complete as soon as the tile is laid, > and others where the check occurs during the relevant company's > operating turn. > > -- > Chris > > Please consider the environment before printing this e-mail. > > > On Wed, Aug 28, 2013 at 6:35 AM, Michael Alexander > <out...@gm...> wrote: > > Both Major Companies in 1856 and Foreign Investors in 1880 have the idea > of > > needing to reach a destination. Both are implemented by having the game > > player use a special action to tell the game engine that a connection has > > taken place. Once the connection exists, some one time event occurs. It > > seems like if there is code that could be used to determine if a > connection > > exists, the game could automatically determine that without relying on > the > > player to tell it. > > > > So I actually want something slightly different than what I said. It's > not > > that the current company can make a run between two hexes that I want to > > know, it's that a connection exists (regardless of tokens). > > > > Mike > > > > > > On Wed, Aug 28, 2013 at 9:28 AM, Chris Shaffer <chr...@gm...> > > wrote: > >> > >> Would this be for games where companies are limited to building track > >> where their trains can actually reach, or some other purpose? > >> > >> -- > >> Chris > >> > >> Please consider the environment before printing this e-mail. > >> > >> > >> On Tue, Aug 27, 2013 at 11:24 PM, Michael Alexander > >> <out...@gm...> wrote: > >> > Everyone, > >> > > >> > I'd like to add a check to see if the currently operating company > >> > can > >> > run from specific MapHex to another. It seems like there should be a > >> > way to > >> > do this, since a similar calculation would have to be made when > >> > determining > >> > what MapHexs are eligible to have a tile placed, but I can't seem to > >> > figure > >> > out how to do it. What am I missing? > >> > > >> > Thanks, > >> > > >> > Michael Alexander > >> > > >> > > >> > > ------------------------------------------------------------------------------ > >> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > >> > Discover the easy way to master current and previous Microsoft > >> > technologies > >> > and advance your career. Get an incredible 1,500+ hours of > step-by-step > >> > tutorial videos with LearnDevNow. Subscribe today and save! > >> > > >> > > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > >> > _______________________________________________ > >> > Rails-devel mailing list > >> > Rai...@li... > >> > https://lists.sourceforge.net/lists/listinfo/rails-devel > >> > > >> > >> > >> > ------------------------------------------------------------------------------ > >> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > >> Discover the easy way to master current and previous Microsoft > >> technologies > >> and advance your career. Get an incredible 1,500+ hours of step-by-step > >> tutorial videos with LearnDevNow. Subscribe today and save! > >> > >> > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > >> _______________________________________________ > >> Rails-devel mailing list > >> Rai...@li... > >> https://lists.sourceforge.net/lists/listinfo/rails-devel > > > > > > > > > ------------------------------------------------------------------------------ > > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > > Discover the easy way to master current and previous Microsoft > technologies > > and advance your career. Get an incredible 1,500+ hours of step-by-step > > tutorial videos with LearnDevNow. Subscribe today and save! > > > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > > _______________________________________________ > > Rails-devel mailing list > > Rai...@li... > > https://lists.sourceforge.net/lists/listinfo/rails-devel > > > > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > |
From: Michael A. <out...@gm...> - 2013-08-28 20:52:18
|
Here's what I ended up with so far: compA is the private investor compB is the company to check to see if there is a connection with PublicCompanyI compA = operatingCompany.get(); ... NetworkGraphBuilder nwGraph = NetworkGraphBuilder.create(gameManager); NetworkCompanyGraph companyGraph = NetworkCompanyGraph.create(nwGraph, compA); SimpleGraph<NetworkVertex, NetworkEdge> graph = companyGraph.createRouteGraph(true); Set<NetworkVertex> verticies = graph.vertexSet(); ... for (TokenI token : compB.getTokens()) { TokenHolder holder = token.getHolder(); if (!(holder instanceof Stop)) continue; Stop city = (Stop) holder; Station station = city.getRelatedStation(); for (NetworkVertex vert : verticies) { if (vert.getType() == NetworkVertex.VertexType.STATION) { Station vertStation = vert.getStation(); if (station == vertStation) { // There is a link between the companies! Hooray! } } } } ... This seems to work for simple cases, however, I suspect (without digging too much) that it will get blocked by tokens, which I can't have. I bet it won't be too hard to fix, tho. Mike On Wed, Aug 28, 2013 at 2:38 PM, brett lentz <bre...@gm...> wrote: > In order to do tile rotations, there is already logic that is aware of the > "exits" of a tile. There's also the route suggestion code. > > It might be possible to leverage that same code to create a route graph > that enables detection of destination runs. > > It probably needs a fair bit of work to adapt for this purpose, but those > are at least places in the code to start looking. > > ---Brett. > > > ---Brett. > > > On Wed, Aug 28, 2013 at 9:50 AM, Chris Shaffer <chr...@gm...>wrote: > >> There are games where tokens do block destinations, so whatever code >> you write should allow for that possibility. There are also games >> where connections are considered complete as soon as the tile is laid, >> and others where the check occurs during the relevant company's >> operating turn. >> >> -- >> Chris >> >> Please consider the environment before printing this e-mail. >> >> >> On Wed, Aug 28, 2013 at 6:35 AM, Michael Alexander >> <out...@gm...> wrote: >> > Both Major Companies in 1856 and Foreign Investors in 1880 have the >> idea of >> > needing to reach a destination. Both are implemented by having the game >> > player use a special action to tell the game engine that a connection >> has >> > taken place. Once the connection exists, some one time event occurs. >> It >> > seems like if there is code that could be used to determine if a >> connection >> > exists, the game could automatically determine that without relying on >> the >> > player to tell it. >> > >> > So I actually want something slightly different than what I said. It's >> not >> > that the current company can make a run between two hexes that I want to >> > know, it's that a connection exists (regardless of tokens). >> > >> > Mike >> > >> > >> > On Wed, Aug 28, 2013 at 9:28 AM, Chris Shaffer <chr...@gm... >> > >> > wrote: >> >> >> >> Would this be for games where companies are limited to building track >> >> where their trains can actually reach, or some other purpose? >> >> >> >> -- >> >> Chris >> >> >> >> Please consider the environment before printing this e-mail. >> >> >> >> >> >> On Tue, Aug 27, 2013 at 11:24 PM, Michael Alexander >> >> <out...@gm...> wrote: >> >> > Everyone, >> >> > >> >> > I'd like to add a check to see if the currently operating company >> >> > can >> >> > run from specific MapHex to another. It seems like there should be a >> >> > way to >> >> > do this, since a similar calculation would have to be made when >> >> > determining >> >> > what MapHexs are eligible to have a tile placed, but I can't seem to >> >> > figure >> >> > out how to do it. What am I missing? >> >> > >> >> > Thanks, >> >> > >> >> > Michael Alexander >> >> > >> >> > >> >> > >> ------------------------------------------------------------------------------ >> >> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, >> more! >> >> > Discover the easy way to master current and previous Microsoft >> >> > technologies >> >> > and advance your career. Get an incredible 1,500+ hours of >> step-by-step >> >> > tutorial videos with LearnDevNow. Subscribe today and save! >> >> > >> >> > >> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >> >> > _______________________________________________ >> >> > Rails-devel mailing list >> >> > Rai...@li... >> >> > https://lists.sourceforge.net/lists/listinfo/rails-devel >> >> > >> >> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >> >> Discover the easy way to master current and previous Microsoft >> >> technologies >> >> and advance your career. Get an incredible 1,500+ hours of step-by-step >> >> tutorial videos with LearnDevNow. Subscribe today and save! >> >> >> >> >> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >> >> _______________________________________________ >> >> Rails-devel mailing list >> >> Rai...@li... >> >> https://lists.sourceforge.net/lists/listinfo/rails-devel >> > >> > >> > >> > >> ------------------------------------------------------------------------------ >> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >> > Discover the easy way to master current and previous Microsoft >> technologies >> > and advance your career. Get an incredible 1,500+ hours of step-by-step >> > tutorial videos with LearnDevNow. Subscribe today and save! >> > >> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >> > _______________________________________________ >> > Rails-devel mailing list >> > Rai...@li... >> > https://lists.sourceforge.net/lists/listinfo/rails-devel >> > >> >> >> ------------------------------------------------------------------------------ >> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >> Discover the easy way to master current and previous Microsoft >> technologies >> and advance your career. Get an incredible 1,500+ hours of step-by-step >> tutorial videos with LearnDevNow. Subscribe today and save! >> >> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >> _______________________________________________ >> Rails-devel mailing list >> Rai...@li... >> https://lists.sourceforge.net/lists/listinfo/rails-devel >> > > > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > > |
From: Michael A. <out...@gm...> - 2013-08-29 05:27:58
|
So what I found was that the NetworkIterator stopped at nodes that were sinks. If I want to be able to build a graph that just tells me that I'm connected and ignores tokens in the way, I think I need to add a setting to NetworkIterator to tell it if it should ignore sinks. As this is a complicated area of the code, and it's not limited to the 1880 specific areas, I'd appreciate some feedback on my proposed changes: diff --git a/rails/algorithms/NetworkCompanyGraph.java b/rails/algorithms/NetworkCompanyGraph.java index bd93113..0e5b2c8 100644 --- a/rails/algorithms/NetworkCompanyGraph.java +++ b/rails/algorithms/NetworkCompanyGraph.java @@ -64,7 +64,8 @@ return phase2Graph; } - public SimpleGraph<NetworkVertex, NetworkEdge> createRouteGraph(boolean addHQ) { + + private SimpleGraph<NetworkVertex, NetworkEdge> createGraph(boolean addHQ, boolean ignoreSinks) { // get mapgraph from builder SimpleGraph<NetworkVertex, NetworkEdge> mapGraph = graphBuilder.getMapGraph(); @@ -88,7 +89,7 @@ // add connection to graph graph.addVertex(vertex); graph.addEdge(vertex, hqVertex, new NetworkEdge(vertex, hqVertex, false)); - NetworkIterator iterator = new NetworkIterator(mapGraph, vertex, company); + NetworkIterator iterator = new NetworkIterator(mapGraph, vertex, company, ignoreSinks); for (;iterator.hasNext();) vertexes.add(iterator.next()); // restore sink property @@ -112,6 +113,14 @@ return graph; } + public SimpleGraph<NetworkVertex, NetworkEdge> createRouteGraph(boolean addHQ) { + return createGraph(addHQ, false); + } + + public SimpleGraph<NetworkVertex, NetworkEdge> createConnectionGraph(boolean addHQ) { + return createGraph(addHQ, true); + } + public List<NetworkVertex> getCompanyBaseTokenVertexes(PublicCompanyI company) { List<NetworkVertex> vertexes = new ArrayList<NetworkVertex>(); for (TokenI token:company.getTokens()){ diff --git a/rails/algorithms/NetworkIterator.java b/rails/algorithms/NetworkIterator.java index f4029e8..1adc0a6 100644 --- a/rails/algorithms/NetworkIterator.java +++ b/rails/algorithms/NetworkIterator.java @@ -26,6 +26,7 @@ private NetworkVertex startVertex; private boolean startVertexVisited; private boolean routeIterator; + private boolean ignoreSinks; // internal data private List<NetworkVertex> stack = new ArrayList<NetworkVertex>(); @@ -41,14 +42,14 @@ public NetworkIterator(Graph<NetworkVertex, NetworkEdge> graph, NetworkVertex startVertex) { - this(graph, startVertex, null); + this(graph, startVertex, null, false); } /** * Returns NetworkIterator for specific company */ public NetworkIterator(Graph<NetworkVertex, NetworkEdge> graph, NetworkVertex startVertex, - PublicCompanyI company) { + PublicCompanyI company, boolean ignoreSinks) { super(); if (graph == null) @@ -61,6 +62,7 @@ this.startVertex = startVertex; this.startVertexVisited = false; this.routeIterator = false; + this.ignoreSinks = ignoreSinks; } NetworkIterator setRouteIterator(boolean routeIterator) { @@ -174,7 +176,7 @@ private void addUnseenChildrenOf(NetworkVertex vertex, boolean greedy) { - if (vertex.isSink()) return; + if (vertex.isSink() && (!ignoreSinks)) return; log.debug("Iterator: Add unseen children of " + vertex); for (NetworkEdge edge : graph.edgesOf(vertex)) { diff --git a/rails/algorithms/NetworkVertex.java b/rails/algorithms/NetworkVertex.java index 91356af..03045b9 100644 --- a/rails/algorithms/NetworkVertex.java +++ b/rails/algorithms/NetworkVertex.java @@ -311,7 +311,7 @@ */ public static void initAllRailsVertices(Graph<NetworkVertex, NetworkEdge> graph, PublicCompanyI company, PhaseI phase) { - + // store vertices for removal List<NetworkVertex> verticesToRemove = new ArrayList<NetworkVertex>(); for (NetworkVertex v:graph.vertexSet()) { On Wed, Aug 28, 2013 at 4:52 PM, Michael Alexander <out...@gm...>wrote: > Here's what I ended up with so far: > > compA is the private investor > compB is the company to check to see if there is a connection with > > PublicCompanyI compA = operatingCompany.get(); > ... > NetworkGraphBuilder nwGraph = > NetworkGraphBuilder.create(gameManager); > NetworkCompanyGraph companyGraph = > NetworkCompanyGraph.create(nwGraph, compA); > SimpleGraph<NetworkVertex, NetworkEdge> graph = > companyGraph.createRouteGraph(true); > Set<NetworkVertex> verticies = graph.vertexSet(); > ... > for (TokenI token : compB.getTokens()) { > TokenHolder holder = token.getHolder(); > if (!(holder instanceof Stop)) continue; > Stop city = (Stop) holder; > Station station = city.getRelatedStation(); > > for (NetworkVertex vert : verticies) { > if (vert.getType() == > NetworkVertex.VertexType.STATION) { > Station vertStation = vert.getStation(); > if (station == vertStation) { > // There is a link between the companies! > Hooray! > } > } > } > } > ... > > This seems to work for simple cases, however, I suspect (without digging > too much) that it will get blocked by tokens, which I can't have. I bet it > won't be too hard to fix, tho. > > Mike > > > > On Wed, Aug 28, 2013 at 2:38 PM, brett lentz <bre...@gm...>wrote: > >> In order to do tile rotations, there is already logic that is aware of >> the "exits" of a tile. There's also the route suggestion code. >> >> It might be possible to leverage that same code to create a route graph >> that enables detection of destination runs. >> >> It probably needs a fair bit of work to adapt for this purpose, but those >> are at least places in the code to start looking. >> >> ---Brett. >> >> >> ---Brett. >> >> >> On Wed, Aug 28, 2013 at 9:50 AM, Chris Shaffer <chr...@gm...>wrote: >> >>> There are games where tokens do block destinations, so whatever code >>> you write should allow for that possibility. There are also games >>> where connections are considered complete as soon as the tile is laid, >>> and others where the check occurs during the relevant company's >>> operating turn. >>> >>> -- >>> Chris >>> >>> Please consider the environment before printing this e-mail. >>> >>> >>> On Wed, Aug 28, 2013 at 6:35 AM, Michael Alexander >>> <out...@gm...> wrote: >>> > Both Major Companies in 1856 and Foreign Investors in 1880 have the >>> idea of >>> > needing to reach a destination. Both are implemented by having the >>> game >>> > player use a special action to tell the game engine that a connection >>> has >>> > taken place. Once the connection exists, some one time event occurs. >>> It >>> > seems like if there is code that could be used to determine if a >>> connection >>> > exists, the game could automatically determine that without relying on >>> the >>> > player to tell it. >>> > >>> > So I actually want something slightly different than what I said. >>> It's not >>> > that the current company can make a run between two hexes that I want >>> to >>> > know, it's that a connection exists (regardless of tokens). >>> > >>> > Mike >>> > >>> > >>> > On Wed, Aug 28, 2013 at 9:28 AM, Chris Shaffer < >>> chr...@gm...> >>> > wrote: >>> >> >>> >> Would this be for games where companies are limited to building track >>> >> where their trains can actually reach, or some other purpose? >>> >> >>> >> -- >>> >> Chris >>> >> >>> >> Please consider the environment before printing this e-mail. >>> >> >>> >> >>> >> On Tue, Aug 27, 2013 at 11:24 PM, Michael Alexander >>> >> <out...@gm...> wrote: >>> >> > Everyone, >>> >> > >>> >> > I'd like to add a check to see if the currently operating >>> company >>> >> > can >>> >> > run from specific MapHex to another. It seems like there should be >>> a >>> >> > way to >>> >> > do this, since a similar calculation would have to be made when >>> >> > determining >>> >> > what MapHexs are eligible to have a tile placed, but I can't seem to >>> >> > figure >>> >> > out how to do it. What am I missing? >>> >> > >>> >> > Thanks, >>> >> > >>> >> > Michael Alexander >>> >> > >>> >> > >>> >> > >>> ------------------------------------------------------------------------------ >>> >> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, >>> more! >>> >> > Discover the easy way to master current and previous Microsoft >>> >> > technologies >>> >> > and advance your career. Get an incredible 1,500+ hours of >>> step-by-step >>> >> > tutorial videos with LearnDevNow. Subscribe today and save! >>> >> > >>> >> > >>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>> >> > _______________________________________________ >>> >> > Rails-devel mailing list >>> >> > Rai...@li... >>> >> > https://lists.sourceforge.net/lists/listinfo/rails-devel >>> >> > >>> >> >>> >> >>> >> >>> ------------------------------------------------------------------------------ >>> >> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >>> >> Discover the easy way to master current and previous Microsoft >>> >> technologies >>> >> and advance your career. Get an incredible 1,500+ hours of >>> step-by-step >>> >> tutorial videos with LearnDevNow. Subscribe today and save! >>> >> >>> >> >>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>> >> _______________________________________________ >>> >> Rails-devel mailing list >>> >> Rai...@li... >>> >> https://lists.sourceforge.net/lists/listinfo/rails-devel >>> > >>> > >>> > >>> > >>> ------------------------------------------------------------------------------ >>> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >>> > Discover the easy way to master current and previous Microsoft >>> technologies >>> > and advance your career. Get an incredible 1,500+ hours of step-by-step >>> > tutorial videos with LearnDevNow. Subscribe today and save! >>> > >>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>> > _______________________________________________ >>> > Rails-devel mailing list >>> > Rai...@li... >>> > https://lists.sourceforge.net/lists/listinfo/rails-devel >>> > >>> >>> >>> ------------------------------------------------------------------------------ >>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >>> Discover the easy way to master current and previous Microsoft >>> technologies >>> and advance your career. Get an incredible 1,500+ hours of step-by-step >>> tutorial videos with LearnDevNow. Subscribe today and save! >>> >>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Rails-devel mailing list >>> Rai...@li... >>> https://lists.sourceforge.net/lists/listinfo/rails-devel >>> >> >> >> >> ------------------------------------------------------------------------------ >> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >> Discover the easy way to master current and previous Microsoft >> technologies >> and advance your career. Get an incredible 1,500+ hours of step-by-step >> tutorial videos with LearnDevNow. Subscribe today and save! >> >> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >> _______________________________________________ >> Rails-devel mailing list >> Rai...@li... >> https://lists.sourceforge.net/lists/listinfo/rails-devel >> >> > |
From: Dr. M. B. <dr....@t-...> - 2013-08-29 10:15:04
|
Hi Michael, Make sure that the deleted function isnt in use somewhere else :) Von meinem iPad gesendet Am 29.08.2013 um 07:27 schrieb Michael Alexander <out...@gm...>: > So what I found was that the NetworkIterator stopped at nodes that were sinks. If I want to be able to build a graph that just tells me that I'm connected and ignores tokens in the way, I think I need to add a setting to NetworkIterator to tell it if it should ignore sinks. As this is a complicated area of the code, and it's not limited to the 1880 specific areas, I'd appreciate some feedback on my proposed changes: > > diff --git a/rails/algorithms/NetworkCompanyGraph.java b/rails/algorithms/NetworkCompanyGraph.java > index bd93113..0e5b2c8 100644 > --- a/rails/algorithms/NetworkCompanyGraph.java > +++ b/rails/algorithms/NetworkCompanyGraph.java > @@ -64,7 +64,8 @@ > return phase2Graph; > } > > - public SimpleGraph<NetworkVertex, NetworkEdge> createRouteGraph(boolean addHQ) { > + > + private SimpleGraph<NetworkVertex, NetworkEdge> createGraph(boolean addHQ, boolean ignoreSinks) { > // get mapgraph from builder > SimpleGraph<NetworkVertex, NetworkEdge> mapGraph = graphBuilder.getMapGraph(); > > @@ -88,7 +89,7 @@ > // add connection to graph > graph.addVertex(vertex); > graph.addEdge(vertex, hqVertex, new NetworkEdge(vertex, hqVertex, false)); > - NetworkIterator iterator = new NetworkIterator(mapGraph, vertex, company); > + NetworkIterator iterator = new NetworkIterator(mapGraph, vertex, company, ignoreSinks); > for (;iterator.hasNext();) > vertexes.add(iterator.next()); > // restore sink property > @@ -112,6 +113,14 @@ > return graph; > } > > + public SimpleGraph<NetworkVertex, NetworkEdge> createRouteGraph(boolean addHQ) { > + return createGraph(addHQ, false); > + } > + > + public SimpleGraph<NetworkVertex, NetworkEdge> createConnectionGraph(boolean addHQ) { > + return createGraph(addHQ, true); > + } > + > public List<NetworkVertex> getCompanyBaseTokenVertexes(PublicCompanyI company) { > List<NetworkVertex> vertexes = new ArrayList<NetworkVertex>(); > for (TokenI token:company.getTokens()){ > diff --git a/rails/algorithms/NetworkIterator.java b/rails/algorithms/NetworkIterator.java > index f4029e8..1adc0a6 100644 > --- a/rails/algorithms/NetworkIterator.java > +++ b/rails/algorithms/NetworkIterator.java > @@ -26,6 +26,7 @@ > private NetworkVertex startVertex; > private boolean startVertexVisited; > private boolean routeIterator; > + private boolean ignoreSinks; > > // internal data > private List<NetworkVertex> stack = new ArrayList<NetworkVertex>(); > @@ -41,14 +42,14 @@ > > public NetworkIterator(Graph<NetworkVertex, NetworkEdge> graph, > NetworkVertex startVertex) { > - this(graph, startVertex, null); > + this(graph, startVertex, null, false); > } > > /** > * Returns NetworkIterator for specific company > */ > public NetworkIterator(Graph<NetworkVertex, NetworkEdge> graph, NetworkVertex startVertex, > - PublicCompanyI company) { > + PublicCompanyI company, boolean ignoreSinks) { > super(); > > if (graph == null) > @@ -61,6 +62,7 @@ > this.startVertex = startVertex; > this.startVertexVisited = false; > this.routeIterator = false; > + this.ignoreSinks = ignoreSinks; > } > > NetworkIterator setRouteIterator(boolean routeIterator) { > @@ -174,7 +176,7 @@ > > private void addUnseenChildrenOf(NetworkVertex vertex, boolean greedy) { > > - if (vertex.isSink()) return; > + if (vertex.isSink() && (!ignoreSinks)) return; > log.debug("Iterator: Add unseen children of " + vertex); > > for (NetworkEdge edge : graph.edgesOf(vertex)) { > diff --git a/rails/algorithms/NetworkVertex.java b/rails/algorithms/NetworkVertex.java > index 91356af..03045b9 100644 > --- a/rails/algorithms/NetworkVertex.java > +++ b/rails/algorithms/NetworkVertex.java > @@ -311,7 +311,7 @@ > */ > public static void initAllRailsVertices(Graph<NetworkVertex, NetworkEdge> graph, > PublicCompanyI company, PhaseI phase) { > - > + > // store vertices for removal > List<NetworkVertex> verticesToRemove = new ArrayList<NetworkVertex>(); > for (NetworkVertex v:graph.vertexSet()) { > > > On Wed, Aug 28, 2013 at 4:52 PM, Michael Alexander <out...@gm...> wrote: >> Here's what I ended up with so far: >> >> compA is the private investor >> compB is the company to check to see if there is a connection with >> >> PublicCompanyI compA = operatingCompany.get(); >> ... >> NetworkGraphBuilder nwGraph = NetworkGraphBuilder.create(gameManager); >> NetworkCompanyGraph companyGraph = NetworkCompanyGraph.create(nwGraph, compA); >> SimpleGraph<NetworkVertex, NetworkEdge> graph = companyGraph.createRouteGraph(true); >> Set<NetworkVertex> verticies = graph.vertexSet(); >> ... >> for (TokenI token : compB.getTokens()) { >> TokenHolder holder = token.getHolder(); >> if (!(holder instanceof Stop)) continue; >> Stop city = (Stop) holder; >> Station station = city.getRelatedStation(); >> >> for (NetworkVertex vert : verticies) { >> if (vert.getType() == NetworkVertex.VertexType.STATION) { >> Station vertStation = vert.getStation(); >> if (station == vertStation) { >> // There is a link between the companies! Hooray! >> } >> } >> } >> } >> ... >> >> This seems to work for simple cases, however, I suspect (without digging too much) that it will get blocked by tokens, which I can't have. I bet it won't be too hard to fix, tho. >> >> Mike >> >> >> >> On Wed, Aug 28, 2013 at 2:38 PM, brett lentz <bre...@gm...> wrote: >>> In order to do tile rotations, there is already logic that is aware of the "exits" of a tile. There's also the route suggestion code. >>> >>> It might be possible to leverage that same code to create a route graph that enables detection of destination runs. >>> >>> It probably needs a fair bit of work to adapt for this purpose, but those are at least places in the code to start looking. >>> >>> ---Brett. >>> >>> >>> ---Brett. >>> >>> >>> On Wed, Aug 28, 2013 at 9:50 AM, Chris Shaffer <chr...@gm...> wrote: >>>> There are games where tokens do block destinations, so whatever code >>>> you write should allow for that possibility. There are also games >>>> where connections are considered complete as soon as the tile is laid, >>>> and others where the check occurs during the relevant company's >>>> operating turn. >>>> >>>> -- >>>> Chris >>>> >>>> Please consider the environment before printing this e-mail. >>>> >>>> >>>> On Wed, Aug 28, 2013 at 6:35 AM, Michael Alexander >>>> <out...@gm...> wrote: >>>> > Both Major Companies in 1856 and Foreign Investors in 1880 have the idea of >>>> > needing to reach a destination. Both are implemented by having the game >>>> > player use a special action to tell the game engine that a connection has >>>> > taken place. Once the connection exists, some one time event occurs. It >>>> > seems like if there is code that could be used to determine if a connection >>>> > exists, the game could automatically determine that without relying on the >>>> > player to tell it. >>>> > >>>> > So I actually want something slightly different than what I said. It's not >>>> > that the current company can make a run between two hexes that I want to >>>> > know, it's that a connection exists (regardless of tokens). >>>> > >>>> > Mike >>>> > >>>> > >>>> > On Wed, Aug 28, 2013 at 9:28 AM, Chris Shaffer <chr...@gm...> >>>> > wrote: >>>> >> >>>> >> Would this be for games where companies are limited to building track >>>> >> where their trains can actually reach, or some other purpose? >>>> >> >>>> >> -- >>>> >> Chris >>>> >> >>>> >> Please consider the environment before printing this e-mail. >>>> >> >>>> >> >>>> >> On Tue, Aug 27, 2013 at 11:24 PM, Michael Alexander >>>> >> <out...@gm...> wrote: >>>> >> > Everyone, >>>> >> > >>>> >> > I'd like to add a check to see if the currently operating company >>>> >> > can >>>> >> > run from specific MapHex to another. It seems like there should be a >>>> >> > way to >>>> >> > do this, since a similar calculation would have to be made when >>>> >> > determining >>>> >> > what MapHexs are eligible to have a tile placed, but I can't seem to >>>> >> > figure >>>> >> > out how to do it. What am I missing? >>>> >> > >>>> >> > Thanks, >>>> >> > >>>> >> > Michael Alexander >>>> >> > >>>> >> > >>>> >> > ------------------------------------------------------------------------------ >>>> >> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >>>> >> > Discover the easy way to master current and previous Microsoft >>>> >> > technologies >>>> >> > and advance your career. Get an incredible 1,500+ hours of step-by-step >>>> >> > tutorial videos with LearnDevNow. Subscribe today and save! >>>> >> > >>>> >> > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>>> >> > _______________________________________________ >>>> >> > Rails-devel mailing list >>>> >> > Rai...@li... >>>> >> > https://lists.sourceforge.net/lists/listinfo/rails-devel >>>> >> > >>>> >> >>>> >> >>>> >> ------------------------------------------------------------------------------ >>>> >> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >>>> >> Discover the easy way to master current and previous Microsoft >>>> >> technologies >>>> >> and advance your career. Get an incredible 1,500+ hours of step-by-step >>>> >> tutorial videos with LearnDevNow. Subscribe today and save! >>>> >> >>>> >> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>>> >> _______________________________________________ >>>> >> Rails-devel mailing list >>>> >> Rai...@li... >>>> >> https://lists.sourceforge.net/lists/listinfo/rails-devel >>>> > >>>> > >>>> > >>>> > ------------------------------------------------------------------------------ >>>> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >>>> > Discover the easy way to master current and previous Microsoft technologies >>>> > and advance your career. Get an incredible 1,500+ hours of step-by-step >>>> > tutorial videos with LearnDevNow. Subscribe today and save! >>>> > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>>> > _______________________________________________ >>>> > Rails-devel mailing list >>>> > Rai...@li... >>>> > https://lists.sourceforge.net/lists/listinfo/rails-devel >>>> > >>>> >>>> ------------------------------------------------------------------------------ >>>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >>>> Discover the easy way to master current and previous Microsoft technologies >>>> and advance your career. Get an incredible 1,500+ hours of step-by-step >>>> tutorial videos with LearnDevNow. Subscribe today and save! >>>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>>> _______________________________________________ >>>> Rails-devel mailing list >>>> Rai...@li... >>>> https://lists.sourceforge.net/lists/listinfo/rails-devel >>> >>> >>> ------------------------------------------------------------------------------ >>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >>> Discover the easy way to master current and previous Microsoft technologies >>> and advance your career. Get an incredible 1,500+ hours of step-by-step >>> tutorial videos with LearnDevNow. Subscribe today and save! >>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Rails-devel mailing list >>> Rai...@li... >>> https://lists.sourceforge.net/lists/listinfo/rails-devel > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Michael A. <out...@gm...> - 2013-08-29 12:17:32
|
I didn't delete one, I just added one parameter to one constructor. And eclipse didn't tell me anything broke, so I think I'm ok. :) On Thu, Aug 29, 2013 at 6:14 AM, Dr. Martin Brumm < dr....@t-...> wrote: > Hi Michael, > > Make sure that the deleted function isnt in use somewhere else :) > > Von meinem iPad gesendet > > Am 29.08.2013 um 07:27 schrieb Michael Alexander <out...@gm... > >: > > So what I found was that the NetworkIterator stopped at nodes that were > sinks. If I want to be able to build a graph that just tells me that I'm > connected and ignores tokens in the way, I think I need to add a setting to > NetworkIterator to tell it if it should ignore sinks. As this is a > complicated area of the code, and it's not limited to the 1880 specific > areas, I'd appreciate some feedback on my proposed changes: > > diff --git a/rails/algorithms/NetworkCompanyGraph.java > b/rails/algorithms/NetworkCompanyGraph.java > index bd93113..0e5b2c8 100644 > --- a/rails/algorithms/NetworkCompanyGraph.java > +++ b/rails/algorithms/NetworkCompanyGraph.java > @@ -64,7 +64,8 @@ > return phase2Graph; > } > > - public SimpleGraph<NetworkVertex, NetworkEdge> > createRouteGraph(boolean addHQ) { > + > + private SimpleGraph<NetworkVertex, NetworkEdge> createGraph(boolean > addHQ, boolean ignoreSinks) { > // get mapgraph from builder > SimpleGraph<NetworkVertex, NetworkEdge> mapGraph = > graphBuilder.getMapGraph(); > > @@ -88,7 +89,7 @@ > // add connection to graph > graph.addVertex(vertex); > graph.addEdge(vertex, hqVertex, new NetworkEdge(vertex, > hqVertex, false)); > - NetworkIterator iterator = new NetworkIterator(mapGraph, > vertex, company); > + NetworkIterator iterator = new NetworkIterator(mapGraph, > vertex, company, ignoreSinks); > for (;iterator.hasNext();) > vertexes.add(iterator.next()); > // restore sink property > @@ -112,6 +113,14 @@ > return graph; > } > > + public SimpleGraph<NetworkVertex, NetworkEdge> > createRouteGraph(boolean addHQ) { > + return createGraph(addHQ, false); > + } > + > + public SimpleGraph<NetworkVertex, NetworkEdge> > createConnectionGraph(boolean addHQ) { > + return createGraph(addHQ, true); > + } > + > public List<NetworkVertex> getCompanyBaseTokenVertexes(PublicCompanyI > company) { > List<NetworkVertex> vertexes = new ArrayList<NetworkVertex>(); > for (TokenI token:company.getTokens()){ > diff --git a/rails/algorithms/NetworkIterator.java > b/rails/algorithms/NetworkIterator.java > index f4029e8..1adc0a6 100644 > --- a/rails/algorithms/NetworkIterator.java > +++ b/rails/algorithms/NetworkIterator.java > @@ -26,6 +26,7 @@ > private NetworkVertex startVertex; > private boolean startVertexVisited; > private boolean routeIterator; > + private boolean ignoreSinks; > > // internal data > private List<NetworkVertex> stack = new ArrayList<NetworkVertex>(); > @@ -41,14 +42,14 @@ > > public NetworkIterator(Graph<NetworkVertex, NetworkEdge> graph, > NetworkVertex startVertex) { > - this(graph, startVertex, null); > + this(graph, startVertex, null, false); > } > > /** > * Returns NetworkIterator for specific company > */ > public NetworkIterator(Graph<NetworkVertex, NetworkEdge> graph, > NetworkVertex startVertex, > - PublicCompanyI company) { > + PublicCompanyI company, boolean ignoreSinks) { > super(); > > if (graph == null) > @@ -61,6 +62,7 @@ > this.startVertex = startVertex; > this.startVertexVisited = false; > this.routeIterator = false; > + this.ignoreSinks = ignoreSinks; > } > > NetworkIterator setRouteIterator(boolean routeIterator) { > @@ -174,7 +176,7 @@ > > private void addUnseenChildrenOf(NetworkVertex vertex, boolean > greedy) { > > - if (vertex.isSink()) return; > + if (vertex.isSink() && (!ignoreSinks)) return; > log.debug("Iterator: Add unseen children of " + vertex); > > for (NetworkEdge edge : graph.edgesOf(vertex)) { > diff --git a/rails/algorithms/NetworkVertex.java > b/rails/algorithms/NetworkVertex.java > index 91356af..03045b9 100644 > --- a/rails/algorithms/NetworkVertex.java > +++ b/rails/algorithms/NetworkVertex.java > @@ -311,7 +311,7 @@ > */ > public static void initAllRailsVertices(Graph<NetworkVertex, > NetworkEdge> graph, > PublicCompanyI company, PhaseI phase) { > - > + > // store vertices for removal > List<NetworkVertex> verticesToRemove = new > ArrayList<NetworkVertex>(); > for (NetworkVertex v:graph.vertexSet()) { > > > On Wed, Aug 28, 2013 at 4:52 PM, Michael Alexander < > out...@gm...> wrote: > >> Here's what I ended up with so far: >> >> compA is the private investor >> compB is the company to check to see if there is a connection with >> >> PublicCompanyI compA = operatingCompany.get(); >> ... >> NetworkGraphBuilder nwGraph = >> NetworkGraphBuilder.create(gameManager); >> NetworkCompanyGraph companyGraph = >> NetworkCompanyGraph.create(nwGraph, compA); >> SimpleGraph<NetworkVertex, NetworkEdge> graph = >> companyGraph.createRouteGraph(true); >> Set<NetworkVertex> verticies = graph.vertexSet(); >> ... >> for (TokenI token : compB.getTokens()) { >> TokenHolder holder = token.getHolder(); >> if (!(holder instanceof Stop)) continue; >> Stop city = (Stop) holder; >> Station station = city.getRelatedStation(); >> >> for (NetworkVertex vert : verticies) { >> if (vert.getType() == >> NetworkVertex.VertexType.STATION) { >> Station vertStation = vert.getStation(); >> if (station == vertStation) { >> // There is a link between the companies! >> Hooray! >> } >> } >> } >> } >> ... >> >> This seems to work for simple cases, however, I suspect (without digging >> too much) that it will get blocked by tokens, which I can't have. I bet it >> won't be too hard to fix, tho. >> >> Mike >> >> >> >> On Wed, Aug 28, 2013 at 2:38 PM, brett lentz <bre...@gm...>wrote: >> >>> In order to do tile rotations, there is already logic that is aware of >>> the "exits" of a tile. There's also the route suggestion code. >>> >>> It might be possible to leverage that same code to create a route graph >>> that enables detection of destination runs. >>> >>> It probably needs a fair bit of work to adapt for this purpose, but >>> those are at least places in the code to start looking. >>> >>> ---Brett. >>> >>> >>> ---Brett. >>> >>> >>> On Wed, Aug 28, 2013 at 9:50 AM, Chris Shaffer <chr...@gm...>wrote: >>> >>>> There are games where tokens do block destinations, so whatever code >>>> you write should allow for that possibility. There are also games >>>> where connections are considered complete as soon as the tile is laid, >>>> and others where the check occurs during the relevant company's >>>> operating turn. >>>> >>>> -- >>>> Chris >>>> >>>> Please consider the environment before printing this e-mail. >>>> >>>> >>>> On Wed, Aug 28, 2013 at 6:35 AM, Michael Alexander >>>> <out...@gm...> wrote: >>>> > Both Major Companies in 1856 and Foreign Investors in 1880 have the >>>> idea of >>>> > needing to reach a destination. Both are implemented by having the >>>> game >>>> > player use a special action to tell the game engine that a connection >>>> has >>>> > taken place. Once the connection exists, some one time event occurs. >>>> It >>>> > seems like if there is code that could be used to determine if a >>>> connection >>>> > exists, the game could automatically determine that without relying >>>> on the >>>> > player to tell it. >>>> > >>>> > So I actually want something slightly different than what I said. >>>> It's not >>>> > that the current company can make a run between two hexes that I want >>>> to >>>> > know, it's that a connection exists (regardless of tokens). >>>> > >>>> > Mike >>>> > >>>> > >>>> > On Wed, Aug 28, 2013 at 9:28 AM, Chris Shaffer < >>>> chr...@gm...> >>>> > wrote: >>>> >> >>>> >> Would this be for games where companies are limited to building track >>>> >> where their trains can actually reach, or some other purpose? >>>> >> >>>> >> -- >>>> >> Chris >>>> >> >>>> >> Please consider the environment before printing this e-mail. >>>> >> >>>> >> >>>> >> On Tue, Aug 27, 2013 at 11:24 PM, Michael Alexander >>>> >> <out...@gm...> wrote: >>>> >> > Everyone, >>>> >> > >>>> >> > I'd like to add a check to see if the currently operating >>>> company >>>> >> > can >>>> >> > run from specific MapHex to another. It seems like there should >>>> be a >>>> >> > way to >>>> >> > do this, since a similar calculation would have to be made when >>>> >> > determining >>>> >> > what MapHexs are eligible to have a tile placed, but I can't seem >>>> to >>>> >> > figure >>>> >> > out how to do it. What am I missing? >>>> >> > >>>> >> > Thanks, >>>> >> > >>>> >> > Michael Alexander >>>> >> > >>>> >> > >>>> >> > >>>> ------------------------------------------------------------------------------ >>>> >> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, >>>> more! >>>> >> > Discover the easy way to master current and previous Microsoft >>>> >> > technologies >>>> >> > and advance your career. Get an incredible 1,500+ hours of >>>> step-by-step >>>> >> > tutorial videos with LearnDevNow. Subscribe today and save! >>>> >> > >>>> >> > >>>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>>> >> > _______________________________________________ >>>> >> > Rails-devel mailing list >>>> >> > Rai...@li... >>>> >> > https://lists.sourceforge.net/lists/listinfo/rails-devel >>>> >> > >>>> >> >>>> >> >>>> >> >>>> ------------------------------------------------------------------------------ >>>> >> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, >>>> more! >>>> >> Discover the easy way to master current and previous Microsoft >>>> >> technologies >>>> >> and advance your career. Get an incredible 1,500+ hours of >>>> step-by-step >>>> >> tutorial videos with LearnDevNow. Subscribe today and save! >>>> >> >>>> >> >>>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>>> >> _______________________________________________ >>>> >> Rails-devel mailing list >>>> >> Rai...@li... >>>> >> https://lists.sourceforge.net/lists/listinfo/rails-devel >>>> > >>>> > >>>> > >>>> > >>>> ------------------------------------------------------------------------------ >>>> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >>>> > Discover the easy way to master current and previous Microsoft >>>> technologies >>>> > and advance your career. Get an incredible 1,500+ hours of >>>> step-by-step >>>> > tutorial videos with LearnDevNow. Subscribe today and save! >>>> > >>>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>>> > _______________________________________________ >>>> > Rails-devel mailing list >>>> > Rai...@li... >>>> > https://lists.sourceforge.net/lists/listinfo/rails-devel >>>> > >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >>>> Discover the easy way to master current and previous Microsoft >>>> technologies >>>> and advance your career. Get an incredible 1,500+ hours of step-by-step >>>> tutorial videos with LearnDevNow. Subscribe today and save! >>>> >>>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>>> _______________________________________________ >>>> Rails-devel mailing list >>>> Rai...@li... >>>> https://lists.sourceforge.net/lists/listinfo/rails-devel >>>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >>> Discover the easy way to master current and previous Microsoft >>> technologies >>> and advance your career. Get an incredible 1,500+ hours of step-by-step >>> tutorial videos with LearnDevNow. Subscribe today and save! >>> >>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Rails-devel mailing list >>> Rai...@li... >>> https://lists.sourceforge.net/lists/listinfo/rails-devel >>> >>> >> > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > > > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > > |