Created
April 30, 2014 15:55
-
-
Save suneo3476/4b518703acb5ae3125ce to your computer and use it in GitHub Desktop.
艦隊数対応したら結果に重複が生じたので重複判定処理書いたら94行目で"Cannot read property '0' of undefined"エラー('A`)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//ここをかえます | |
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