カテゴリー
ネットのサービス

yare.io – JavaScript で艦隊を動かし戦わせるゲーム

yare.io は、Javascriptプログラムを書いて宇宙戦を戦わせるwebサービスです。

ゲームは一対一の戦い、スピリット(spirit)というユニットを操作して、自分の基地を守りつつ敵の基地を破壊することが勝利条件です。

操作して、と言いましたがマウスなどで直接操作するわけではなく、JavaScript でスピリットがどのように振舞うかをプログラミングし、フィールドに投入して戦わせます。

チュートリアルがあるので、通しでやってみました。

基地の最寄りの恒星でエネルギーを補給させ、それを基地へと持ち帰らせます。

エネルギーをある程度運びこむと、基地から新しいユニット(スピリット)が誕生するので、自分のすべてのユニットを配列で回し、使えるユニットを増やしていきます。

自給ができるようになったら、一定範囲を索敵し、攻めてきた敵のスピリッツからエネルギーを奪うことで撃破します。チュートリアルではここまで。

この後は実際の戦闘フィールドに参加します。他のユーザーを待つこともできますが、相手が見つからない時や練習用に bot のプレイヤーも用意されています。

試しに増やした艦隊の半分を敵の基地へ送るプログラムを書き投入してみたのですが、待ち受ける敵の艦隊に各個撃破されてしまい散々でした。チュートリアルから実戦に行くには、もう少し凝ったプログラムを作らないといけなさそうです。

ゲームシステムはまだまだ荒く、スピリットの種類やルール、使える関数もこれから増えていくそうです。Discord チャンネルで作者や他プレイヤーと雑談することができ、現在の制限事項や今後の予定などについて知ることができます。

カテゴリー
ゲーム

Oh My Git! – git の使い方を学べるゲーム

Oh My Git! は、バージョン管理ツール git の使い方を学ぶためのゲームです。

中央にgitツリーのグラフが表示され、手元にはgitコマンドを表すカードが配られます。

カードを使わずに右側のターミナルでコマンドライン操作することも可能。お題で出てきた課題を満たすためのカード/コマンドを正しく実行すると、右側の達成項目が緑に反転し、すべて達成すればそのレベルはクリアです。

commit を指定し、そこにカードを捨てることでカード上のコマンドを適用。

levels にあるステージ一覧から、好きな項目について遊ぶことが可能です。

カードを使っても解けますが、コマンドラインで解くと右端のボックスを黄色にすることができます。

ソースコードは GitHub で公開されていて、バイナリ版も Windows, MacOS, Linux 向けに提供されています。

テキストファイルで新たなlevelを自作することも可能で、必要な学習項目が無ければ追加することもできるようです。

作者の二人による紹介動画

git を学ぶためのサイトはこれまでもいろいろ出ています。それだけ初めて使う時は難しさがあるんでしょうね。また、普段gitを使っていても自分が日常的に使わないコマンドについては全く知らない、なんてこともあるので、このようにlevelで網羅されているとそういった知らないコマンドの勉強にもなりそうです。

via Hacker News

カテゴリー
技術

1978年のチェスアプリSargonを現代に蘇らせるプロジェクト

billforsternz/retro-sargon は、Intel 8080/Zailog Z80 で1978年に書かれた Sargon というチェスプログラムを、x86 に移植するという個人プロジェクトです。

参考までに、こちらは1983年に発売されたCommodore 64版 Sargon 2 の画像。

Z80のエミュレーターで動かすのではなく、Z80ベースのプログラムをx86(32bit)に変換しています。

x86 に移植された Sargon は、Chess GUI にこのエンジンをセットすることで対戦できるということです。作者おすすめのTarrasch Chess GUI を使って対戦してみました。

チェスでは人間が遊んだりコンピューター同士の対戦を表示するためのGUI部分が規格化(UCI)されているのですね。エンジンとGUIを別々にいろいろな人が開発していて、組み合わせて対戦させたり、人間が遊んだりできる。

オリジナルのSargon では探索の深さが最大で6に決められていたそうですが、移植後は最大で20階層に、状況に応じて読みの深さを自動で調整するようにしたとのこと。CPUの速さや使えるメモリ量が、昔のコードそのままでもずっと強いプログラムに変化させたわけです。

作者の @billforsternz 氏は、8080→x86のコンバーターと、8080→Z80→x86のコンバーターの二つを作り、変換結果が等しくなることを確認もしているということ。オリジナルの8080のコードに対する不満点から、Z80 に変換したものを起点としたいようなことも書かれています。当時のCPUの解説の中ではNECのV20などにも言及されています。

Readme に書かれた詳細がとにかく細かく、作者のこだわりが感じられます。Sargon はアセンブラ的にもメモリ利用の点でも変換しやすい作りだということ。他の色々な8080/Z80のプログラムが同様に移行できるわけではないかもしれませんが、愛着のある昔のプログラムがある人は、趣味としてこういう遊び方もあるんですね。

via Hacker News