「戦闘力リストフォーム」の編集履歴(バックアップ)一覧に戻る

戦闘力リストフォーム - (2007/05/26 (土) 12:54:22) のソース

<h2><a>戦闘力リストフォーム</a></h2>
<div>戦闘力からパーティの組み合わせを探す事を目的としたフォームです。<br>
特定の組み合わせのパーティの戦闘力を知りたい場合は、<a href="http://www16.atwiki.jp/sr_archives/pages/63.html">戦闘力計算フォーム</a>をご利用下さい。<br>
TW1無限のファンタジアのLv1をシルバーレインのLv10に置き換えて計算を行っています。<br>
<br>
このフォームはインラインフレームとJavaScriptを用いて計算を行っています。<br>
申し訳ありませんが、インラインフレームとJavaScriptに対応していないブラウザ(携帯ブラウザなど)ではご利用頂けません。</div>
<br>
<div>最終更新:2007/05/26</div>
<ul>
<li>戦闘力リストフォームを設置しました。</li>
</ul>
<br>

<div><script language="JavaScript">
<!--
var lv_min = 14;
var lv_max = 28;

var a_bp = new Array();
a_bp[0] = 0;
a_bp[10] = 21;
a_bp[11] = 23;
a_bp[12] = 26;
a_bp[13] = 29;
a_bp[14] = 33;
a_bp[15] = 38;
a_bp[16] = 43;
a_bp[17] = 49;
a_bp[18] = 56;
a_bp[19] = 63;
a_bp[20] = 71;
a_bp[21] = 80;
a_bp[22] = 89;
a_bp[23] = 99;
a_bp[24] = 110;
a_bp[25] = 121;
a_bp[26] = 133;
a_bp[27] = 146;
a_bp[28] = 159;
a_bp[29] = 173;
a_bp[30] = 188;
a_bp[31] = 203;
a_bp[32] = 219;
a_bp[33] = 236;
a_bp[34] = 253;
a_bp[35] = 271;
a_bp[36] = 290;
a_bp[37] = 309;
a_bp[38] = 329;
a_bp[39] = 350;
a_bp[40] = 371;
a_bp[41] = 393;
a_bp[42] = 416;
a_bp[43] = 439;
a_bp[44] = 463;
a_bp[45] = 488;
a_bp[46] = 513;
a_bp[47] = 539;
a_bp[48] = 566;
a_bp[49] = 593;
a_bp[50] = 621;
a_bp[51] = 650;
a_bp[52] = 679;
a_bp[53] = 709;
a_bp[54] = 740;
a_bp[55] = 771;
a_bp[56] = 803;
a_bp[57] = 836;
a_bp[58] = 869;
a_bp[59] = 903;
a_bp[60] = 938;
a_bp[61] = 973;
a_bp[62] = 1009;
a_bp[63] = 1046;
a_bp[64] = 1083;
a_bp[65] = 1121;
a_bp[66] = 1160;
a_bp[67] = 1199;
a_bp[68] = 1239;
a_bp[69] = 1280;
a_bp[70] = 1321;
a_bp[71] = 1363;
a_bp[72] = 1406;
a_bp[73] = 1449;
a_bp[74] = 1493;
a_bp[75] = 1538;
a_bp[76] = 1583;
a_bp[77] = 1629;
a_bp[78] = 1676;
a_bp[79] = 1723;
a_bp[80] = 1771;
a_bp[81] = 1820;
a_bp[82] = 1869;
a_bp[83] = 1919;
a_bp[84] = 1970;

var _f;
var _r;
var _rd;

// -------- レイアウト生成 --------
function lo_set(){
 var i;

 document.write('<form name="bp">');

 document.write('自分のLv:<select name="lv">');
 for(i = lv_min; i <= lv_max; i++){
  document.write('<option value=' + i + '>' + i);
 }
 document.write('</select>');

 document.write(' Lv上限:<select name="lv2">');
 for(i = lv_min; i <= lv_max; i++){
  if(i == lv_max){
   document.write('<option value=' + i + ' selected>' + i);
  }
  else{
   document.write('<option value=' + i + '>' + i);
  }
 }
 document.write('</select>');
 document.write('<br><br>');

 document.write('<input type="button" value="結果を表示" onClick="calc_bp()">');

 document.write('</form>');

 document.write('<iframe id="result" width="95%" style="height:20em">');
 document.write('</iframe>');

 p_set();

 _rd.open();
 css_set();
 _rd.write('ここに結果が表示されます。');
 _rd.close();
}
lo_set();

// -------- ポインターセット --------
function p_set(){
 _f = document.bp;
 _r = document.getElementById("result");

 if(document.all){
  _rd = _r.contentWindow.document;
 }
 else{
  _rd = _r.contentDocument;
 }
}

// -------- css --------
function css_set(){
 _rd.write('<head>');
 _rd.write('<style type="text/css">');

 _rd.write('body{');
 _rd.write(' pading:0.5em;');
 _rd.write(' margin-left:2%;');
 _rd.write(' margin-right:2%;');
 _rd.write(' font-size:small;');
 _rd.write(' font-family:verdana, arial, helvetica, Sans-Serif;');
 _rd.write('}');

 _rd.write('table{');
 _rd.write(' display:table;');
 _rd.write(' border-spacing:2px;');
 _rd.write(' border-collapse:collapse;');
 _rd.write(' margin-top:1em;');
 _rd.write(' margin-bottom:1em;');
 _rd.write(' -moz-box-sizing:border-box;');
 _rd.write(' text-indent:0;');
 _rd.write(' border:1px solid #333;');
 _rd.write(' line-height:1.2em;');
 _rd.write('}');

 _rd.write('tr{');
 _rd.write(' vertical-align:middle;');
 _rd.write('}');

 _rd.write('th{');
 _rd.write(' display:table-cell;');
 _rd.write(' background-color:lightblue;');
 _rd.write(' margin-left:2%;');
 _rd.write(' margin-right:2%;');
 _rd.write(' font-size:x-small;');
 _rd.write(' font-family:verdana, arial, helvetica, Sans-Serif;');
 _rd.write(' font-weight:700;');
 _rd.write(' vertical-align:inherit;');
 _rd.write(' text-align:center;');
 _rd.write(' padding:3px;');
 _rd.write(' border:1px solid #333;');
 _rd.write('}');

 _rd.write('td{');
 _rd.write(' display:table-cell;');
 _rd.write(' margin-left:2%;');
 _rd.write(' margin-right:2%;');
 _rd.write(' font-size:x-small;');
 _rd.write(' font-family:verdana, arial, helvetica, Sans-Serif;');
 _rd.write(' vertical-align:inherit;');
 _rd.write(' text-align:inherit;');
 _rd.write(' padding:3px;');
 _rd.write(' border:1px solid #333;');
 _rd.write('}');

 _rd.write('h2{');
 _rd.write(' border-top:none;');
 _rd.write(' border-bottom:1px solid #aaa;');
 _rd.write(' border-left:9px solid #aaa;');
 _rd.write(' border-right:none;');
 _rd.write(' padding:0.1em;');
 _rd.write(' margin:1px;');
 _rd.write(' margin-botton:5px;');
 _rd.write(' font-size:1.2em;');
 _rd.write(' font-family: verdana, arial, helvetica, Sans-Serif;');
 _rd.write('}');

 _rd.write('</style>');
 _rd.write('</head>');
}

// -------- 数値→文字 --------
function nts(p1){
 var t_str = "000000";
 t_str = t_str + p1;
 t_str = t_str.substr(t_str.length - 6, 6);
 return t_str;
}

// -------- 文字→数値 --------
function stn(p1, p2){
 var t_num;
 t_num = parseFloat(p1.substr(p2 * 6, 6));
 if(t_num <= 0) return "";
 return t_num;
}

// -------- 戦闘力計算 --------
function calc_bp(){

/* t_bp = 512;
 t_bp = nts(t_bp);
 document.write(t_bp);
 document.write('<br>');
 t_bp = stn(t_bp, 0);
 document.write(t_bp);*/


 var s_0 = "000000";

 var t_lv = eval(_f.lv.value);
 var t_lv2 = eval(_f.lv2.value);

 var i;
 var j;
 var k;

 var t_bp;

 var a_rst = new Array();
 var n_cnt = 0;

 // ---- 1PT
 t_bp = a_bp[t_lv];
 a_rst[n_cnt] = nts(t_bp) + nts(t_lv) + s_0 + s_0 + s_0;
 n_cnt++;

 // ---- 2PT
 for(i = lv_min; i <= t_lv2; i++){
  t_bp = a_bp[t_lv] + a_bp[i];
  a_rst[n_cnt] = nts(t_bp) + nts(t_lv) + nts(i) + s_0 + s_0;
  n_cnt++;
 }

 // ---- 3PT
 for(i = lv_min; i <= t_lv2; i++){
  for(j = i; j <= t_lv2; j++){
   t_bp = a_bp[t_lv] + a_bp[i] + a_bp[j];
   a_rst[n_cnt] = nts(t_bp) + nts(t_lv) + nts(i) + nts(j) + s_0;
   n_cnt++;
  }
 }

 // ---- 4PT
 for(i = lv_min; i <= t_lv2; i++){
  for(j = i; j <= t_lv2; j++){
   for(k = j; k <= t_lv2; k++){
    t_bp = a_bp[t_lv] + a_bp[i] + a_bp[j] + a_bp[k];
    a_rst[n_cnt] = nts(t_bp) + nts(t_lv) + nts(i) + nts(j) + nts(k);
    n_cnt++;
   }
  }
 }

 a_rst.sort();

 _rd.open();
 css_set();

 _rd.write('<table>');
 _rd.write('<tr>');
 _rd.write('<th>戦闘力</th><th>自 分</th><th>2人目</th><th>3人目</th><th>4人目</th>');
 _rd.write('</tr>');

 for(i = 0; i < n_cnt; i++){
  _rd.write('<tr>');
  _rd.write('<td>' + stn(a_rst[i], 0) + '</td>');
  _rd.write('<td>' + stn(a_rst[i], 1) + '</td>');
  _rd.write('<td>' + stn(a_rst[i], 2) + '</td>');
  _rd.write('<td>' + stn(a_rst[i], 3) + '</td>');
  _rd.write('<td>' + stn(a_rst[i], 4) + '</td>');
  _rd.write('</tr>');
 }

 _rd.write('</table>');

 _rd.close();
}
//-->
</script></div>

<h2><a>使い方</a></h2>
<div>あなたの現在のLv(あなたのLv)を選択して下さい。<br>
<br>
仲間にするキャラクターのLvの上限(Lv上限)を選択して下さい。<br>
こちらは選択しなくても構いません。<br>
<br>
選択が終わったら「結果を表示」ボタンを押して下さい。<br>
(計算量が多い為、結果が表示されるまでに時間がかかります)<br>
<br>
結果は以下の書式で記述してあります。<br>
空欄がある場合は、その人数でのパーティが目的の戦闘力のパーティになります。<br>
|合計戦闘力|あなたのLv|2人目のLv|3人目のLv|4人目のLv|</div>
記事メニュー
目安箱バナー