𝕻 𝖗 𝖎 𝖒 𝖟 𝖆 𝖍 𝖑  

ステータス

爵位:なし

爵位基準(銀貨を基準とする)

所持金:0 (金貨:0枚、銀貨:0枚、銅貨:0枚)  貨幣の交換率:20進法

貨幣の交換率を変更:
(金貨1枚≒2万円、銀貨1枚≒1000円、銅貨1枚≒50円)
(金貨1枚≒32768円、銀貨1枚≒1024円、銅貨1枚≒32円)
(金貨1枚≒10万円、銀貨1枚≒1000円、銅貨1枚≒10円)

EXP:0
LV:1

HP:10 / 10
MP:0
SP:0
属性:???
└属性変更:

ステージ:1(※ステージ数=敵の数)
敵1の名称  属性1:  属性2:  LV:1  HP:10  SP:10  MP:10
敵2の名称  属性1:  属性2:  LV:1  HP:10  SP:10  MP:10
敵HP:10

技一覧

都市探索

現在位置:荒脛巾郡

【転移の鳥居】

所持品一覧

武器合成





𝕻𝖗𝖎𝖒𝖟𝖆𝖍𝖑とは何か?

素因数分解をNPCのAIのアルゴリズムに利用した計算RPG(予定)。
Primzahl(プリムツァール)」は、 独逸(ドイツ)語で、「素数」という意味。
題字は、独逸(ドイツ)の旧字体である、フラクトゥールを使用。
現状、JavaScriptによるRPG制作「第1講. Hellow World!のようなもの」までを再現。
jQueryを使用せず、innerHTMLで再現予定。
HTML5 Canvasも最初は使用せずに制作する予定。




ソースコード

primzahl.html

アコーディオンパネル部分は、ヘッダ内部JavaScript。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta name="robots" content="noindex,nofollow">
<meta charset="utf-8" />
<title>&#120187;&#120215;&#120206;&#120210;&#120223;&#120198;&#120205;&#120209;</title>
<style type="text/css">
body { font-family: "Times New Roman",serif; }
</style>
<script type="text/javascript" language="JavaScript" src="primzahl000.js"></script>
<script type="text/javascript" language="JavaScript" src="primzahl.js"></script>
<script type="text/javascript" language="JavaScript" src="niguruma.js"></script>
<script type="text/javascript" language="JavaScript">
<!--
var pulldown = function(list) {
  if(list.style.display=="none"){
    list.style.display="block";
  }else{
    list.style.display="none";
  }
};
//-->
</script>
</head>
<body bgcolor="#c0c0c0">
<h1>
<span style="background-color:#000000;"> 
<span style="color:#ff0000;"><i>&#120187;</i></span>
<span style="color:#ffa500;"><i>&#120215;</i></span>
<span style="color:#ffff00;"><i>&#120206;</i></span>
<span style="color:#00ff00;"><i>&#120210;</i></span>
<span style="color:#008000;"><i>&#120223;</i></span>
<span style="color:#00ffff;"><i>&#120198;</i></span>
<span style="color:#0000ff;"><i>&#120205;</i></span>
<span style="color:#800080;"><i>&#120209;</i></span>
 </span>
</h1>

<form><!-- getElementByIdを使用する為、name属性を指定しない -->

~中略~

</form>

</body>
</html>
~中略~部分を上から順に解説

所持金関連

<p>
所持金:<span id="money">0</span>
(金貨:<span id="au">0</span>枚、銀貨:<span id="ag">0</span>枚、銅貨:<span id="cu">0</span>枚)</span>
 貨幣の交換率:<span id="rate">20</span>進法
<br>
<input type="button" value="金貨+1" onclick="au_calc(1)">
<input type="button" value="金貨-1" onclick="au_calc(-1)">
<input type="button" value="銀貨+1" onclick="ag_calc(1)">
<input type="button" value="銀貨-1" onclick="ag_calc(-1)">
<input type="button" value="銅貨+1" onclick="cu_calc(1)">
<input type="button" value="銅貨-1" onclick="cu_calc(-1)">
<br>
貨幣の交換率を変更:
<input type="button" value="20進法" onclick="ratechange(20)">
<input type="button" value="32進法" onclick="ratechange(32)">
<input type="button" value="100進法" onclick="ratechange(100)">
</p>



primzahl000.js

経験値加算とレベル上昇計算、最大HPの算出

var EXP = 0; // 経験値の初期値
var EXP_MAX = 999999; // 経験値上限
var LV = 1; // レベルの初期値
var LV_MAX = 1000; // レベル上限
var HP = 10; // HPの初期値
var HP_MAX = 10; // 最大HPの初期値

var add_EXPfunc = function(add_EXP){
  EXP += add_EXP;
  if(EXP > EXP_MAX){
    EXP = EXP_MAX;
  } // 経験値上限超過時の禁則処理
  document.getElementById("EXP").innerHTML = ("EXP:" + EXP);

  levelupcalc(); // レベル上昇計算

}; // 経験値加算関数

var levelupcalc = function(){
  var temp = Math.floor(Math.sqrt(EXP+1));
  // 現在の経験値をレベルに換算

  if (LV < temp){
    LV = temp; // 換算値をレベルに代入

    if(LV > LV_MAX){
      LV = LV_MAX;
    } // レベル上限超過時の禁則処理

    document.getElementById("LV").innerHTML = ("LV:" + LV);
    statusupdate(); // ステータス更新処理
  } // 換算値が現在のレベルを上回った場合のみ更新する

}; // レベル上昇計算

var statusupdate = function(){
  HP_MAX = 10 * LV; // 現在のLVでの最大HPの算出

  HP += HP_MAX;

  document.getElementById("HP").innerHTML = ("HP:" + HP + " / " + HP_MAX);

  skill_list_update(); // 技一覧の更新処理

}; // ステータス更新処理

var HP_to_EXPfunc = function(HP_to_EXP){
  if (HP > HP_to_EXP) {
    HP -= HP_to_EXP;
    add_EXPfunc(HP_to_EXP);
    document.getElementById("HP").innerHTML = ("HP:" + HP + " / " + HP_MAX);
  } // HPが変換値より大きい場合のみ
}; // HPを経験値に変換する関数
黄色帯に赤文字の部分は、primzahl001.js以降に掲載

primzahl.js




feuereisdonner.js

属性関連。

var attributeNumber = 0; // 属性
var attributeName = new Array("???", 
"&#120177;&#120202;&#120218;&#120202;&#120215;", 
"&#120176;&#120206;&#120216;", 
"&#120175;&#120212;&#120211;&#120211;&#120202;&#120215;");
// 属性名称(0:???, 1:Feuer, 2:Eis, 3:Donner)
var attributeColor = new Array("#000000", "#ff0000", "#00ffff", "#ffff00");
// 属性の色(0:黒, 1:赤, 2:青, 3:緑)
var attributeChange = function(attributeNumber){
  document.getElementById("attribute").innerHTML
 = "属性:<span style=\"background-color:" + attributeColor[attributeNumber]
 + ";\">" + attributeName[attributeNumber];
}; // 属性変更処理

niguruma.js

武器合成関連。

var RankName = new Array("なし", "男爵", "子爵", "伯爵", "侯爵", "公爵", "大公", "魔王");
var RankNumber = 0; // 爵位の初期値は0、0から7の値をとり、それぞれが上記の爵位に相当する

var RankUp = function(){
  RankNumber++;
  if(RankNumber > 7){
    RankNumber = 7;
  } // 爵位の上限超過時の禁則処理
  document.getElementById("rank").innerHTML = ("爵位:" + RankName[RankNumber]);
}; // 爵位昇格

var money = 0; // 所持金
var au = 0; // 金貨の初期値
var ag = 0; // 銀貨の初期値
var cu = 0; // 銅貨の初期値
var rate = 100; // 貨幣の交換率が何進法か?

var au_calc = function(add_au){
  if(au + add_au >= 0){
    au += add_au;
    document.getElementById("au").innerHTML = au;
    moneycalc(); // 所持金計算
  } // 金貨の所持枚数が負になることを阻止する
};

var ag_calc = function(add_ag){
  if(ag + add_ag >= 0){
    ag += add_ag;
    document.getElementById("ag").innerHTML = ag;
    moneycalc(); // 所持金計算
  } // 銀貨の所持枚数が負になることを阻止する
};

var cu_calc = function(add_cu){
  if(cu + add_cu >= 0){
    cu += add_cu;
    document.getElementById("cu").innerHTML = cu;
    moneycalc(); // 所持金計算
  } // 銅貨の所持枚数が負になることを阻止する
};

var ratechange = function(new_rate){
  rate = new_rate
  document.getElementById("rate").innerHTML = rate;
  moneycalc(); // 所持金計算
}; // 貨幣の交換率を変更

var moneycalc = function(){
  money = au * rate * rate + ag * rate + cu;
  document.getElementById("money").innerHTML = money;
}; // 所持金計算関数

都市探索関連

var AreaName = new Array("荒脛巾郡", "荏原郡", "橘樹郡", "北多摩郡", "南多摩郡", "高座郡");
var AreaNumber = 0; // 郡名の初期値は0、0から5の値をとり、それぞれが上記の郡名に相当する

var moveableAreaList = function(){
  document.getElementById("area_list").innerHTML = "";

  if(AreaNumber == 0){
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"荏原郡へ移動\" onclick=\"moveArea(1)\"></li>");
  } else if(AreaNumber == 1){
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"荒脛巾郡へ移動\" onclick=\"moveArea(0)\"></li>");
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"橘樹郡へ移動\" onclick=\"moveArea(2)\"></li>");
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"北多摩郡へ移動\" onclick=\"moveArea(3)\"></li>");
  } else if(AreaNumber == 2){
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"荏原郡へ移動\" onclick=\"moveArea(1)\"></li>");
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"北多摩郡へ移動\" onclick=\"moveArea(3)\"></li>");
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"南多摩郡へ移動\" onclick=\"moveArea(4)\"></li>");
  } else if(AreaNumber == 3){
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"荏原郡へ移動\" onclick=\"moveArea(1)\"></li>");
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"橘樹郡へ移動\" onclick=\"moveArea(2)\"></li>");
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"南多摩郡へ移動\" onclick=\"moveArea(4)\"></li>");
  } else if(AreaNumber == 4){
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"橘樹郡へ移動\" onclick=\"moveArea(2)\"></li>");
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"北多摩郡へ移動\" onclick=\"moveArea(3)\"></li>");
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"高座郡へ移動\" onclick=\"moveArea(5)\"></li>");
  } else if(AreaNumber == 5){
    document.getElementById("area_list").innerHTML
      += ("<li><input type=\"button\" value=\"南多摩郡へ移動\" onclick=\"moveArea(4)\"></li>");
  }
};

var moveArea = function(temp){
  AreaNumber = temp;
  document.getElementById("pos").innerHTML = AreaName[AreaNumber];
  moveableAreaList();
};

.js





Shadow Academy トップへ戻る

inserted by FC2 system