Procházet zdrojové kódy

Board true deep copy Constructor and createInnerWalls small bug

tags/v2.0b1
Anastasia Foti před 4 roky
rodič
revize
c14d1d812f
2 změnil soubory, kde provedl 7 přidání a 6 odebrání
  1. +5
    -4
      src/host/labyrinth/Board.java
  2. +2
    -2
      src/host/labyrinth/Common.java

+ 5
- 4
src/host/labyrinth/Board.java Zobrazit soubor

@@ -75,7 +75,8 @@ class Board {
// Clone arrays
this.tiles = b.tiles.clone();
this.supplies = b.supplies.clone();
this.walls = b.walls;
for (Edge it: b.walls)
this.walls.add(new Edge(it));
}
/** @} */

@@ -458,15 +459,15 @@ class Board {
*/
private int createInnerWalls () {
ShuffledRange randTiles = new ShuffledRange(0, N*N);
for (int tileId, i =0, walls =0, shuffleMark =0 ; true ; ) {
for (int tileId, walls =0, shuffleMark =0 ; true ; ) {
// randomly pick a wallable tile.
do {
if ((tileId = randTiles.get())== Const.EOR) {
if (i == shuffleMark) // Wallable tiles exhausted.
if (walls == shuffleMark) // Wallable tiles exhausted.
return walls;
else { // Re-shuffle and continue.
randTiles = new ShuffledRange(0, N*N);
shuffleMark =i;
shuffleMark =walls;
}
}
} while (!isWallable(tileId));


+ 2
- 2
src/host/labyrinth/Common.java Zobrazit soubor

@@ -314,7 +314,7 @@ class Edge {
* of the closed room into the problem of finding a non simple graph.
*
* If the board has non connected wall structure then we would need a non
* coherent graph to represent it. This class provides constroctors and
* coherent graph to represent it. This class provides constructors and
* methods to create coherent graphs
*
* An example of the biggest coherent graph we can create from the board bellow,
@@ -330,7 +330,7 @@ class Edge {
class Graph {
/**
* Constructs a node of the graph using the value of a vertex(node).
* @param v The verteg to attach.
* @param v The vertex to attach.
*/
Graph (int v) {
V = v;


Načítá se…
Zrušit
Uložit