次の内容は、銘木森林日記 第63話 お役立ちスクリプト(一部界隈に限る) と同じものです。
https://kakuyomu.jp/works/822139837131416672/episodes/2912051604821290344
末尾に、このスクリプトを、テキストエディタの markor で実行したスクリーンショットが、付加されています。
スクショだけ貼り付けても、この近況ノートだけを読まれた方には、意味が通じ難いかと思い、63 話の内容を再録したものです。
既読の方には、紛らわしく、また煩わしい事になったかと思います。
謹んでお詫び申し上げます。
20260726 0321jst
↓↓↓以下再録↓↓↓
お役立ちスクリプト(一部界隈に限る)
trpg ソロプレイという、超ピンポイントな用途限定のスクリプトです。
次のコードをコピペして、(例えば) diceroll.html などと名前を付けて保存してください。
表示モードを持つテキストエディタで、そのファイルを開き、表示モードに移行してください。
あとは、まぁ、見たら判るじゃろ。
d66 や d33 といった条件下で、ダイスを二回、あるいは二個振る場合がありますが、「2d6」と設定すれば、6面ダイスを二個、同時に振った判定が出来ます。
また「nd3」(nはダイスの個数) とすれば、直接3面ダイスとしての結果を得ることが出来ます。
初期状態では、ダイスの個数は1~10、面数は2~1000まで設定可能ですが、必要なら errchk 関数の判定文を書き換えてください。
20260725 2237jst
↓↓↓以下コピペ用コード↓↓↓
<html lang="ja"><head>
<title>diceroll</title>
</head><body>
<button id="clrbtn">clear!</button>
<p>
<input id="dcnt" type="number" value="1" step="1" style="text-align: right; width: 2em;">
d
<input id="dmax" type="number" value="6" step="1" style="width: 3em;">
<button id="rollbtn">roll!</button>
</p>
<p id="dr" style="white-space: pre-wrap;"></p>
<script>
const dr = document.getElementById("dr");
const dcnt = document.getElementById("dcnt");
const dmax = document.getElementById("dmax");
const clrbtn = document.getElementById("clrbtn");
clrbtn.addEventListener("click", () => {
dr.textContent = "";
});
function errchk ( dc , dm ) {
var errflg = "";
if ( dc < 1 ) errflg = "dcnt small";
if ( dc > 10 ) errflg = "dcnt big";
if ( dm < 2 ) errflg = "dmax small";
if ( dm > 1000 ) errflg = "dmax big";
return ( errflg );
}
function errmsg ( errstat ) {
dr.textContent = dr.textContent + "err : " + errstat + "\n";
}
function rollexec ( dc , dm ) {
for ( i = 1; i <= dc; i++ ) {
var d = Math.floor( Math.random( ) * dm ) + 1;
dr.textContent = dr.textContent + i + "/" + dc + "d" + dm + " : " + d + "\n";
}
}
const rollbtn = document.getElementById("rollbtn");
rollbtn.addEventListener("click", () => {
var dc = dcnt.value;
var dm = dmax.value;
var errvar = errchk ( dc , dm );
if ( errvar )
errmsg ( errvar );
else
rollexec ( dc , dm );
});
</script>
</body></html>