サイト内検索

[IT][転職][プログラマー]自分の作ったプログラムで就活ができる実力派向けサービス

お疲れ様です、野村です。
最近多方面に手を伸ばしていて記事の更新に時間を割けていませんでしたが、ぼちぼちに戻ろうと思ってます。
今日は今の会社に入社するまでにお世話になっていましたサイトサービスをご案内しましょう。

本日の議題

就活サービスとしての使い方

続きを読む

[Selenium][Builder][3.0.9]Excelで作ったCSVデータをセレニウムに読ませる

お疲れ様です、野村です。
以前に書いた記事でコメントをいただきました、ありがとうございます!
わざわざ取り上げている、というのは海外からの感謝の言葉だったからです。

Hey,everyone!
I get comment it. 70
comment from not Japanese it. Its priase message for my article.
other Selenium Builder article here.

こういうのは本当にありがたい!

本日の議題 theme:today

Selenium Builderのもうちょっと使える話

続きを読む

[JavaScript][TRPG]ダイスプログラム(アリアンロッドTRPGを想定)

お疲れ様です、野村です。
昔運営していたサイト(【Age of Networks(AoN-DB)え~ちゃんぶろぐねっとわ~く】)で懐かしいものを見つけたので、こちらでも公開します。
今日はヤバい話ではないので、主に私が安心して記事を書けます。

本日の議題

2016/6/24 追記

アリアンロッドRPG 2E 公式サイト
無料で遊べるようになってるんですね、驚いた!

懐かしいもの とは

TRPGのダイスポッドを自作しよう、という事で裏側の処理だけサクッと書いたものです。
当時は*1JavaScriptにガッツリハマっていた*2時期だったので、全部JavaScriptで作ってます。
JQueryは今回意図して使っていない、と思います。
コードを見てると、当時JQueryは使えなかったんじゃないかな、という気がしています。

*1 : 今も

*2 : 二重の意味で

ソースコード(コメント付き)

function diceroll(form)
{
  //定義フォーム
  const nD = form.nD.value;
  const Dx = form.Dx.value;
  const nx = form.nx.value;
  //わがままなアナタへの試算用フォーム
  const kitai = form.kitai.value;
  
  //結果を受け取る
  var n=new Array();  //要素としてのnx回目を出力
  var dice=new Array();  //ダイスの目を二次元的に保持
  //ダイスロール実行
  tmp=roll_process();

  //動作部
  function roll_process()
  {
	tmp=throw_process();  //ダイスを振る回数行う
	function throw_process()  //ダイスを一回投げられた処理
	{
	  var sum_nx=0;
	  var max=0;
      dice[0]=new Array(1);  //ダイスの目。2次元
	  for(var now_nx=1;now_nx<=nx;now_nx++)
	  {
        n[now_nx]=new Array("n"+now_nx);
        dice[now_nx]=new Array();  //ダイスの目。2次元
	    tmp=throw_once(now_nx);
		sum_nx+=tmp;
		max=compare(max,tmp);
        dice[now_nx][0]=tmp;
		
		//ここで描画するのはMVC的にどうなんだろうか?別途処理を用意できるが
		document.getElementById(n[now_nx]).value=dice[now_nx][0];
	  }
	  dice[0][0]=sum_nx;
	  output(sum_nx,max);
	}
    function output(sum,max)
    {
	  form.sum_n.value=sum;
	  form.max_n.value=max;
	  form.ave_n.value=sum/nx;
	  form.kitai_n.value=kitai*nD;
	  //dice[0][N]に何か入れる?
	}
	function compare(old,now)  //N-1回目とN回目の合計を比較すると想定
	{
	  if(old<now)return now;
	  return old;
	}

	function throw_once(now_nx)  //ダイス1つをnD個分転がした処理
	{
      var sum_nD = 0;  //dice[N][0]に合計を格納する。dice[0]ではない
	  var critical = 0;
	  var fumble = 0;
	  for(var now_nD=1;now_nD<=nD;now_nD++)
	  {
        tmp=dice_once();
		dice[now_nx][now_nD]=tmp;
		sum_nD+=tmp;
		if(tmp==1)fumble++;
		else if(tmp==6)critical++;
		if(fumble==nD)document.getElementById(n[now_nx]).style.backgroundColor = '#f00';
		else if(critical>=2)document.getElementById(n[now_nx]).style.backgroundColor = '#0f0';
		else document.getElementById(n[now_nx]).style.backgroundColor = '#eee';
	  }
	  
	  return sum_nD;
	}
    function dice_once()  //ダイスを1つ転がした処理
    {
      return Math.floor(Dx*Math.random())+1;
    }
  }
}

//入力が0だったら1にする。-は出来ない
function checker(check)
{
  if(check.value==0)check.value=1;
//  if(check.value<10)check.value=9;	期待値にも適用される。個別対応?
}

//スペルチェッカー。全角は面倒だからスルー。ちゃんと関数あるよ
function numOnly() 
{
	m = String.fromCharCode(event.keyCode);
	if("0123456789\b\r".indexOf(m, 0) < 0)return false;
}

//ボタン押したら最適化する
function radio_trpg(value,Dx)
{
  switch(value)
  {
    case "Arianrhod":
    case "AngelGear":
    select="6";
	break;
    case "DX":
    select="10";
	break;
	case "Noselect":
    Dx.disabled = false;
	return;
	break;
  }
  Dx.value=select;
  Dx.disabled = true;
}

使い方

動く場所:【Age of Networks(AoN-DB)え~ちゃんぶろぐねっとわ~く】があるのでそこを見れば分かります。
ダイス用のフォームを用意します。

名前は適宜いい感じに変えましょう。

振り返って曰く

長くなったんで別の記事にしました。

タグについて

ECMAScriptとありますが、よく分からなければJavaScriptで概ね間違いではありません。
が、Webコーダーさんはちゃんと違いを理解しておきましょう。
OK キャンセル 確認 その他