このlessonでのポイント:
moveコマンドによる試合開始前の移動(v2のソースプログラム):
Clientクラスは,開始時の引数のチェックだけにし,新たにPlayerクラスを準備します.
Playerプログラムの説明:
行13-34:
クラス変数の定義,行13のDEBUGは,処理の流れを理解するために最初はtrueで実行してください.行35-99:
その後は,falseにしてください.
行22-34は,プレィヤの初期位置を 配列initial_posに設定しています.
配列の添字は,0からはじまる.
ここではプレィヤ番号(1〜11)と対応させるため,最初はダミーの要素にします.
通信に関係する部分を,connect,send,receiveの3つのメソッドに整理しました.
行100-114:
センタの位置から,ゲーム開始前の位置にホップ,ステップ,ジャンプの感じで移動します.
プログラムの実行:
ゲーム開始前の位置に移動をみて,サッカーフィールドにおける位置を確認してください.
最初(左,黄色チーム)と,後(右,赤色チーム)のチームの両方でconnectして下さい.
原点はフィールドの真中,
x軸は,ゴール方向でセンタから相手ゴールが正方向,
y軸の正方向は,x軸正方向にむいて右手です.
次に,移動していく途中でまで,see情報を表示します.
(see 0 ((goal r) 59.1 2) ((flag r t) 67.4 -27) ((flag r b) 69.4
31) ((flag p r t) 46.5 -22) ((flag p r c) 42.9 3) ((flag p r b) 48.4 27)
((ball) 7.4 20 0 0) ((player Nippon 5) 6.7 -12 0 0) ((player Nippon 6)
6.7 21 0 0) ((line r) 59.1 -90))
"see"で,see情報とhear情報の区別をします.
次の数字は,時刻を示します.今,ゲーム開始なので,'0'になっています.
次からが見えるオブジェトの名前と距離と方向などの情報です.
このlessonでは,"flag"と"line"を説明します.
manual Fig.31
実行リスト
プログラムリスト:
プログラム参考: