Advertisement
Guest User

Untitled

a guest
May 10th, 2013
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.89 KB | None | 0 0
  1. private void initTiles()
  2. {
  3.     // Forgive me Gang of Four wherever you are.
  4.     //4 fields, 4 forest, 4 pasture, 3 mountains, 3 hills, 1 desert
  5.     //19 total
  6.     // + 18 water
  7.     Tile.UnfinishedTile t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11,
  8.         t12, t13, t14, t15, t16, t17, t18, water;
  9.     //This line initializes all the ts to null so that I can refer to them
  10.     //later, because otherwise it thinks the try block can fail and leave
  11.     //them uninitialized, even though the exception is never actually
  12.     //thrown.
  13.     t0=t1=t2=t3=t4=t5=t6=t7=t8=t9=t10=t11=t12=t13=t14=t15=t16=t17=t18=null;
  14.     water = null;
  15.     Integer[] ns = shuffle(
  16.         2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12
  17.     );
  18.     Tile.Terrain[] ts = shuffle(
  19.       FIELD, FIELD, FIELD, FIELD,
  20.       FOREST, FOREST, FOREST, FOREST,
  21.       PASTURE, PASTURE, PASTURE, PASTURE,
  22.       MOUNTAIN, MOUNTAIN, MOUNTAIN,
  23.       HILL, HILL, HILL,
  24.       DESERT
  25.     );
  26.     try {
  27.         int i=0;
  28.         t0 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  29.         t1 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  30.         t2 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  31.         t3 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  32.         t4 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  33.         t5 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  34.         t6 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  35.         t7 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  36.         t8 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  37.         t9 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  38.         t10 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  39.         t11 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  40.         t12 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  41.         t13 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  42.         t14 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  43.         t15 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  44.         t16 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  45.         t17 = new Tile.UnfinishedTile(ts[i], ns[i++]);
  46.         t18 = new Tile.UnfinishedTile(ts[i], ns[i]);
  47.         water = new Tile.UnfinishedTile(WATER, 0);
  48.     } catch (Tile.NeedsNeighborsException e) {
  49.         // Duly noted, and addressed below.
  50.     }
  51.     t0.setNeighbors(water, water, t2, t4, t1, water);
  52.     t1.setNeighbors(water, t0, t4, t6, t3, water);
  53.     t2.setNeighbors(water, water, t5, t7, t4, t0);
  54.     t3.setNeighbors(water, t1, t6, t8, water, water);
  55.     t4.setNeighbors(t0, t2, t7, t9, t6, t1);
  56.     t5.setNeighbors(water, water, water, t10, t7, t2);
  57.     t6.setNeighbors(t1, t4, t9, t11, t8, t3);
  58.     t7.setNeighbors(t2, t5, t10, t12, t9, t4);
  59.     t8.setNeighbors(t3, t6, t11, t13, water, water);
  60.     t9.setNeighbors(t4, t7, t12, t14, t11, t6);
  61.     t10.setNeighbors(t5, water, water, t15, t12, t7);
  62.     t11.setNeighbors(t6, t9, t14, t16, t13, t8);
  63.     t12.setNeighbors(t7, t10, t15, t17, t14, t9);
  64.     t13.setNeighbors(t8, t11, t16, water, water, water);
  65.     t14.setNeighbors(t9, t12, t17, t18, t16, t11);
  66.     t15.setNeighbors(t10, water, water, water, t17, t12);
  67.     t16.setNeighbors(t11, t14, t18, water, water, t13);
  68.     t17.setNeighbors(t12, t15, water, water, t18, t14);
  69.     t18.setNeighbors(t14, t17, water, water, water, t16);
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement