SHOW:
|
|
- or go back to the newest paste.
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 |
4 | + | /* 4 fields, 4 forest, 4 pasture, 3 mountains, 3 hills, 1 desert |
5 | - | //19 total |
5 | + | 19 total |
6 | - | // + 18 water |
6 | + | + water */ |
7 | - | Tile.UnfinishedTile t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, |
7 | + | /* These 18+1 tiles represent the positions (hungarian-notated as p) |
8 | - | t12, t13, t14, t15, t16, t17, t18, water; |
8 | + | on the board. Their roll numbers and terrain types will be assigned |
9 | - | //This line initializes all the ts to null so that I can refer to them |
9 | + | randomly, from the contents of a game box. */ |
10 | - | //later, because otherwise it thinks the try block can fail and leave |
10 | + | Tile.UnfinishedTile p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, |
11 | - | //them uninitialized, even though the exception is never actually |
11 | + | p12, p13, p14, p15, p16, p17, p18, water; |
12 | - | //thrown. |
12 | + | /* This line initializes all the ts to null so that I can refer to them |
13 | - | t0=t1=t2=t3=t4=t5=t6=t7=t8=t9=t10=t11=t12=t13=t14=t15=t16=t17=t18=null; |
13 | + | later, because otherwise it thinks the try block can fail and leave |
14 | them uninitialized, even though the exception is never actually | |
15 | thrown. */ | |
16 | p0=p1=p2=p3=p4=p5=p6=p7=p8=p9=p10=p11=p12=p13=p14=p15=p16=p17=p18=null; | |
17 | water = null; | |
18 | /* These numbers are the tokens that come in the box: */ | |
19 | - | FIELD, FIELD, FIELD, FIELD, |
19 | + | |
20 | - | FOREST, FOREST, FOREST, FOREST, |
20 | + | |
21 | - | PASTURE, PASTURE, PASTURE, PASTURE, |
21 | + | |
22 | - | MOUNTAIN, MOUNTAIN, MOUNTAIN, |
22 | + | /* And these are how many of each terrain type comes in the box: */ |
23 | - | HILL, HILL, HILL, |
23 | + | |
24 | - | DESERT |
24 | + | FIELD, FIELD, FIELD, FIELD, |
25 | FOREST, FOREST, FOREST, FOREST, | |
26 | - | try { |
26 | + | PASTURE, PASTURE, PASTURE, PASTURE, |
27 | MOUNTAIN, MOUNTAIN, MOUNTAIN, | |
28 | - | t0 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
28 | + | HILL, HILL, HILL, |
29 | - | t1 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
29 | + | DESERT |
30 | - | t2 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
30 | + | |
31 | - | t3 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
31 | + | try { /* Here we're assigning the terrains (ts) and the numbers (ns) */ |
32 | - | t4 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
32 | + | |
33 | - | t5 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
33 | + | p0 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
34 | - | t6 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
34 | + | p1 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
35 | - | t7 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
35 | + | p2 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
36 | - | t8 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
36 | + | p3 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
37 | - | t9 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
37 | + | p4 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
38 | - | t10 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
38 | + | p5 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
39 | - | t11 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
39 | + | p6 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
40 | - | t12 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
40 | + | p7 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
41 | - | t13 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
41 | + | p8 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
42 | - | t14 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
42 | + | p9 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
43 | - | t15 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
43 | + | p10 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
44 | - | t16 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
44 | + | p11 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
45 | - | t17 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
45 | + | p12 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
46 | - | t18 = new Tile.UnfinishedTile(ts[i], ns[i]); |
46 | + | p13 = new Tile.UnfinishedTile(ts[i], ns[i++]); |
47 | p14 = new Tile.UnfinishedTile(ts[i], ns[i++]); | |
48 | p15 = new Tile.UnfinishedTile(ts[i], ns[i++]); | |
49 | p16 = new Tile.UnfinishedTile(ts[i], ns[i++]); | |
50 | p17 = new Tile.UnfinishedTile(ts[i], ns[i++]); | |
51 | - | t0.setNeighbors(water, water, t2, t4, t1, water); |
51 | + | p18 = new Tile.UnfinishedTile(ts[i], ns[i]); |
52 | - | t1.setNeighbors(water, t0, t4, t6, t3, water); |
52 | + | |
53 | - | t2.setNeighbors(water, water, t5, t7, t4, t0); |
53 | + | |
54 | - | t3.setNeighbors(water, t1, t6, t8, water, water); |
54 | + | |
55 | - | t4.setNeighbors(t0, t2, t7, t9, t6, t1); |
55 | + | /* This exception is never thrown by any code, but it exists as |
56 | - | t5.setNeighbors(water, water, water, t10, t7, t2); |
56 | + | a checked exception to ensure that everyone who uses an |
57 | - | t6.setNeighbors(t1, t4, t9, t11, t8, t3); |
57 | + | UnfinishedTile is reminded and forced to acknowledge that the |
58 | - | t7.setNeighbors(t2, t5, t10, t12, t9, t4); |
58 | + | tile is unfinished and its neighbors must be set */ |
59 | - | t8.setNeighbors(t3, t6, t11, t13, water, water); |
59 | + | |
60 | - | t9.setNeighbors(t4, t7, t12, t14, t11, t6); |
60 | + | /* We know about magic numbers and magic strings, here's magic code. |
61 | - | t10.setNeighbors(t5, water, water, t15, t12, t7); |
61 | + | I came up with this unreadable abomination by taking a hex grid |
62 | - | t11.setNeighbors(t6, t9, t14, t16, t13, t8); |
62 | + | and labelling it in an organized manner with its positions. |
63 | - | t12.setNeighbors(t7, t10, t15, t17, t14, t9); |
63 | + | Then I transcribed the neighbors of each hex into this code. |
64 | - | t13.setNeighbors(t8, t11, t16, water, water, water); |
64 | + | */ |
65 | - | t14.setNeighbors(t9, t12, t17, t18, t16, t11); |
65 | + | p0.setNeighbors(water, water, p2, p4, p1, water); |
66 | - | t15.setNeighbors(t10, water, water, water, t17, t12); |
66 | + | p1.setNeighbors(water, p0, p4, p6, p3, water); |
67 | - | t16.setNeighbors(t11, t14, t18, water, water, t13); |
67 | + | p2.setNeighbors(water, water, p5, p7, p4, p0); |
68 | - | t17.setNeighbors(t12, t15, water, water, t18, t14); |
68 | + | p3.setNeighbors(water, p1, p6, p8, water, water); |
69 | - | t18.setNeighbors(t14, t17, water, water, water, t16); |
69 | + | p4.setNeighbors(p0, p2, p7, p9, p6, p1); |
70 | p5.setNeighbors(water, water, water, p10, p7, p2); | |
71 | p6.setNeighbors(p1, p4, p9, p11, p8, p3); | |
72 | p7.setNeighbors(p2, p5, p10, p12, p9, p4); | |
73 | p8.setNeighbors(p3, p6, p11, p13, water, water); | |
74 | p9.setNeighbors(p4, p7, p12, p14, p11, p6); | |
75 | p10.setNeighbors(p5, water, water, p15, p12, p7); | |
76 | p11.setNeighbors(p6, p9, p14, p16, p13, p8); | |
77 | p12.setNeighbors(p7, p10, p15, p17, p14, p9); | |
78 | p13.setNeighbors(p8, p11, p16, water, water, water); | |
79 | p14.setNeighbors(p9, p12, p17, p18, p16, p11); | |
80 | p15.setNeighbors(p10, water, water, water, p17, p12); | |
81 | p16.setNeighbors(p11, p14, p18, water, water, p13); | |
82 | p17.setNeighbors(p12, p15, water, water, p18, p14); | |
83 | p18.setNeighbors(p14, p17, water, water, water, p16); | |
84 | } |