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パケットを含むならばテトリミノを、それ以外はペントミノを
テトリミノのブロックの数の決定因子にしています。これも同様にバランスを考えてこのような条件にしています。

Clone this wiki locally