在浏览器中使用javascript(无任何模块)将棋盘图转换为字符串
我看过一篇关于如何使用python实现这一点的文章,但它是在python库中完成的,所以我尝试在没有库的情况下将其转换为javascript,结果就是这样在浏览器中使用javascript(无任何模块)将棋盘图转换为字符串,javascript,browser,Javascript,Browser,我看过一篇关于如何使用python实现这一点的文章,但它是在python库中完成的,所以我尝试在没有库的情况下将其转换为javascript,结果就是这样 function board_to_fen(board) { let result = ""; for(let y = 0; y < board.length; y++) { let empty = 0; for(let x = 0; x < y.length; x++)
function board_to_fen(board)
{
let result = "";
for(let y = 0; y < board.length; y++)
{
let empty = 0;
for(let x = 0; x < y.length; x++)
{
let c = y[x][0];
if(c == 'w' || c == 'b') {
if(empty > 0)
{
result += empty.toString();
empty = 0;
}
if(c == 'w')
{
result += y[x][1].toUpperCase();
} else {
result += y[x][1].toLowerCase();
}
} else {
empty += 1;
}
}
if(empty == 0)
{
result += empty.toString();
}
result += '/';
}
result += ' w KQkq - 0 1';
return result;
}
let board = [
['bk', 'em', 'em', 'em', 'em', 'em', 'em', 'em'],
['em', 'bn', 'em', 'wr', 'em', 'wp', 'em', 'em'],
['br', 'em', 'bp', 'em', 'em', 'bn', 'wn', 'em'],
['em', 'em', 'bp', 'bp', 'bp', 'em', 'wp', 'bp'],
['bp', 'bp', 'em', 'bp', 'wn', 'em', 'wp', 'em'],
['em', 'em', 'em', 'em', 'em', 'em', 'em', 'em'],
['em', 'em', 'em', 'wk', 'em', 'em', 'em', 'em'],
['em', 'em', 'em', 'em', 'em', 'em', 'em', 'em'],
];
console.log(board_to_fen(board));
功能板至功能板(板)
{
让结果=”;
对于(设y=0;y0)
{
结果+=空的.toString();
空=0;
}
如果(c=='w')
{
结果+=y[x][1].toUpperCase();
}否则{
结果+=y[x][1].toLowerCase();
}
}否则{
空+=1;
}
}
如果(空==0)
{
结果+=空的.toString();
}
结果+='/';
}
结果+='w KQkq-0 1';
返回结果;
}
让董事会=[
[bk',em',em',em',em',em',em',em',em'],
['em','bn','em','wr','em','wp','em','em'],
[br',em',bp',em',em',bn',wn',em'],
['em','em','bp','bp','bp','em','wp','bp'],
['bp','bp','em','bp','wn','em','wp','em'],
['em','em','em','em','em','em','em','em','em'],
['em','em','em','wk','em','em','em','em','em'],
['em','em','em','em','em','em','em','em','em'],
];
控制台日志(板到板);
该棋盘图的正确fen是“k7/1n1R1P2/r1p2nN1/2pp1pp/pp1pN1P1/8/3K4/8 w KQkq-0”,但在控制台中它打印出“0/0/0/0/0/0/w KQkq-0 1”。在引用
棋盘时只需要一些小的修改。出现的y[x]
基本上需要更改为board[y][x]
,因为y是board
数组的索引
function board_to_fen(board)
{
let result = "";
for(let y = 0; y < board.length; y++)
{
let empty = 0;
for(let x = 0; x < board[y].length; x++)
{
let c = board[y][x][0]; // Fixed
if(c == 'w' || c == 'b') {
if(empty > 0)
{
result += empty.toString();
empty = 0;
}
if(c == 'w')
{
result += board[y][x][1].toUpperCase(); // Fixed
} else {
result += board[y][x][1].toLowerCase(); // Fixed
}
} else {
empty += 1;
}
}
if(empty > 0) // Fixed
{
result += empty.toString();
}
if(y < board.length - 1) // Added to eliminate last '/'
{
result += '/';
}
}
result += ' w KQkq - 0 1';
return result;
}
let board = [
['bk', 'em', 'em', 'em', 'em', 'em', 'em', 'em'],
['em', 'bn', 'em', 'wr', 'em', 'wp', 'em', 'em'],
['br', 'em', 'bp', 'em', 'em', 'bn', 'wn', 'em'],
['em', 'em', 'bp', 'bp', 'bp', 'em', 'wp', 'bp'],
['bp', 'bp', 'em', 'bp', 'wn', 'em', 'wp', 'em'],
['em', 'em', 'em', 'em', 'em', 'em', 'em', 'em'],
['em', 'em', 'em', 'wk', 'em', 'em', 'em', 'em'],
['em', 'em', 'em', 'em', 'em', 'em', 'em', 'em'],
];
console.log(board_to_fen(board));
功能板至功能板(板)
{
让结果=”;
对于(设y=0;y0)
{
结果+=空的.toString();
空=0;
}
如果(c=='w')
{
结果+=线路板[y][x][1]。toUpperCase();//已修复
}否则{
结果+=线路板[y][x][1]。toLowerCase();//已修复
}
}否则{
空+=1;
}
}
if(empty>0)//已修复
{
结果+=空的.toString();
}
if(y
在参考板时,只需要一些小的修正。出现的y[x]
基本上需要更改为board[y][x]
,因为y是board
数组的索引
function board_to_fen(board)
{
let result = "";
for(let y = 0; y < board.length; y++)
{
let empty = 0;
for(let x = 0; x < board[y].length; x++)
{
let c = board[y][x][0]; // Fixed
if(c == 'w' || c == 'b') {
if(empty > 0)
{
result += empty.toString();
empty = 0;
}
if(c == 'w')
{
result += board[y][x][1].toUpperCase(); // Fixed
} else {
result += board[y][x][1].toLowerCase(); // Fixed
}
} else {
empty += 1;
}
}
if(empty > 0) // Fixed
{
result += empty.toString();
}
if(y < board.length - 1) // Added to eliminate last '/'
{
result += '/';
}
}
result += ' w KQkq - 0 1';
return result;
}
let board = [
['bk', 'em', 'em', 'em', 'em', 'em', 'em', 'em'],
['em', 'bn', 'em', 'wr', 'em', 'wp', 'em', 'em'],
['br', 'em', 'bp', 'em', 'em', 'bn', 'wn', 'em'],
['em', 'em', 'bp', 'bp', 'bp', 'em', 'wp', 'bp'],
['bp', 'bp', 'em', 'bp', 'wn', 'em', 'wp', 'em'],
['em', 'em', 'em', 'em', 'em', 'em', 'em', 'em'],
['em', 'em', 'em', 'wk', 'em', 'em', 'em', 'em'],
['em', 'em', 'em', 'em', 'em', 'em', 'em', 'em'],
];
console.log(board_to_fen(board));
功能板至功能板(板)
{
让结果=”;
对于(设y=0;y0)
{
结果+=空的.toString();
空=0;
}
如果(c=='w')
{
结果+=线路板[y][x][1]。toUpperCase();//已修复
}否则{
结果+=线路板[y][x][1]。toLowerCase();//已修复
}
}否则{
空+=1;
}
}
if(empty>0)//已修复
{
结果+=空的.toString();
}
if(y