Skip to content
SYA-KE edited this page May 15, 2013 · 10 revisions

##ミノの形どりの手順

コード

jp.ac.kansai_u.kutc.firefly.packetArt.playing.PlayForm

private void generateNextBlockFromPacket()
に記述されています。

ミノの形づくりの流れ

*パケットを一個、ロードします。
デバイスからロード・ファイルからロードに対応しています。パケット不足を極力防ぐため、
ある程度の数のパケットをプログラムの中で保持しています。次に、
*IPv4かつTCPパケットならば、TCPのシーケンス番号とチェックサム値を
*IPv4かつUDPパケットならば、UDPの送信元ポート番号と宛先ポート番号を
*IPv4でありながらTCPでもUDPでもない場合は、IPv4のIPIDシーケンス番号とチェックサム値を
*IPv6かつTCPパケットならばTCPのシーケンス番号とフラグフィールドの値を
*IPv6かつUDPパケットならばUDPのチェックサム値と宛先ポート番号を
*IPv6でありながらTCPでもUDPでもない場合は、IPv6のフローラベルとデータペイロード長を
*IPv4でもIPv6でもない場合は、そのパケットそのもののキャプチャ時のサイズとミリ単位の時刻を
テトリミノの形の決定因子にしています。このように複雑なのは、
テトリミノの形が偏りすぎるのを防ぐためです。次に、
テトリミノ(4)とペントミノ(5)の両方がゲームに登場する設定の場合は
*IPv4パケットを含むならばテトリミノを、それ以外はペントミノを
テトリミノのブロックの数の決定因子にしています。これも同様にバランスを考えてこのような条件にしています。

ミノブロックの色どりの流れ

HSBのColor(H,S,B)を使用。

*Hは変動で、ミノの持つパケットのチェックサムなどのパケットサイズを基軸からの回転量にした。
ミノ毎に色分けをするため。紛らわしい色の重複を避けている。
*Sは固定で、1.0にした。鮮やかなのがすき。
*Bは変動で、ミノの持つパケットの最上階のレイヤが、OSI参照モデルにおいて、低いほど暗い色になる。

オプションで設定することでミノに表示される文字

*TCP over IPv4 => 黄色のT
*TCP over IPv6 => 青色のT
*TCP over other => 赤色のT
*UDP over IPv4 => 緑色のU
*UDP over IPv6 => 青色のU
*UDP over other => 赤色のU
*ICMP over PPP => シアン色のI
*ICMP over other => 白色のI
*IPv6 over Ethernet => 赤色の6
*IPv6 over PPP => 青色の6
*IPv6 over other => 白色の6
*IPv4 over Ethernet => マゼンタ色の4
*IPv4 over PPP => 青色の4
*IPv4 over other => 白色の4
*L2TP => 朱色のL
*PPP => 朱色のP
*ARP => 朱色のA
*Ethernet => 朱色のE
*OTHER => 朱色の!