Skip to content

Instantly share code, notes, and snippets.

@suneo3476
Created April 30, 2014 16:13
Show Gist options
  • Save suneo3476/12a094997ec10acf13f4 to your computer and use it in GitHub Desktop.
Save suneo3476/12a094997ec10acf13f4 to your computer and use it in GitHub Desktop.
艦隊数パラメータを追加。とりあえず動けばいいノリでコード書いたら汚すぎてひどい。
//遠征に行ける艦隊の数が2で、すべての資源で時給10以上取れて、たまーにバケツ拾ってくれる組み合わせは以下のようにする
//ここをかえます
var oil = 10; //さいていげんほしい燃料
var bullet = 10;//さいていげんほしい弾薬
var steel = 10; //さいていげんほしい鋼材
var bauxite =10;//さいていげんほしいボーキ
var bucket = 0.1; //さいていげんほしいばけつ
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(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][6]<result[j][6]){
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+"件");
組み合わせ 燃料 弾薬 鋼材 ボーキ バケツ 資源合計
5+6 87.67 109.33 13.33 133.33 0.37 343.66
4+5 80.47 205.33 13.33 13.33 0.6 312.46
35+36 12.79 93.86 120.4 22.22 0.11 249.27
16+17 87.53 56.67 80 13.33 0.1 237.53
17+18 42.93 20.07 126.67 20 0.1 209.67000000000002
8+9 81.92 25.33 16.67 16.67 0.7 140.59
15+16 25.03 25 38.33 46.66 0.1 135.01999999999998
7件
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment