使用javascript的Bliffoscope数据分析解决方案
我想使用javascript解决Bliffoscope数据分析问题。我有以下问题 这是SlimeTorpedo使用javascript的Bliffoscope数据分析解决方案,javascript,node.js,algorithm,data-structures,Javascript,Node.js,Algorithm,Data Structures,我想使用javascript解决Bliffoscope数据分析问题。我有以下问题 这是SlimeTorpedo + + +++ +++++++ ++ ++ ++ + ++ ++ +++ ++ ++ + ++ ++ ++ +++++++ +++ 这是测试数据 + + + ++ + +++
+
+
+++
+++++++
++ ++
++ + ++
++ +++ ++
++ + ++
++ ++
+++++++
+++
这是测试数据
+ + + ++ + +++ + +
+ ++ + + ++++ + + + + + + +++ +++ +
+ + + ++ ++ ++ + ++ + + + + +
+ ++ + ++ + + + ++ ++ + +
++++++ + + + ++ + + + + ++ + + +
+ + + + + ++ + ++ + + + +
+++ + ++ + + + +++ + + ++ +
+++++ + + + + + + + +
+ + + + + + + + + + + +
++ + + + ++ + + + ++
有一个问题与此类似,但在Java中。有人问这个问题
如何用JavaScript解决这个问题
更新
我尝试了以下解决方案
const fs = require('fs');
let torpedo = [], starship = [], testData = [];
// counter = -1;
function getTorpedoData(fileName, type) {
let counter = -1;
return new Promise(function(resolve, reject) {
fs.readFile(fileName,'utf8', (err, data) => {
if (err) {
reject();
} else {
for (let i = 0; i < data.length; i++) {
if (data[i] == '\n' || counter === -1) {
torpedo.push([]);
counter++;
} else {
torpedo[counter].push(data[i]);
}
}
}
console.log(data);
resolve();
});
});
}
function getTestData(fileName, type) {
let counter = -1;
return new Promise(function(resolve, reject) {
fs.readFile(fileName,'utf8', (err, data) => {
if (err) {
reject();
} else {
for (let i = 0; i < data.length; i++) {
if (data[i] == '\n' || counter === -1) {
testData.push([]);
counter++;
} else {
testData[counter].push(data[i]);
}
}
}
console.log(data);
resolve();
});
});
}
let score = 0;
getTorpedoData('./SlimeTorpedo.blf', 'torpedo').then((data) => {
getTestData('./TestData.blf', 'testData').then(() => {
torpedo.forEach((torpedoArray, torpedoIndex) => {
torpedoArray.filter((contents) => {
if (contents === '+') {
testData.forEach((testDataArray) => {
testDataArray.filter((dataContents, dataIndex) => {
// console.log(dataContents);
if (dataContents === '+') {
if (torpedoIndex === dataIndex) {
score++;
}
// console.log(score);
}
});
});
}
});
});
});
});
我创建了3个阵列鱼雷、星际飞船和测试数据。我读了所有这些文件,并把它们放在上面的多维数组中。然后我试图在testData数组中找到比较鱼雷数组的索引。然而,有一件事我做错了。我怎样才能修好它
[由Spektre编辑]
测试数据的测试结果,包括此数据和@greybeard链接中的数据:
红色表示不匹配,黄色表示匹配。分数因匹配而递增,因不匹配而递减。x从零开始向右计数,y从零开始向下计数,但您的数据被空行放大,因此您可以从1开始计数…您正在寻找类似的数据吗 //创建我们的图像:鱼雷对象和背景上下文 var object=+\n++\n++\n++++++++\n++++\n++++++\n++++++++\n++++++\n++++++\n++++\n++\n++++\n++++++\n++++++, 上下文=++++++++\n++++++++++++++++++++++\n++++++++++++++++\n++++++++++++\n++++++++++++++\n++++++++++++++++++++\n++++++++++++\n++++++++++++++\n++++++++++++++++++++++\n++++++++++++++++++\n++++++++++++++\n++++++++++++++\n++ + + + ++ + + + ++ ; var c=document.getElementByIdtest\u画布, ctx=c.getContext2d, 比例=10; //在画布上画一个像素 函数绘制\u像素X、y、填充\u样式{ ctx.fillStyle=填充样式; ctx.fillRectx*比例,y*比例,比例,比例; } //接收坐标数组,绘制像素 函数draw_imageserialized_图像,填充_样式{ 对于变量i=0,len=serialized_image.length;i