Skip to content

Instantly share code, notes, and snippets.

@suneo3476
Created April 30, 2014 15:55
Show Gist options
  • Save suneo3476/4b518703acb5ae3125ce to your computer and use it in GitHub Desktop.
Save suneo3476/4b518703acb5ae3125ce to your computer and use it in GitHub Desktop.
艦隊数対応したら結果に重複が生じたので重複判定処理書いたら94行目で"Cannot read property '0' of undefined"エラー('A`)
//ここをかえます
var oil = 10; //さいていげんほしい燃料
var bullet = 0;//さいていげんほしい弾薬
var steel = 10; //さいていげんほしい鋼材
var bauxite =10;//さいていげんほしいボーキ
var bucket = 0; //さいていげんほしいばけつ
var kantai = 2; //かいほうしてるかんたいのかず
//ここまでをかえます
//燃料、弾薬、鋼材、ボーキの順
var dataset = [
[-32,120,0,0],
[-56,200,60,0],
[54,34,120,0],
[-31.2,72,0,0],
[111.67,133.33,13.33,13.33],
[-24,-24,0,120],
[-42,0,50,30],
[2.67,25.33,16.67,16.67],
[79.25,0,0,0],
[-12,33.33,0,20],
[-5.6,0,0,50],
[2.75,31.25,25,6.25],
[48.25,62.5,0,0],
[-7.83,40,33.33,0],
[-5.17,-5,25,33.33],
[30.2,30,13.33,13.33],
[57.33,26.67,66.67,0],
[-14.4,-6.6,60,20],
[46.33,-19.33,8.33,5],
[-8.5,-9,75,0],
[109.71,89.57,0,0],
[-33.33,-36,0,0],
[-50,-53,0,25],
[0,0,0,0],
[16.15,-3.4,7.5,0],
[-0.9,-1,0,11.25],
[-0.8,-1.6,40,0],
[-0.96,-1.92,36,14],
[-1,-2,0,4.16],
[-1,-2,0,2.08],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[-17.71,-22.29,34.29,40],
[40.44,-13.78,22.22,22.22],
[-27.64,107.64,98.18,0],
[119.31,-32.91,68.57,0]
];
//バケツ
var bucketSet = [
0,1,0,0.6,0,0,0,0,0.375,0.333,0.2,0,0.25,0.083,0,0,0,0.1,0,0,0,0,0,0,0.019,0,0,0,0,0,0,0,0,0,0.111,0,0
];
var result = []; //さいていげんをみたしたくみあわせのけいさんけっかがはいる
for (var i = 0; i < dataset.length-2; i++) {
for (var j = i+1; j < dataset.length-1; j++) {
for (var k = j+1; k < dataset.length; k++) {
var resources = [0,0,0,0];
var buckets = 0;
//しげんけいさん
for (var l = 0; l < 4; l++){
resources[l] += dataset[i][l];
resources[l] += kantai>=2 ? dataset[j][l] : 0;
resources[l] += kantai==3 ? dataset[k][l] : 0;
resources[l] = Math.floor(resources[l] * 100) / 100;
}
//ばけつけいさん
buckets = bucketSet[i]+bucketSet[j]+bucketSet[k];
buckets = Math.floor(buckets * 100) / 100;
//ぼーだーらいんかくにん
if(resources[0] < oil || resources[1] < bullet || resources[2] < steel || resources[3]< bauxite)
continue;
if(buckets < bucket)
continue;
//けっかにつっこむ
resources.unshift((i+1) + (kantai>=2 ? "+"+(j+1) : "") + (kantai==3 ? "+"+(k+1) : ""));
resources.push(buckets);
result.push(resources);
if(kantai==3)
break;
}
if(kantai>=2)
break;
}
}
//重複削除
for(var i = 0; i < result.length-1; i++){
for(var j = i+1; j < result.length; j++){
if(result[i][0]==result[j][0])
result[j] = undefined;
}
}
// if(result[i][0]==result[j][0])
// ^
// TypeError: Cannot read property '0' of undefined
//ソート
for(var i = 0; i < result.length; i++)
result[i].push(result[i][1]+result[i][2]+result[i][3]+result[i][4]);
for(var i = 0; i < result.length-1; i++){
for(var j = i+1; j < result.length; j++){
if(result[i][6]<result[j][6]){
tmp = result[i];
result[i] = result[j];
result[j] = tmp;
}
}
}
//ひょうじ
console.log("組み合わせ 燃料 弾薬 鋼材 ボーキ バケツ 資源合計");
for(var i = 0; i < result.length; i++){
if(result[i]==undefined)
continue;
console.log(result[i].join('\t'));
}
console.log(result.length+"件");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment