Skip to content

Commit

Permalink
replaced french wording 'terrain' with 'land'
Browse files Browse the repository at this point in the history
  • Loading branch information
prevostc committed Jan 10, 2015
1 parent e769eac commit 63deff4
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 26 deletions.
2 changes: 1 addition & 1 deletion www/js/catan/js/catan.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Catan = (function () {
do {
map = new Catan.Map(7, 7, new Catan.Position(3, 3));
do {
lands = map.generateTerrains();
lands = map.generateLands();
} while (lands.length > 0);

res = map.generateNumbers(tileTrioScoreLimit);
Expand Down
5 changes: 5 additions & 0 deletions www/js/catan/js/generator/generator.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
(function(Catan) {

Catan.Generator = {};

})(Catan);
24 changes: 24 additions & 0 deletions www/js/catan/js/generator/generator.land.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
(function(Catan) {

Catan.Generator.Land = {};

Catan.Generator.Land.generate = function (canvas, tileTrioScoreLimit) {
tileTrioScoreLimit = tileTrioScoreLimit || 12;

var lands, res, map;

do {
map = new Catan.Map(7, 7, new Catan.Position(3, 3));
do {
lands = map.generateLands();
} while (lands.length > 0);

res = map.generateNumbers(tileTrioScoreLimit);
} while (!res);

map.generateHarbors();

Catan.UI.drawMap(map, canvas);
return map;
};
})(Catan);
24 changes: 24 additions & 0 deletions www/js/catan/js/generator/generator.map.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
(function(Catan) {

Catan.Generator.Map = {};

Catan.Generator.Map.generate = function (canvas, tileTrioScoreLimit) {
tileTrioScoreLimit = tileTrioScoreLimit || 12;

var lands, res, map;

do {
map = new Catan.Map(7, 7, new Catan.Position(3, 3));
do {
lands = map.generateLands();
} while (lands.length > 0);

res = map.generateNumbers(tileTrioScoreLimit);
} while (!res);

map.generateHarbors();

Catan.UI.drawMap(map, canvas);
return map;
};
})(Catan);
44 changes: 22 additions & 22 deletions www/js/catan/js/map.js
Original file line number Diff line number Diff line change
Expand Up @@ -120,20 +120,20 @@

};

Catan.Map.prototype.getAllowedTerrains = function (i, j, allowedTerrains) {
Catan.Map.prototype.getAllowedLands = function (i, j, allowedLands) {
var map = this;
this.eachNeighbour(i, j, function (x, y) {
// remove neighbours lands from allowed lands
allowedTerrains = allowedTerrains.filter(function (element, index, array) {
allowedLands = allowedLands.filter(function (element, index, array) {
return (map.get(x, y).land != element);
});
});
return allowedTerrains;
return allowedLands;
};


Catan.Map.prototype.generateTerrains = function () {
var allowedTerrains;
Catan.Map.prototype.generateLands = function () {
var allowedLands;
var map = this;
// init map with random lands
var lands = [
Expand Down Expand Up @@ -172,25 +172,25 @@
Catan.Tools.shuffle(lands);

for (var i = 0; i < emptySpots.length; ++i) {
allowedTerrains = this.getAllowedTerrains(emptySpots[i].column, emptySpots[i].line, lands);
allowedLands = this.getAllowedLands(emptySpots[i].column, emptySpots[i].line, lands);

if (allowedTerrains.length > 0) {
this.get(emptySpots[i].column, emptySpots[i].line).land = allowedTerrains[0];
lands = Catan.Tools.removeOne(lands, allowedTerrains[0]);
if (allowedLands.length > 0) {
this.get(emptySpots[i].column, emptySpots[i].line).land = allowedLands[0];
lands = Catan.Tools.removeOne(lands, allowedLands[0]);
} else {
newEmptySpots.push(emptySpots[i]);
}
}
emptySpots = newEmptySpots;

// swap as much as possible
var allTerrains;
var allLands;
var swapped = false;
var eachSwapFunction = function (i, j) {
if (!swapped && !(i == ex && j == ey) && Catan.Tools.contains(allowedTerrains, map.get(i, j).land)) {
var currentAllowedTerrains = map.getAllowedTerrains(i, j, allTerrains);
if (!swapped && !(i == ex && j == ey) && Catan.Tools.contains(allowedLands, map.get(i, j).land)) {
var currentAllowedLands = map.getAllowedLands(i, j, allLands);
for (var t = 0; t < lands.length && !swapped; t++) {
if (map.get(i, j).land != lands[t] && Catan.Tools.contains(currentAllowedTerrains, lands[t])) {
if (map.get(i, j).land != lands[t] && Catan.Tools.contains(currentAllowedLands, lands[t])) {
// set empty spot land to current.land
map.get(ex, ey).land = map.get(i, j).land;
// set current land to land[t]
Expand All @@ -207,10 +207,10 @@
for (var cur = 0; cur < emptySpots.length; ++cur) {
var ex = emptySpots[cur].column;
var ey = emptySpots[cur].line;
allTerrains = [Catan.T.Hills, Catan.T.Pasture, Catan.T.Mountains, Catan.T.Fields, Catan.T.Forest, Catan.T.Desert];
allowedTerrains = this.getAllowedTerrains(ex, ey, allTerrains);
allLands = [Catan.T.Hills, Catan.T.Pasture, Catan.T.Mountains, Catan.T.Fields, Catan.T.Forest, Catan.T.Desert];
allowedLands = this.getAllowedLands(ex, ey, allLands);
// if smth is allowed
if (allowedTerrains.length > 0) {
if (allowedLands.length > 0) {
swapped = false;
this.each(eachSwapFunction);
}
Expand Down Expand Up @@ -430,15 +430,15 @@
Catan.Tools.shuffle(harborCoords);
for (var h = 0; h < harborCoords.length; h++) {
var currentHarbor = map.get(harborCoords[h].column, harborCoords[h].line);
var allowedTerrains = lands;
allowedTerrains = this.getAllowedTerrains(harborCoords[h].column, harborCoords[h].line, allowedTerrains);
var allowedLands = lands;
allowedLands = this.getAllowedLands(harborCoords[h].column, harborCoords[h].line, allowedLands);

if (!Catan.Tools.contains(allowedTerrains, currentHarbor.circle)) {
if (!Catan.Tools.contains(allowedLands, currentHarbor.circle)) {
// find a place to go
for (var hh = 0; hh < harborCoords.length; hh++) {
allowedTerrains = lands;
allowedTerrains = this.getAllowedTerrains(harborCoords[hh].column, harborCoords[hh].line, allowedTerrains);
if (Catan.Tools.contains(allowedTerrains, currentHarbor.circle)) {
allowedLands = lands;
allowedLands = this.getAllowedLands(harborCoords[hh].column, harborCoords[hh].line, allowedLands);
if (Catan.Tools.contains(allowedLands, currentHarbor.circle)) {
// do swap
var swapHarbor = map.get(harborCoords[hh].column, harborCoords[hh].line);
var cTmp = swapHarbor.circle;
Expand Down
6 changes: 3 additions & 3 deletions www/js/catan/js/ui.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@

Catan.UI.drawHexagon = function (hexagon, ctx, size, dist) {

var getColorFromTerrain = function (land) {
var getColorFromLand = function (land) {
var color;
switch (land) {
case Catan.T.Hills:
Expand Down Expand Up @@ -72,7 +72,7 @@
cx = hexagon.position.column * (width + dist) - ((hexagon.position.line + 1) % 2) * (width + dist) / 2 + width/2 + size.canvasWidth/2 - mapWidth/2,
cy = hexagon.position.line * (3 / 4 * height + dist) + height/2 + size.canvasHeight/2 - mapHeight/2;

ctx.fillStyle = getColorFromTerrain(hexagon.land);
ctx.fillStyle = getColorFromLand(hexagon.land);
ctx.beginPath();
ctx.moveTo(cx, cy - height / 2);
ctx.lineTo(cx + width / 2, cy - height / 4);
Expand All @@ -93,7 +93,7 @@
};

if (hexagon.land == Catan.T.Harbor) {
fillCircle(cx, cy, 11, getColorFromTerrain(hexagon.circle));
fillCircle(cx, cy, 11, getColorFromLand(hexagon.circle));
ctx.stroke();
}

Expand Down

0 comments on commit 63deff4

Please sign in to comment.