2003 | 08 | 09 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
2009 | 01 | 02 | 03 | 06 | 07 | 08 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
2009 | 01 | 02 | 03 | 06 | 07 | 08 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 |
2006-05-17
■[伺]ゴースト同士でじゃんけん

こういうのよく知らないけど、他ゴースト同士でじゃんけんできないかな?
……そういえば出来ない。正確に言えば、「紳士協定で片方が嘘をつかない」か、「手を暗号化して渡す→双方手を交換した後、復号鍵を渡す」といった方法でしか出来ない。第一、この方法でやると、
- 一方が手を出す
- その直後に相手が手を出す
という見え方になる。これでは、見ている側からすると「じゃんけん」に見えず、面白くない。これはいかん。
解決法だが、PLUGIN/2.0で「じゃんけんプラグイン・サーバ」を作るのがよかろう。話の都合上、プラグイン名は「janken」とする。
全体の流れ
- NOTIFY installedpluginで、じゃんけんプラグインがインストールされていることを確認
- 相手ゴーストにじゃんけんをする意思を伝える。
- 大根コミュで、第1引数「ジャンケン」、第2引数「エントリー募集」、第3引数で参加人数を通知
- 同時にジャンケンプラグインに、以下のタグを\e直前に入れることで通知:\![raiseplugin,janken,OnEntryStart,<参加人数>]
- 相手ゴーストは、ジャンケンに参加する意思を表明する
- 大根コミュで相手ゴーストに参加の意思を伝える。第1引数「ジャンケン」、第2引数「エントリー」で通知。
- 同時にじゃんけんプラグインに、以下のタグを\e直前に入れることで通知:\![raiseplugin,janken,OnEntryAdded]
- これ以後、じゃんけんの動議をしたゴーストは、同時にじゃんけんをしたいゴーストに参加意思の確認がすべて取れるまで大根コミュを繰り返す。この時、raisepluginタグは使わない。
- じゃんけんプラグインは、参加予定人数からraisepluginタグによるOnEntryAddedイベント通知があると、エントリー完了とみなす。一定時間以内にエントリー完了しない場合は、じゃんけんへのエントリーを破棄する。
- じゃんけんプラグインはエントリー完了したら、エントリーした全ゴーストにOnJankenBeginイベントを送る。このイベントで、ゴーストは「じゃーんけーん」に相当するトークをすること。
- OnJankenBeginイベント送信から1秒後、じゃんけんプラグインはOnJankenOpenイベントを送信する。このイベントで、ゴーストは「ぽん!」に相当するトークをすること。同時に、以下のタグでじゃんけんプラグインに自分の手を通知すること。:\![raiseplugin,janken,OnHandOpen,<「グー」「チョキ」「パー」のいずれか>]
- じゃんけんプラグインは、参加ゴースト全てからOnHandOpenイベントの通知があったら、勝敗の判定を行う。
- 引き分けだった場合、エントリーした全ゴーストにOnJankenContinueイベントを送る。Reference0から順に、「ゴーストの\0名<バイト値1>出した手」の形式で参加ゴースト全員の出した手を列挙する。OnJankenContinueイベントでゴーストは「あーいこーで」に相当するトークをすること。以後、OnJankenBegin送信後の動作と同じ。
- 勝敗が確定した場合、エントリーした全ゴーストにOnJankenFinishedイベントを送る。Reference0に「勝ち」「負け」、Reference1以降にOnJankenContinueと同じ形式で全員の出した手を列挙する。
……長い!長いよ!自分でも読み返すのが骨だよ!orz
まあいい、要件定義できただけでもよしとしよう。PLUGIN化華和梨でも作れば、普通にゴースト作るつもりで処理できそうだ。
■[伺]その為の台本コミュニケートです

他のゴーストを、こちらの辞書で喋らせることは出来マイカ。
ゴースト間コミュニケートを拡張(ゴースト間コミュニケートの上に構築)した規格である、台本コミュニケート規格を使うと良いと思います。この規格、ゴースト間コミュニケートに対応している本体なら動く(MATERIAはコミュニケートにBugがあって非推奨)上、受信に対応しているゴーストも多いはずです。
トラックバック - http://d.hatena.ne.jp/satos/20060517

じゃんけんを提案したものです。
始めはゴースト同士のコミュニケーションで誰でも実装できるものを考えていまして、ふと思いついたものなのですが、
いざ考えてみるとなかなか複雑で結果判定スクリプトだけでも悩んでいました(笑)
とりあえず提案だけしておこうかなと掲示板に書き込んだのです。
しかし言い出しっぺでそのまま放置するのもアレだと思い、
交信方法を(里里で色々と)模索していたのですが、そもそも俺はコミュニケートの概要を知らない(何せデペロパ歴2ヶ月
それで色々調べていたらここにたどり着いた次第です。
で、概要を読ませて頂きましたが(意味不明単語の多ッ!)
「じゃんけんプラグイン・サーバ」(プラグインって本体側だよね?)を立てなくてもよいと思います。
じゃんけんの勝敗の判断は各自ゴーストが自ら行なってしまえばいいのです。
とりあえず自身の勝敗を確認できれば良いかと。プラグインを入れてなくてもみんなできますしね。
ただ、スクリプトが非常に複雑になりそうなのが難点。
初心者(主に俺orz)にも判るように判りやすいテンプレを作らなければいけないと思う。
以上戯言でした
作ってみました。
http://legokichi0120.harisen.jp/janken.txt