|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjp.ac.fun.osawalab.tileworld.client.Client
public abstract class Client
クライアントの抽象クラスです。 プレイヤー、ビューアーに共通するコマンドについて、 送信するメソッドの定義が行われています。
PlayerClient
,
ViewerClient
コンストラクタの概要 | |
---|---|
Client(String host,
int port,
String id,
int messagePort)
サーバーのhost、portと、クライアントID、メッセージを受けるportを指定して、 クライアントのインスタンスを生成します。 |
メソッドの概要 | |
---|---|
String[] |
getAgentList()
コマンド:「AGENTLIST」を送信し、エージェントのリストを取得します。 |
String[] |
getAgentList(String playerID)
コマンド:「AGENTLIST $PLAYER_ID」を送信し、 指定されたプレイヤーについてのエージェントリストIDを取得します。 |
protected String |
getMessage()
クロックなどのサーバーからのメッセージを取得します。 |
String[] |
getPlayerList()
コマンド:「PLAYERLIST」を送信し、プレイヤーのリストを取得します。 |
protected String |
getReply()
サーバーにコマンドを送信した後、それに対する応答を取得します。 |
int |
getScore(String agentID)
コマンド:「SCORE $AGENT_ID」を送信し、 指定されたエージェントのスコアを返します。 |
String[] |
getScoreList()
コマンド:「SCORELIST」を送信し、スコアのリストを返します。 |
String[] |
getScoreList(String playerID)
コマンド:「SCORELIST」を送信し、 指定されたプレイヤーに関連づけられたエージェント達についての、 スコアのリストを返します。 |
char[][] |
getWorld()
コマンド:「WORLD」を送信し、 世界の状態を char 型の2次元配列として取得します。 |
void |
login(String clientID,
int messagePort)
コマンド:「LOGIN $CLIENT_ID $PORT」 |
void |
logout()
コマンド:「LOGOUT」を送信し,ログアウトを行います. |
protected abstract void |
onMessageReceived(String message)
メッセージを受信したとき、呼ばれるメソッドです。 |
protected abstract void |
onTicked(int clock)
時刻が一つ進んだときに呼ばれるメソッドです。 |
void |
printWorld(PrintStream out,
char[][] world)
char型2次元配列を指定された PrintStream に出力します。 |
void |
run()
Clientスレッドのメインループです。 |
protected void |
sendQuery(String query)
要求コマンドを送信します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public Client(String host, int port, String id, int messagePort)
host
- Tileworldサーバーのhostname。port
- Tileworldサーバーのport。id
- ビューアークライアントのID。messagePort
- サーバーからのメッセージを受けるport。メソッドの詳細 |
---|
public String[] getAgentList()
null
を返します。
null
。public String[] getAgentList(String playerID)
playerID
で
置き換えられます。$PLAYER_IDに
関連づけられたエージェントのリストを取得します。
エージェントIDが一つ以上得られた場合、 エージェントIDを要素にもつ文字列の配列
長さは、得られたエージェントIDの数と等しい)を返します。
そうでない場合はnull
を返します。
playerID
- 取得したいエージェントリストをもつ プレイヤーのID。
null
。public String[] getPlayerList()
null
を返します。
null
。public int getScore(String agentID)
agentID
- スコアを取得するエージェントのID。
public String[] getScoreList()
{エージェント1のID, エージェント1のスコア, エージェント2のID, エージェント2のスコア,...,エージェントNのID, エージェントNのスコア}
のようになっています。
エージェントIDが一つも得られなかった場合はnull
を返します。
null
。getScoreList(String)
public String[] getScoreList(String playerID)
{エージェント1のID, エージェント1のスコア, エージェント2のID, エージェント2のスコア,...,エージェントNのID, エージェントNのスコア}
のようになっています。
エージェントIDが一つも得られなかった場合はnull
を返します。
スコアリストを取得したいプレイヤーのID。
-
null
。getScoreList()
public char[][] getWorld()
char
型の2次元配列として取得します。
char
型の2次元配列。
もし、取得に失敗した場合はnull
。public void login(String clientID, int messagePort) throws jp.ac.fun.osawalab.tileworld.client.AlreadyExistsException
clientID
- ログインするプレイヤーIDまたはビューアーID。messagePort
- クロックなどのサーバーからのメッセージを受けるポート。
jp.ac.fun.osawalab.tileworld.client.AlreadyExistsException
public void logout()
public void printWorld(PrintStream out, char[][] world)
PrintStream
に出力します。
out
- 出力先のPrintStream
。world
- 出力する2次元配列。public void run()
onMessageReceived(String)
や、
onTicked(int)
を呼び出します。
Runnable
内の run
Runnable.run()
protected String getMessage()
ClientSocket.getMessage()
によって取得されます。
protected String getReply()
ClientSocket.getReply()
によって取得されます。
protected abstract void onMessageReceived(String message)
message
- 受信したメッセージ。protected abstract void onTicked(int clock)
clock
- 進んだ後の時刻です。protected void sendQuery(String query)
ClientSocket.sendQuery(String)
が処理を行います。
query
- 送信するコマンド。
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |