This file calculates all possible driver elemental blade combinations vs all the blade combo combinations in the game to figure out the maximum efficient blade combo combinations.main
commit
b451c6d82d
@ -0,0 +1,137 @@ |
||||
const FIRE=0; |
||||
const WATER=1; |
||||
const LIGHT=2; |
||||
const DARK=3; |
||||
const EARTH=4; |
||||
const ELECTRIC=5; |
||||
const WIND=6; |
||||
const ICE=7; |
||||
|
||||
var prettyNames={ |
||||
0:"FIRE", |
||||
1:"WATER", |
||||
2:"LIGHT", |
||||
3:"DARK", |
||||
4:"EARTH", |
||||
5:"ELECTRIC", |
||||
6:"WIND", |
||||
7:"ICE" |
||||
} |
||||
|
||||
var combos=[ |
||||
[FIRE,FIRE,FIRE], |
||||
[FIRE,WATER,FIRE], |
||||
[FIRE,WATER,FIRE], |
||||
[LIGHT,ELECTRIC,FIRE], |
||||
[WATER,WATER,WATER], |
||||
[ELECTRIC,ELECTRIC,WATER], |
||||
[LIGHT,LIGHT,WATER], |
||||
[FIRE,FIRE,LIGHT], |
||||
[LIGHT,LIGHT,LIGHT], |
||||
[WATER,WATER,DARK], |
||||
[ICE,ICE,DARK], |
||||
[WIND,WIND,EARTH], |
||||
[EARTH,FIRE,EARTH], |
||||
[ICE,ICE,EARTH], |
||||
[DARK,DARK,EARTH], |
||||
[EARTH,EARTH,ELECTRIC], |
||||
[WIND,WIND,ELECTRIC], |
||||
[DARK,LIGHT,ELECTRIC], |
||||
[WATER,EARTH,WIND], |
||||
[EARTH,FIRE,WIND], |
||||
[ICE,WATER,WIND], |
||||
[ELECTRIC,FIRE,WIND], |
||||
[FIRE,WATER,ICE], |
||||
[ELECTRIC,FIRE,ICE], |
||||
[WIND,ICE,ICE], |
||||
] |
||||
|
||||
var maxcode="" |
||||
|
||||
var maxcombos=0 |
||||
var combolist=[] |
||||
|
||||
for (var i=0;i<=9;i++) { |
||||
maxcode+=String(ICE) |
||||
} |
||||
|
||||
maxcode=Number(maxcode) |
||||
|
||||
function ConvertCodeTo9Digit(code) { |
||||
var str = String(code) |
||||
if (str.includes('8')||str.includes('9')) { |
||||
return undefined |
||||
} |
||||
var incre = 9-str.length |
||||
for (var i=0;i<incre;i++) { |
||||
str="0"+str |
||||
} |
||||
return str |
||||
} |
||||
|
||||
function ConvertDriver(ThreeDigitCode) { |
||||
return [Number(ThreeDigitCode[0]),Number(ThreeDigitCode[1]),Number(ThreeDigitCode[2])] |
||||
} |
||||
|
||||
function GetCommonName(val) { |
||||
return prettyNames[val] |
||||
} |
||||
|
||||
function PrettyList(arr) { |
||||
var finalArr=[] |
||||
for (var a of arr) { |
||||
var prettyStr="" |
||||
for (var i=0;i<a.length;i++) { |
||||
prettyStr+=((i!=0)?",":"")+GetCommonName(a[i]); |
||||
} |
||||
finallArr.push(prettyStr) |
||||
} |
||||
return finalArr |
||||
} |
||||
|
||||
console.log("Calculating "+maxcode+" combinations...") |
||||
|
||||
for (var code=0;code<=maxcode;code++) { |
||||
//setTimeout(()=>{document.getElementById("console").value+=JSON.stringify(code)},50)
|
||||
//Evaluate all combos.
|
||||
if (code%1000000==0) { |
||||
console.log(code+" entries done ("+Math.round(((code/maxcode)*100))+"%)") |
||||
} |
||||
var temp=ConvertCodeTo9Digit(code) |
||||
if (!temp) { |
||||
continue |
||||
} |
||||
var combinations=0 |
||||
for (var combo of combos) { |
||||
var driver1=ConvertDriver(temp.substr(0,3)) |
||||
var driver2=ConvertDriver(temp.substr(3,3)) |
||||
var driver3=ConvertDriver(temp.substr(6,3)) |
||||
//See if any elements match up. If they do, then add 1 to the max combo count.
|
||||
var matches=0; |
||||
for (var ind=0;ind<3;ind++) { |
||||
if (driver1.includes(combo[ind])) { |
||||
matches++; |
||||
driver1=[] |
||||
} else |
||||
if (driver2.includes(combo[ind])) { |
||||
matches++; |
||||
driver2=[] |
||||
} else |
||||
if (driver3.includes(combo[ind])) { |
||||
matches++; |
||||
driver3=[] |
||||
} |
||||
} |
||||
if (matches==3) { |
||||
combinations++ |
||||
} |
||||
} |
||||
if (maxcombos<combinations) { |
||||
maxcombos=combinations |
||||
combolist=[temp] |
||||
} else |
||||
if (maxcombos==combinations) { |
||||
combolist.push(temp) |
||||
} |
||||
} |
||||
console.log(JSON.stringify({maxcombo:maxcombos,list:PrettyList(combolist)})) |
Loading…
Reference in new issue