Skip to content

Instantly share code, notes, and snippets.

@suneo3476
Created April 30, 2014 16:31
Show Gist options
  • Save suneo3476/8cb416dff3d437ac3374 to your computer and use it in GitHub Desktop.
Save suneo3476/8cb416dff3d437ac3374 to your computer and use it in GitHub Desktop.
IDがずれていたのを修正。結果表示ソート基準を指定可能にした。
//ここをかえます
var oil = 10; //さいていげんほしい燃料
var bullet = 10;//さいていげんほしい弾薬
var steel = 10; //さいていげんほしい鋼材
var bauxite =10;//さいていげんほしいボーキ
var bucket = 0.1; //さいていげんほしいばけつ
var kantai = 3; //かいほうしてるかんたいのかず
var sort = 4; //けっかのそーときじゅん
//1燃料 2弾薬 3鋼材 4ボーキ 5バケツ 6合計
//ここまでをかえます
//燃料、弾薬、鋼材、ボーキの順
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],
[0,0,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,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(typeof result[i] === "undefined" || typeof result[j] === "undefined") continue;
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++){
if(typeof result[i] === "undefined") continue;
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(typeof result[i] === "undefined" || typeof result[j] === "undefined") continue;
if(result[i][sort]<result[j][sort]){
tmp = result[i];
result[i] = result[j];
result[j] = tmp;
}
}
}
//ひょうじ
console.log("組み合わせ 燃料 弾薬 鋼材 ボーキ バケツ 資源合計");
var resultNum = 0;
for(var i = 0; i < result.length; i++){
if(typeof result[i] === "undefined") continue;
console.log(result[i].join('\t'));
resultNum++;
}
console.log(resultNum+"件");
result[j] = tmp;
}
}
}
//ひょうじ
console.log("組み合わせ 燃料 弾薬 鋼材 ボーキ バケツ 資源合計");
var resultNum = 0;
for(var i = 0; i < result.length; i++){
if(typeof result[i] === "undefined") continue;
console.log(result[i].join('\t'));
resultNum++;
}
console.log(resultNum+"件");
組み合わせ 燃料 弾薬 鋼材 ボーキ バケツ 資源合計
4+5+6 56.47 181.33 13.33 133.33 0.6 384.46000000000004
5+6+9 166.92 109.33 13.33 133.33 0.37 422.90999999999997
10+11+16 12.59 63.33 13.33 83.33 0.53 172.57999999999998
15+16+18 10.63 18.39 98.33 66.66 0.1 194.01
11+12+13 45.4 93.75 25 56.25 0.45 220.4
14+15+36 27.44 21.22 80.55 55.55 0.19 184.76
7+8+9 39.92 25.33 66.67 46.67 0.37 178.59000000000003
12+13+15 45.83 88.75 50 39.58 0.25 224.15999999999997
8+9+10 69.92 58.66 16.67 36.67 0.7 181.92000000000002
13+14+15 35.25 97.5 58.33 33.33 0.33 224.40999999999997
16+17+18 73.13 50.07 140 33.33 0.1 296.53
9+10+12 70 64.58 25 26.25 0.7 185.82999999999998
18+19+21 141.63 63.63 68.33 25 0.1 298.59
20+21+36 141.64 66.78 97.22 22.22 0.11 327.86
21+22+36 116.82 39.78 22.22 22.22 0.11 201.04
36+37+38 132.11 60.95 188.97 22.22 0.11 404.25
17+18+20 34.43 11.07 201.67 20 0.1 267.16999999999996
3+4+5 134.47 239.33 133.33 13.33 0.6 520.46
1+2+5 23.67 453.33 73.33 13.33 1 563.6600000000001
2+3+5 109.67 367.33 193.33 13.33 1 683.6600000000001
20件
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment