「javascript/成長曲線」の編集履歴(バックアップ)一覧はこちら
javascript/成長曲線 - (2015/12/10 (木) 00:09:55) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
#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 ###',
},
vAxis: {
minorGridlines: {count: '4'},
},
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 reset(){
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][0] = 'Lv';
}
// 配列・グラフ準備
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);
// 成長曲線
// [5(n-1)+0][]:早熟 [5(n-1)+2][]:平均 [5(n-1)+4][]:晩成 (n = rare)
// [5(n-1)+1][]:早熟(弱) [5(n-1)+3][]:晩成(弱) <- 2015.12.09追加
// [][0]:Lv1 [][1-]:Lv(5n)
var csvText = loadCSV('http://www9.atwiki.jp/f_go/pub/csv/servantGrow.csv');
mtrxG = textMtrx(csvText);
reset();
stateLoad(1,1,1);
stateLoad(1,2,2);
var data = google.visualization.arrayToDataTable(state);
var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
// 計算
function stateLoad(ID, num,HA){
var rare = mtrxS[ID][0];
var type = mtrxS[ID][1];
var min = mtrxS[ID][2*HA+0.0];
var grow = mtrxS[ID][2*HA+1.0] - min;
if(ID != 0){
if(HA == 1) {state[0].push("No." + ID + "_HP");}
else if(HA == 2){state[0].push("No." + ID + "_ATK");}
for(var i = 1; i <= 19; i++){
state[i].push(Math.ceil(grow * mtrxG[(rare-1.0)*5+parseInt(type)][i-1] + parseInt(min)));
}
}
document.forms["formN" + num].elements["name" + num].value = mtrxS[ID][6];
}
// ID読込・プロット
function func(){
reset();
for(var i = 1; i <= 6; i++){
var ID = document.forms["formID" + i].elements["ID" + i].value;
var HA = document.forms["formHA" + i].elements["HA" + i].value;
stateLoad(ID,i,HA);
}
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: 650px; height: 500px"></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><form name="formID1" id="formID1">
No. <input type="text" maxlength="6" size="6" name="ID1" value="1">
</form></td>
<td><form name="formHA1" id="formHA1"><select name="HA1" style="width:100px;">
<option value="1">HP</option>
<option value="2">ATK</option>
</select></form></td>
<td bgcolor="#FFF"><form name="formN1" id="formN1">
<input readonly type="text" maxlength="30" size="30" name="name1">
</form></td>
</tr>
<tr align=center>
<td><form name="formID2" id="formID2">
No. <input type="text" maxlength="6" size="6" name="ID2" value="2">
</form></td>
<td><form name="formHA2" id="formHA2"><select name="HA2" style="width:100px;">
<option value="1">HP</option>
<option value="2">ATK</option>
</select></form></td>
<td bgcolor="#FFF"><form name="formN2" id="formN2">
<input readonly type="text" maxlength="30" size="30" name="name2">
</form></td>
</tr>
<tr align=center>
<td><form name="formID3" id="formID3">
No. <input type="text" maxlength="6" size="6" name="ID3" value="0">
</form></td>
<td><form name="formHA3" id="formHA3"><select name="HA3" style="width:100px;">
<option value="1">HP</option>
<option value="2">ATK</option>
</select></form></td>
<td bgcolor="#FFF"><form name="formN3" id="formN3">
<input readonly type="text" maxlength="30" size="30" name="name3">
</form></td>
</tr>
<tr align=center>
<td><form name="formID4" id="formID4">
No. <input type="text" maxlength="6" size="6" name="ID4" value="0">
</form></td>
<td><form name="formHA4" id="formHA4"><select name="HA4" style="width:100px;">
<option value="1">HP</option>
<option value="2">ATK</option>
</select></form></td>
<td bgcolor="#FFF"><form name="formN4" id="formN4">
<input readonly type="text" maxlength="30" size="30" name="name4">
</form></td>
</tr>
<tr align=center>
<td><form name="formID5" id="formID5">
No. <input type="text" maxlength="6" size="6" name="ID5" value="0">
</form></td>
<td><form name="formHA5" id="formHA5"><select name="HA5" style="width:100px;">
<option value="1">HP</option>
<option value="2">ATK</option>
</select></form></td>
<td bgcolor="#FFF"><form name="formN5" id="formN5">
<input readonly type="text" maxlength="30" size="30" name="name5">
</form></td>
</tr>
<tr align=center>
<td><form name="formID6" id="formID6">
No. <input type="text" maxlength="6" size="6" name="ID6" value="0">
</form></td>
<td><form name="formHA6" id="formHA6"><select name="HA6" style="width:100px;">
<option value="1">HP</option>
<option value="2">ATK</option>
</select></form></td>
<td bgcolor="#FFF"><form name="formN6" id="formN6">
<input readonly type="text" maxlength="30" size="30" name="name6">
</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 ###',
},
vAxis: {
minValue:0,
maxValue:20000,
minorGridlines: {count: '4'},
},
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 reset(){
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][0] = 'Lv';
}
// 配列・グラフ準備
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);
// 成長曲線
// [5(n-1)+0][]:早熟 [5(n-1)+2][]:平均 [5(n-1)+4][]:晩成 (n = rare)
// [5(n-1)+1][]:早熟(弱) [5(n-1)+3][]:晩成(弱) <- 2015.12.09追加
// [][0]:Lv1 [][1-]:Lv(5n)
var csvText = loadCSV('http://www9.atwiki.jp/f_go/pub/csv/servantGrow.csv');
mtrxG = textMtrx(csvText);
reset();
stateLoad(1,1,1);
stateLoad(1,2,2);
var data = google.visualization.arrayToDataTable(state);
var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
// 計算
function stateLoad(ID, num,HA){
var rare = mtrxS[ID][0];
var type = mtrxS[ID][1];
var min = mtrxS[ID][2*HA+0.0];
var grow = mtrxS[ID][2*HA+1.0] - min;
if(ID != 0){
if(HA == 1) {state[0].push("No." + ID + "_HP");}
else if(HA == 2){state[0].push("No." + ID + "_ATK");}
for(var i = 1; i <= 19; i++){
state[i].push(Math.ceil(grow * mtrxG[(rare-1.0)*5+parseInt(type)][i-1] + parseInt(min)));
}
}
document.forms["formN" + num].elements["name" + num].value = mtrxS[ID][6];
}
// ID読込・プロット
function func(){
reset();
for(var i = 1; i <= 6; i++){
var ID = document.forms["formID" + i].elements["ID" + i].value;
var HA = document.forms["formHA" + i].elements["HA" + i].value;
stateLoad(ID,i,HA);
}
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: 650px; height: 500px"></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><form name="formID1" id="formID1">
No. <input type="text" maxlength="6" size="6" name="ID1" value="1">
</form></td>
<td><form name="formHA1" id="formHA1"><select name="HA1" style="width:100px;">
<option value="1">HP</option>
<option value="2">ATK</option>
</select></form></td>
<td bgcolor="#FFF"><form name="formN1" id="formN1">
<input readonly type="text" maxlength="30" size="30" name="name1">
</form></td>
</tr>
<tr align=center>
<td><form name="formID2" id="formID2">
No. <input type="text" maxlength="6" size="6" name="ID2" value="2">
</form></td>
<td><form name="formHA2" id="formHA2"><select name="HA2" style="width:100px;">
<option value="1">HP</option>
<option value="2">ATK</option>
</select></form></td>
<td bgcolor="#FFF"><form name="formN2" id="formN2">
<input readonly type="text" maxlength="30" size="30" name="name2">
</form></td>
</tr>
<tr align=center>
<td><form name="formID3" id="formID3">
No. <input type="text" maxlength="6" size="6" name="ID3" value="0">
</form></td>
<td><form name="formHA3" id="formHA3"><select name="HA3" style="width:100px;">
<option value="1">HP</option>
<option value="2">ATK</option>
</select></form></td>
<td bgcolor="#FFF"><form name="formN3" id="formN3">
<input readonly type="text" maxlength="30" size="30" name="name3">
</form></td>
</tr>
<tr align=center>
<td><form name="formID4" id="formID4">
No. <input type="text" maxlength="6" size="6" name="ID4" value="0">
</form></td>
<td><form name="formHA4" id="formHA4"><select name="HA4" style="width:100px;">
<option value="1">HP</option>
<option value="2">ATK</option>
</select></form></td>
<td bgcolor="#FFF"><form name="formN4" id="formN4">
<input readonly type="text" maxlength="30" size="30" name="name4">
</form></td>
</tr>
<tr align=center>
<td><form name="formID5" id="formID5">
No. <input type="text" maxlength="6" size="6" name="ID5" value="0">
</form></td>
<td><form name="formHA5" id="formHA5"><select name="HA5" style="width:100px;">
<option value="1">HP</option>
<option value="2">ATK</option>
</select></form></td>
<td bgcolor="#FFF"><form name="formN5" id="formN5">
<input readonly type="text" maxlength="30" size="30" name="name5">
</form></td>
</tr>
<tr align=center>
<td><form name="formID6" id="formID6">
No. <input type="text" maxlength="6" size="6" name="ID6" value="0">
</form></td>
<td><form name="formHA6" id="formHA6"><select name="HA6" style="width:100px;">
<option value="1">HP</option>
<option value="2">ATK</option>
</select></form></td>
<td bgcolor="#FFF"><form name="formN6" id="formN6">
<input readonly type="text" maxlength="30" size="30" name="name6">
</form></td>
</tr>
</table>
}}}
Comments policy & Terms of Use
・ネタバレ自粛期間中はシナリオや真名のネタバレは禁止です!
ネタバレ自粛期間の文字列挿入箇所
・コメントの内容に準じたコメントフォームを利用しましょう!
※報告を扇動したり異なるフォームへの投稿が散見した場合、coや規制対応することがあります
・現在、異なる板へのガチャ報告に利用者が定型文で誘導を行えるようルール改定するか議論中です。
時間がありましたら賛成/反対だけで構わないのでレスの協力お願いします
閉じる