2010年2月12日金曜日

混戦避けっす

メタコマースはプリムオーブンの上にリスティングされたっす。
「最新アイテム」のところなんっすけどね。
ちょっと運が良かったっす。
どうもぺんぎんっす( ◎v◎ )


say・listenを使ったやりとりで、混戦避けって皆さんどうやってるんっすかね?
「うっかり他のをlistenで拾っちゃった」っていうのをナシにしたいわけっす。
チャンネルを動かすっていうモノにしか遭遇したことがないんっすけど、
それだけで十分なんっすかね?

ちょっと想像してみてくださいっす。
こんなオブジェクトっす
・タッチすると、「チャンネル」と「メッセージ」が指定される(オブジェクトがSay)
・アバターが指定された「チャンネル」と「メッセージ」でSayすると反応する
っていう簡単なものっす。
どんな反応するかは関係ないっすから、テキトーに想像してくださいっす。

こんなケースはどうっすかね?
[上記のオブジェクトが複数ある(Sayが届く範囲にっすね)]っていう場合だと、
チャンネルをランダムに変えたとしてもメッセージが同じだと、
予期しないことが起こる確率はゼロじゃないっすね。
状況としてはアバターが複数のオブジェクトにタッチしたときに起こるわけっす。


さーて、こんなとき、皆さんがどうしてるのか興味あるっす。
とりあえず自分の方法を書いておくっす。
[チャンネル]
 これはテキトーで良いっす。
[メッセージ]
 1.オブジェクトは
  p = f(メッセージ, オブジェクトのUUID)
  となるpを作ってSay。
  p:送るメッセージ
  f:変換というか、生成する関数
 2.アバターはpを指定チャンネルでSay
 3.オブジェクトは
  f-1(p)を実行して、メッセージ、オブジェクトのUUIDを確認。
   →オブジェクトのUUIDが違えば「自分じゃない」と判断して終了っす

fは難しいものを組むまでもないと思うっす。
排他的論理和とかでテキトーにいじれば十分っすよ。
そもそも暗号でなくても良いんっすけど、あれっすよ、あれ。
気分ってやつっす。



C#登場に向けてユーティリティとして組んでも面白そうっすね。

0 件のコメント:

コメントを投稿

Free Avatar