Javascript:engine xx.js: Difference between revisions
No edit summary |
No edit summary |
||
Line 94: | Line 94: | ||
|- | |- | ||
|encodeSquare | |encodeSquare | ||
|function(x) | |function(x) | ||
x - number, | |||
returns string | |||
|function that maps square number (zero for leftmost active square in topmost row) to used notation (numeric ar alphanumeric) | |function that maps square number (zero for leftmost active square in topmost row) to used notation (numeric ar alphanumeric) | ||
|- | |- | ||
|decodeSquare | |decodeSquare | ||
|function(x) | |function(x) | ||
x - string, | |||
returns number | |||
|function that maps used notation to square number (zero for leftmost active square in topmost row) | |function that maps used notation to square number (zero for leftmost active square in topmost row) | ||
|- | |- | ||
|initialPosition | |initialPosition | ||
|function () | |function () | ||
returns array of numbers | |||
|function that returns initial position on board. Returned position is array of numbers, each numbers is for piece occupying one square: | |function that returns initial position on board. Returned position is array of numbers, each numbers is for piece occupying one square: | ||
1 - white man | 1 - white man | ||
2 - white king | 2 - white king | ||
-1 - black man | -1 - black man | ||
-2 - black king | -2 - black king | ||
0 - empty square | 0 - empty square | ||
|- | |- | ||
|packPosition | |packPosition | ||
|function(position) | |function(position) | ||
position - array of numbers, | |||
returns string | |||
|function that packs position as array of numbers to string | |function that packs position as array of numbers to string | ||
|- | |- | ||
|unpackPosition | |unpackPosition | ||
|function(packed) | |function(packed) | ||
packed - string, | |||
returns array of numbers | |||
|function that unpacks position packed to string with packPosition function | |function that unpacks position packed to string with packPosition function | ||
|- | |- | ||
|validMoves | |validMoves | ||
|function(position, whiteMove) | |function(position, whiteMove) | ||
position - array of numbers or string, | |||
whiteMove boolean, | |||
returns array of [[Javascript:move object|move objects]] | |||
|function for selecting all valid moves in specified position (can be array or string as result of packPosition function) with selected player on move. | |function for selecting all valid moves in specified position (can be array or string as result of packPosition function) with selected player on move. | ||
|- | |- | ||
|findMove | |findMove | ||
|function(move, validMovesList) | |function(move, validMovesList) | ||
|function that is locating move represented as string in current notation in list of valid moves and returns corresponding move object. | |||
move - string, | |||
validMovesList - array of [[Javascript:move object|move objects]], | |||
returns [[Javascript:move object|move object]] | |||
|function that is locating move represented as string in current notation in list of valid moves and returns corresponding [[Javascript:move object|move object]]. | |||
|- | |- | ||
|makeMove | |makeMove | ||
|function(move, position, whiteMove) | |function(move, position, whiteMove) | ||
|function that is making desired move (can be move object or string) in specified position (array of numbers) with selected player on move. | |||
move - [[Javascript:move object|move object]] or string, | |||
position array of numbers, | |||
whiteMove boolean, | |||
returns object. | |||
|function that is making desired move (can be [[Javascript:move object|move object]] or string) in specified position (array of numbers) with selected player on move. | |||
Returned object members: move - move object, position - position after move is played, changed - array of squares (numbers) changed during the move. | Returned object members: move - move object, position - position after move is played, changed - array of squares (numbers) changed during the move. | ||
|- | |- | ||
|advanceMove | |advanceMove | ||
|function(game) | |function(game) | ||
game - object: num - number (move number), whiteMove - boolean | |||
|functon that is changing side that is on the move (black to white and vice versa) and incrementing move number if needed. | |functon that is changing side that is on the move (black to white and vice versa) and incrementing move number if needed. | ||
|- | |- | ||
|checkForPromotion | |checkForPromotion | ||
|function(piece, square) | |function(piece, square) | ||
piece - number, | |||
square - number, | |||
returns boolean | |||
|check is man has reached promotion row | |check is man has reached promotion row | ||
|- | |- | ||
Line 144: | Line 196: | ||
When called with two arguments (square number and boolean saying if board is positioned upside-down) returns object: | When called with two arguments (square number and boolean saying if board is positioned upside-down) returns object: | ||
row - number, row number, zero for topmost row; | row - number, row number, zero for topmost row; | ||
column - number, column number, zefo for leftmost row; | column - number, column number, zefo for leftmost row; | ||
black - boolean, ''true'' if square is black. | black - boolean, ''true'' if square is black. | ||
When called with three arguments (row and column numbers, and boolean saying if board is positioned upside-down) returns object: | When called with three arguments (row and column numbers, and boolean saying if board is positioned upside-down) returns object: | ||
active - boolean, ''true'' for active square (i.e. square that is used for playing); | active - boolean, ''true'' for active square (i.e. square that is used for playing); | ||
black - boolean, ''true'' if square is black; | black - boolean, ''true'' if square is black; | ||
number - number, square number (zero based), only for active sqaures. | number - number, square number (zero based), only for active sqaures. | ||
|} | |} |
Latest revision as of 13:28, 7 April 2012
File: engine_xx.js or engine_xx.min.js (minimized version with same functionality, smaller in size) where 'xx' should be one of:
20 | International draughts |
21 | English draughts (checkers) |
22 | Italian draughts |
23 | American pool draughts |
24 | Spanish draughts |
25 | Russian draughts |
26 | Brazilian draughts |
27 | Canadian draughts |
28 | Portuguese draughts |
29 | Czech draughts |
30 | Turkish draughts |
31 | Thai draughts |
40 | Frisian draughts |
41 | Russian draughts 10x8 |
125 | Croda |
126 | Armenian draughts |
127 | German draughts |
Use: draughts_engine(xx) will return engine as javascript object with following members:
gameType | number | game type as defined in previous table |
rows | number | number of rows on board |
columns | number | number of columns on board |
squares | number | number of squares used for playing |
piecesPerSide | number | pieces on each side in initiali position |
firstMoveWhite | boolean | true if white plays first move |
immediatePromotion | boolean | true if man reaching the promotion row during the capture should be immediately promoted to king (Russian draughts) |
turkishCapture | boolean | true if pieces are removed during the capture, not after end of complete capturing move (Turkish and Armenian draughts) |
captureSeparator | string | character used to separate squares in capturing move (usually 'x' or ':') |
encodeSquare | function(x)
x - number, returns string |
function that maps square number (zero for leftmost active square in topmost row) to used notation (numeric ar alphanumeric) |
decodeSquare | function(x)
x - string, returns number |
function that maps used notation to square number (zero for leftmost active square in topmost row) |
initialPosition | function ()
returns array of numbers |
function that returns initial position on board. Returned position is array of numbers, each numbers is for piece occupying one square:
1 - white man 2 - white king -1 - black man -2 - black king 0 - empty square |
packPosition | function(position)
position - array of numbers, returns string |
function that packs position as array of numbers to string |
unpackPosition | function(packed)
packed - string, returns array of numbers |
function that unpacks position packed to string with packPosition function |
validMoves | function(position, whiteMove)
position - array of numbers or string, whiteMove boolean, returns array of move objects |
function for selecting all valid moves in specified position (can be array or string as result of packPosition function) with selected player on move. |
findMove | function(move, validMovesList)
move - string, validMovesList - array of move objects, returns move object |
function that is locating move represented as string in current notation in list of valid moves and returns corresponding move object. |
makeMove | function(move, position, whiteMove)
move - move object or string, position array of numbers, whiteMove boolean, returns object. |
function that is making desired move (can be move object or string) in specified position (array of numbers) with selected player on move.
Returned object members: move - move object, position - position after move is played, changed - array of squares (numbers) changed during the move. |
advanceMove | function(game)
game - object: num - number (move number), whiteMove - boolean |
functon that is changing side that is on the move (black to white and vice versa) and incrementing move number if needed. |
checkForPromotion | function(piece, square)
piece - number, square - number, returns boolean |
check is man has reached promotion row |
mapping | function() | function for mapping square number (starting from zero to number of squares minus one) to row, column, and square colour and vice versa. It can be called with two or three arguments.
When called with two arguments (square number and boolean saying if board is positioned upside-down) returns object: row - number, row number, zero for topmost row; column - number, column number, zefo for leftmost row; black - boolean, true if square is black. When called with three arguments (row and column numbers, and boolean saying if board is positioned upside-down) returns object: active - boolean, true for active square (i.e. square that is used for playing); black - boolean, true if square is black; number - number, square number (zero based), only for active sqaures. |