|
2007/11/23(Fri) 04:16:37 編集(投稿者)
多人数が参加でき、ある程度複雑で、見た目に楽しいもの、 というのはいくつか考えていたネタがあります。
その中から一つ。 面白そうといってくれる方がいるならいいんですが。 ------------------------------------------------ あるところに芋虫君がいました。何匹いるかはわかりません。 この芋虫君は、常に食べてないと死んでしまうかわいそうな芋虫です。 足元には一見無限に広がるかのような、ハッパが広がっています。 芋虫君は正方形をしている変わった芋虫です。(芋虫君の一辺を1イモムシとします。) 芋虫君は、ハッパを食べながら移動していて、毎分1平方イモムシのハッパを食べ進まないと死んでしまいます。 食べた後のハッパは、スジだらけで、食べられません。 他の芋虫君が食べたハッパももちろん食べられません。 芋虫君はあまり目が良くないので、自分を中心に前後3イモムシ分、7x7イモムシ分の世界しか見えません。 また、大変か弱い虫なので、ジャンプもできませんし、他の芋虫にぶつかったら死んでしまいます。
このハッパの世界には何匹か芋虫がいます。 途中で増えるかもしれません。 ハッパは再生するかもしれません。
あなたは一匹の芋虫君です。 あなたの得られる毎分7x7イモムシ分の情報から、 なるべく長く生きるためのアルゴリズムを考えてください。 ------------------------------------------------
こんな感じの多人数で参加できるプログラミングの競技なんですが、 どうでしょう?
インタフェースと列挙型は以下の感じで。
interface IWorm { direction GetNextDirection( leafstate[] world ); //worldは要素7x7=49個の配列 }
enum leafstate { leaf, me, otherworm, hole }
enum direction { forward, right, left }
やってみようかなと思ってくれる方がいるなら、 世界とイモムシを管理するサーバー(?)プログラムは私で用意出来ると思いますので、 インタフェースを実装したクラス一つで参加できます。
たぶん、眺めてると面白いと思うんですが。
本当はイモムシプロトコルを作ってサーバー/クライアントで実装するつもりでした。 擬似コード作って淘汰されたイモムシアルゴリズムで交配するとか考えてたんですが、 時間と能力に限界があって。
|