「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>
}}}
Comments policy & Terms of Use
・ネタバレ自粛期間中はシナリオや真名のネタバレは禁止です!
ネタバレ自粛期間の文字列挿入箇所
・コメントの内容に準じたコメントフォームを利用しましょう!
※報告を扇動したり異なるフォームへの投稿が散見した場合、coや規制対応することがあります
・現在、異なる板へのガチャ報告に利用者が定型文で誘導を行えるようルール改定するか議論中です。
時間がありましたら賛成/反対だけで構わないのでレスの協力お願いします
閉じる