From: Stefan F. <ste...@us...> - 2010-04-09 07:20:35
|
Update of /cvsroot/rails/18xx/rails/algorithms In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv9545/rails/algorithms Modified Files: NetworkVertex.java NetworkGraphBuilder.java Log Message: Added Tile and Token location hints Some minor fixes Index: NetworkVertex.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/algorithms/NetworkVertex.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NetworkVertex.java 4 Apr 2010 22:02:53 -0000 1.1 --- NetworkVertex.java 9 Apr 2010 07:20:27 -0000 1.2 *************** *** 37,41 **** this.side = 0; ! if (station.getBaseSlots() == 0){ this.tokenable = false; } else { --- 37,42 ---- this.side = 0; ! String t = station.getType(); ! if (t.equals(Station.TOWN)){ this.tokenable = false; } else { *************** *** 52,59 **** } } ! if (tokens == null) ! this.companiesHaveToken = null; ! else { ! this.companiesHaveToken = new HashSet<PublicCompanyI>(); for (TokenI token:tokens) { if (token instanceof BaseToken) { --- 53,58 ---- } } ! this.companiesHaveToken = new HashSet<PublicCompanyI>(); ! if (tokens != null) { for (TokenI token:tokens) { if (token instanceof BaseToken) { Index: NetworkGraphBuilder.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/algorithms/NetworkGraphBuilder.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** NetworkGraphBuilder.java 8 Apr 2010 21:23:14 -0000 1.2 --- NetworkGraphBuilder.java 9 Apr 2010 07:20:27 -0000 1.3 *************** *** 208,211 **** --- 208,233 ---- } + public static List<MapHex> getMapHexes(Graph<NetworkVertex, NetworkEdge> graph){ + List<MapHex> hexes = new ArrayList<MapHex>(); + for(NetworkVertex vertex:graph.vertexSet()) { + if (vertex.isStation() || vertex.isSide()) { + hexes.add(vertex.getHex()); + } + } + return hexes; + } + + public static List<MapHex> getStationHexes(Graph<NetworkVertex, NetworkEdge> graph, + boolean tokenable){ + List<MapHex> hexes = new ArrayList<MapHex>(); + for(NetworkVertex vertex:graph.vertexSet()) { + if (vertex.isStation() && !(tokenable && vertex.isFullyTokened())) { + hexes.add(vertex.getHex()); + } + } + return hexes; + } + + public static void optimizeGraph(Graph<NetworkVertex, NetworkEdge> graph) { while (removeVertexes(graph)); |