Skip to content

Instantly share code, notes, and snippets.

@Nuxij
Created March 11, 2015 08:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Nuxij/a7df3f2672ee9e2e4830 to your computer and use it in GitHub Desktop.
Save Nuxij/a7df3f2672ee9e2e4830 to your computer and use it in GitHub Desktop.
BackGammon board mappings in JS
/*
Red 0 == Black 25
Red 1 == Black 24 == R1
Black 1 == Red 24 == B1
Red 12 == Black 13 == R12
Black 12 == Red 13 == B12
*/
// map a color place to a bpard position
var x = function(pos, color) {
var mapped = undefined;
if(pos < 0) pos = 0;
if(pos > 25) pos = 25;
if (color == "Red") {
if (pos <= 12) {
mapped = "R" + pos;
} else {
mapped = "B" + (25 - pos)
}
} else if (color == "Black") {
if (pos <= 12) {
mapped = "B" + pos;
} else {
mapped = "R" + (25 - pos)
}
}
return mapped;
};
// map a board position to a color place
var y = function(pos, color) {
var mapped = undefined;
var redPos = 0;
var split = [pos.slice(0,1), parseInt(pos.slice(1))];
if (split[1] != NaN) {
if (split[0] == "R") {
redPos = split[1];
} else if (split[0] == "B") {
redPos = 25 - split[1];
}
mapped = redPos;
if (color == "Black") {
mapped = 25 - redPos;
}
}
return mapped;
};
console.log(x(0, "Red"));
console.log(x(5, "Red"));
console.log(x(21, "Red"));
console.log(x(24, "Red"));
console.log(x(27, "Red"));
console.log(" ");
console.log(x(0, "Black"));
console.log(x(5, "Black"));
console.log(x(21, "Black"));
console.log(x(24, "Black"));
console.log(x(27, "Black"));
console.log(" ");
console.log(y("R4", "Black"));
console.log(y("R21", "Red"));
console.log(y("B4", "Red"));
console.log(y("B0", "Red"));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment