「javascript/成長曲線」の編集履歴(バックアップ)一覧はこちら

javascript/成長曲線 - (2015/09/07 (月) 16:05:29) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

-成長タイプごとの成長曲線から算出した数値のため、初期値と最終強化値以外には±10程度の誤差があります -☆1~☆4までの晩成型の成長曲線が確認できていないため、現状ではそれらのサーヴァントのIDには対応していません #javascript(){{{{{ <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(chartLoad); // 変数宣言 var mtrxS; var mtrxG; var state; var options = { title: 'ステータス 成長曲線', hAxis: {format:'Lv ###'}, chartArea: {width: '60%', height: '80%'}, lineWidth: 1, pointSize: 0, }; // ファイル読込 function loadCSV(file){ var xmlHttp = new XMLHttpRequest(); xmlHttp.open("GET", file, false); xmlHttp.send(null); return xmlHttp.responseText; } // テキストを二次元配列に収納 function textMtrx(csvText){ var mtrx = new Array(); if(csvText.match(/\r/)) var row = csvText.split("\r\n"); else row = csvText.split("\n"); var rowNum = row.length; for(var i = 0; i < rowNum; i++){ mtrx[i] = new Array(); } for(i = 0; i < rowNum; i++){ var col = row[i].split(","); var colNum = col.length; for(var j = 0; j < colNum; j++){ mtrx[i][j] = col[j]; } } return mtrx; } // 配列・グラフ準備 function chartLoad(){ // サーヴァントデータ // [No.][] [][0]:rare [][1]:成長type [][2-3]:HP [][4-5]:ATK [][6]:name var csvText = loadCSV('http://www9.atwiki.jp/f_go/pub/csv/servantList.csv'); mtrxS = textMtrx(csvText); // 成長曲線 // [3(n-1)+0][]:早熟 [3(n-1)+1][]:平均 [3(n-1)+2][]:晩成 (n = rare) // [][0]:Lv1 [][1-]:Lv(5n) var csvText = loadCSV('http://www9.atwiki.jp/f_go/pub/csv/servantGrow.csv'); mtrxG = textMtrx(csvText); // 二次元配列の作成 state = new Array(); for(var i = 0; i <= 19; i++){ state[i] = new Array(); if(i == 1) {state[i][0] = 1;} else {state[i][0] = 5 * (i - 1);} } // グループ名 state[0] = ['Lv', 'ID1_HP', 'ID1_ATK']; var test = [ ['Lv', 'ID1_HP', 'ID1_ATK'], [1,0,0], [25,0,0], [50,0,0], [75,0,0], [100,15000,15000] ]; var data = google.visualization.arrayToDataTable(test); var chart = new google.visualization.ScatterChart(document.getElementById('chart_div')); chart.draw(data, options); } // 計算 function stateLoad(ID, num){ var rare = mtrxS[ID][0]; var type = mtrxS[ID][1]; var minHP = mtrxS[ID][2]; var growHP = mtrxS[ID][3] - minHP; var minATK = mtrxS[ID][4]; var growATK = mtrxS[ID][5] - minATK; for(var i = 1; i <= 19; i++){ state[i][2 * num - 1.0] = Math.ceil(growHP * mtrxG[(rare - 1.0) * 3 + parseInt(type)][i-1] + parseInt(minHP)); state[i][2 * num - 0.0] = Math.ceil(growATK * mtrxG[(rare - 1.0) * 3 + parseInt(type)][i-1] + parseInt(minATK)); } if(state[0][2*num] == null){ state[0].push("ID" + num + "_HP"); state[0].push("ID" + num + "_ATK"); } } // ID読込・プロット function func(){ var ID1 = parseFloat(document.formID1.ID1.value); var ID2 = parseFloat(document.formID2.ID2.value); stateLoad(ID1,1); stateLoad(ID2,2); document.formN1.name1.value = mtrxS[ID1][6]; document.formN2.name2.value = mtrxS[ID2][6]; var data = google.visualization.arrayToDataTable(state); var chart = new google.visualization.ScatterChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> }}}}} #html2(){{{ <table> <tr align=center> <td colspan="3"> <div id="chart_div" style="width: 600px; height: 400px"></div> </td> </tr> <tr align=center> <td colspan="3"><p><form name="plotS" id="plotS"> <input type="button" value="グラフ表示" onClick="func()"></input> </form></p></td> </tr> <tr align=center> <td bgcolor="#FFF">サーヴァントID1</td> <td><form name="formID1" id="formID1"> No. <input type="text" maxlength="6" size="6" name="ID1" value="1"> </form></td> <td bgcolor="#FFF"><form name="formN1" id="formN1"> <input readonly type="text" maxlength="28" size="28" name="name1"> </form></td> </tr> <tr align=center> <td bgcolor="#FFF">サーヴァントID2</td> <td><form name="formID2" id="formID2"> No. <input type="text" maxlength="6" size="6" name="ID2" value="2"> </form></td> <td bgcolor="#FFF"><form name="formN2" id="formN2"> <input readonly type="text" maxlength="28" size="28" name="name2"> </form></td> </tr> </table> }}}
#javascript(){{{{{ <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(chartLoad); // 変数宣言 var mtrxS; var mtrxG; var state; var options = { title: 'ステータス 成長曲線', hAxis: {format:'Lv ###'}, chartArea: {width: '60%', height: '80%'}, lineWidth: 1, pointSize: 0, }; // ファイル読込 function loadCSV(file){ var xmlHttp = new XMLHttpRequest(); xmlHttp.open("GET", file, false); xmlHttp.send(null); return xmlHttp.responseText; } // テキストを二次元配列に収納 function textMtrx(csvText){ var mtrx = new Array(); if(csvText.match(/\r/)) var row = csvText.split("\r\n"); else row = csvText.split("\n"); var rowNum = row.length; for(var i = 0; i < rowNum; i++){ mtrx[i] = new Array(); } for(i = 0; i < rowNum; i++){ var col = row[i].split(","); var colNum = col.length; for(var j = 0; j < colNum; j++){ mtrx[i][j] = col[j]; } } return mtrx; } // 配列・グラフ準備 function chartLoad(){ // サーヴァントデータ // [No.][] [][0]:rare [][1]:成長type [][2-3]:HP [][4-5]:ATK [][6]:name var csvText = loadCSV('http://www9.atwiki.jp/f_go/pub/csv/servantList.csv'); mtrxS = textMtrx(csvText); // 成長曲線 // [3(n-1)+0][]:早熟 [3(n-1)+1][]:平均 [3(n-1)+2][]:晩成 (n = rare) // [][0]:Lv1 [][1-]:Lv(5n) var csvText = loadCSV('http://www9.atwiki.jp/f_go/pub/csv/servantGrow.csv'); mtrxG = textMtrx(csvText); // 二次元配列の作成 state = new Array(); for(var i = 0; i <= 19; i++){ state[i] = new Array(); if(i == 1) {state[i][0] = 1;} else {state[i][0] = 5 * (i - 1);} } // グループ名 state[0] = ['Lv', 'ID1_HP', 'ID1_ATK']; var test = [ ['Lv', 'ID1_HP', 'ID1_ATK'], [1,0,0], [25,0,0], [50,0,0], [75,0,0], [100,15000,15000] ]; var data = google.visualization.arrayToDataTable(test); var chart = new google.visualization.ScatterChart(document.getElementById('chart_div')); chart.draw(data, options); } // 計算 function stateLoad(ID, num){ var rare = mtrxS[ID][0]; var type = mtrxS[ID][1]; var minHP = mtrxS[ID][2]; var growHP = mtrxS[ID][3] - minHP; var minATK = mtrxS[ID][4]; var growATK = mtrxS[ID][5] - minATK; for(var i = 1; i <= 19; i++){ state[i][2 * num - 1.0] = Math.ceil(growHP * mtrxG[(rare - 1.0) * 3 + parseInt(type)][i-1] + parseInt(minHP)); state[i][2 * num - 0.0] = Math.ceil(growATK * mtrxG[(rare - 1.0) * 3 + parseInt(type)][i-1] + parseInt(minATK)); } if(state[0][2*num] == null){ state[0].push("ID" + num + "_HP"); state[0].push("ID" + num + "_ATK"); } } // ID読込・プロット function func(){ var ID1 = parseFloat(document.formID1.ID1.value); var ID2 = parseFloat(document.formID2.ID2.value); stateLoad(ID1,1); stateLoad(ID2,2); document.formN1.name1.value = mtrxS[ID1][6]; document.formN2.name2.value = mtrxS[ID2][6]; var data = google.visualization.arrayToDataTable(state); var chart = new google.visualization.ScatterChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> }}}}} #html2(){{{ <table> <tr align=center> <td colspan="3"> <div id="chart_div" style="width: 600px; height: 400px"></div> </td> </tr> <tr align=center> <td colspan="3"><p><form name="plotS" id="plotS"> <input type="button" value="グラフ表示" onClick="func()"></input> </form></p></td> </tr> <tr align=center> <td bgcolor="#FFF">サーヴァントID1</td> <td><form name="formID1" id="formID1"> No. <input type="text" maxlength="6" size="6" name="ID1" value="1"> </form></td> <td bgcolor="#FFF"><form name="formN1" id="formN1"> <input readonly type="text" maxlength="28" size="28" name="name1"> </form></td> </tr> <tr align=center> <td bgcolor="#FFF">サーヴァントID2</td> <td><form name="formID2" id="formID2"> No. <input type="text" maxlength="6" size="6" name="ID2" value="2"> </form></td> <td bgcolor="#FFF"><form name="formN2" id="formN2"> <input readonly type="text" maxlength="28" size="28" name="name2"> </form></td> </tr> </table> }}}

表示オプション

横に並べて表示:
変化行の前後のみ表示: