2017空気日記2017/06/18JavaScriptで簡単なゲームをするAIを作成enchant.jsでハースストーンの「チェスの親善試合」を再現しましたが、2人対戦しかできなかったので、1人プレイの相手をしてくれるAIをJavaScriptで作ってみました。将棋AIのゲーム木を評価関数で数値化する方式を真似して、AI側の行動のゲーム木を評価関数で数値化します。ソースはこんな感じです。→ソースAIと対戦してみる(モード選択で「SinglePlay」を選ぶとAIが対戦相手になってくれます。ハースストーン2017/06/05enchant.jsのゲーム画面の中央表示enchant.jsで作成したゲームをブラウザの中央に表示する方法です。enchant.jsでゲーム画面を表示すると、(特に指定をしない場合)ブラウザの左上に表示されます。これを下のように、中央に表示し余白には背景画像を表示します。以下のような関数を作成し、この関数をenchant.coreのインスタンスを引数に呼び出すとゲーム画面が中央表示となります。stagePos.top;};また、センタリングした結果できた余白には、cssでbody要素に背景画像を設定します。repeat;}実際に中央表示を行っているサンプルソースをGithubに作成しました。JavaScript2017/06/04【ハースストーン】チェスの親善試合ハースストーンの酒場の喧嘩で結構前にあった「チェスの親善試合」が面白かったので、JavaScriptで再現してみました。下のURLを開いた人同士で対戦できます。ハースストーン2017/03/25SVNManager日本語版WebブラウザでSubversionサーバのリポジトリを管理するためのツール「SVNManager」の日本語版です。ダウンロードページ:https://github.com/kysaeed/SVNManagerJP/releases/tag/ver1.10JP(svnmanager.tar.gzまたはsvnmanager.zipをダウンロードしてください。英語版の使用方法を解説しているサイト等を参考にしてください。下記のページが分かりやすかったです。配列要素のNULLチェックC#で配列の要素にnullが存在するかをチェックする方法です。1次元配列にnullが含まれているかチェックチェック対象が1次元の配列に限定されるなら以下のように、ArrayのIndexOfメソッドでnullを検索するだけで判定できます。}}多次元配列に対応しかし、ArrayのIndexOfメソッドで検索できるのは1次元配列限定なので、2次元以上の多次元配列(foo[1,2]やbar[1,2,3]のような配列)の配列のnullチェックには使えません。多次元配列のnullチェックもしたい場合は、多次元配列に対してforeachループを使うと、配列の全要素に対してアクセスできることを利用して、foreachループ内で配列の要素に対してnullチェックをするようにすれば、配列にnullが含まれているかチェック可能です。配列の要素が配列(ジャグ配列)の場合にも対応したい場合は、配列の要素が配列か(ArrayのArray)をチェックする必要があります。変数が配列かどうかをチェックするには、Type.IsArrayプロパティを使います。配列だった場合には、その配列に対して配列のnullチェックをします。配列要素のnullチェック中に、また配列要素のnullチェックが必要となるとややこしく感じますが、チェック処理を関数化しておいて再帰するだけで、以下のように簡単にできます。}}配列をnullチェックしたい場面によって、以上のようなパターンを使分けると便利です。