muehle.player
Class NetPlayer

java.lang.Object
  extended by muehle.player.Player
      extended by muehle.player.NetPlayer
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
NetClientPlayer, NetServerPlayer

public class NetPlayer
extends Player
implements java.lang.Runnable

Diese Klasse implementiert den Netzwerk-Serverspieler, der, wenn er zum Zug aufgefordert wird, auf eine TCP-Antowrt wartet, und den entsprechenden Zug ausführt.

Since:
28.04.2004
Version:
2.03
Author:
Bastian Späth, Florian Lemmerich

Field Summary
protected  int destination
          speichert das Ziel
protected  int drop
          speichert den Drop
protected  java.io.BufferedReader input
          Inputstream
protected  java.io.PrintStream output
          Outputstream
protected  int port
          Port, auf dem gelauscht werden soll
protected  java.lang.Thread rcvThread
           
protected  int source
          speichert den Ursprung
protected  muehle.gui.StatusPanel statusPanel
          Statuspanel für Usertalk und Meldungen
 
Fields inherited from class muehle.player.Player
actions, clip, gestoppt, initStones, name, numberOfStones, opponent, play, s, stopSleeping, time
 
Constructor Summary
protected NetPlayer(java.lang.String name, Stone s, int port, muehle.thinking.Heuristic evalHeuristic)
           
protected NetPlayer(java.lang.String name, Stone s, int port, java.lang.String filenameOfEvalHeuristic)
          Der Konstruktor erstellt den NetServerPlayer mit angegebenem Namen und Stein und setzt den Port, an dem der Server auf einen anderen Computer warten soll
 
Method Summary
 boolean acceptDraw(Playground p)
           
 int connect()
          erzeugt einen Server-Socket auf dem gespeichertet Port, horcht an diesem, wartet bis ein Client sich verbindet und tauscht Namen der Spieler aus
 Action deleteStone(Playground p)
          wartet, wenn eine Verbindung besteht, auf eine Nachricht des entfernten Computers via TCP und führt den empfangenen Schmeiss-Zug aus.
 void disconnect()
          beendet die Verbindung.
 Player getClone()
          Diese Methode clont den NetServer-Spieler, indem ein neuer Spieler gleichen Namens und gleichen Steines mit gleichem Port erstellt wird und die Steinanzahl entsprechend gesetzt wird.
 void getStatusPanel(muehle.gui.StatusPanel sp)
           
 void getThread(java.lang.Thread play)
           
 Action makeMove(Playground p)
          Diese Methode wartet, wenn eine Verbindung besteht, auf eine Nachricht des entfernten Computers via TCP und führt den empfangenen Zug aus.
 void notice(java.lang.String note)
          sendet eine Nachricht an den Spieler über TCP Nachrichten sind: Actions: Z,x,y,z bzw.
 void run()
          Diese Thread-Run-Methode wartet ständig auf Nachrichten der entfernten Applikation
 void setPort(int port)
          Setzt den Port, an dem der Server horchen soll
 
Methods inherited from class muehle.player.Player
appendLastAction, calcSituationValue, canJump, canSet, clearFeatures, decrementInitStones, decrementStones, flipSound, getAllLastActions, getDeleteAction, getDepthToThink, getEvalHeuristic, getLastAction, getMoveAction, getName, getNumberOfInitStones, getNumberOfStones, getOpponent, getProposalAction, getProposalDrop, getSetAction, getSituationValue, getStone, getTimeToThink, getTimeUsedByPlayer, getType, hasLostByStones, incrementInitStones, incrementStones, informOpponent, isUseTimeToBreak, learningPhase, pressedAt, receiveMsg, releasedAt, reset, saveFeatures, setAudio, setDepthToThink, setHost, setName, setNumberOfInitStones, setNumberOfStones, setOpponent, setStone, setTimeToThink, setUseTimeToBreak, setVerbose, softSleeping, soundPlayback, stopGameThread, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

destination

protected int destination
speichert das Ziel


source

protected int source
speichert den Ursprung


drop

protected int drop
speichert den Drop


port

protected int port
Port, auf dem gelauscht werden soll


input

protected java.io.BufferedReader input
Inputstream


output

protected java.io.PrintStream output
Outputstream


statusPanel

protected muehle.gui.StatusPanel statusPanel
Statuspanel für Usertalk und Meldungen


rcvThread

protected java.lang.Thread rcvThread
Constructor Detail

NetPlayer

protected NetPlayer(java.lang.String name,
                    Stone s,
                    int port,
                    java.lang.String filenameOfEvalHeuristic)
Der Konstruktor erstellt den NetServerPlayer mit angegebenem Namen und Stein und setzt den Port, an dem der Server auf einen anderen Computer warten soll

Parameters:
name - Spielername
s - Stein
port - Port
Since:
20.04.2004

NetPlayer

protected NetPlayer(java.lang.String name,
                    Stone s,
                    int port,
                    muehle.thinking.Heuristic evalHeuristic)
Method Detail

getStatusPanel

public void getStatusPanel(muehle.gui.StatusPanel sp)
Overrides:
getStatusPanel in class Player

getThread

public void getThread(java.lang.Thread play)
Overrides:
getThread in class Player

makeMove

public Action makeMove(Playground p)
Diese Methode wartet, wenn eine Verbindung besteht, auf eine Nachricht des entfernten Computers via TCP und führt den empfangenen Zug aus.

Overrides:
makeMove in class Player
Parameters:
p - Playground auf dem der Zug ausgeführt werden soll
Returns:
TODO
Since:
20.04.2004

deleteStone

public Action deleteStone(Playground p)
wartet, wenn eine Verbindung besteht, auf eine Nachricht des entfernten Computers via TCP und führt den empfangenen Schmeiss-Zug aus.

Overrides:
deleteStone in class Player
Parameters:
p - Playground auf dem der Schmeiss-Zug ausgeführt werden soll
Returns:
TODO
Since:
20.04.2004

acceptDraw

public boolean acceptDraw(Playground p)
Overrides:
acceptDraw in class Player

setPort

public void setPort(int port)
Setzt den Port, an dem der Server horchen soll

Overrides:
setPort in class Player
Parameters:
port - Port
Since:
20.04.2004

run

public void run()
Diese Thread-Run-Methode wartet ständig auf Nachrichten der entfernten Applikation

Specified by:
run in interface java.lang.Runnable

connect

public int connect()
erzeugt einen Server-Socket auf dem gespeichertet Port, horcht an diesem, wartet bis ein Client sich verbindet und tauscht Namen der Spieler aus

Overrides:
connect in class Player
Returns:
1 für verbunden, 0 für nicht verbunden
Since:
20.04.2004

disconnect

public void disconnect()
beendet die Verbindung. Wenn Verbindung noch besteht, wird an den Client ein Quit geschickt und der Server geschlossen. Wenn der Client bereits die Verbindung beendet hat wird sofort der Server geschlossen.

Overrides:
disconnect in class Player
Since:
20.04.2004

notice

public void notice(java.lang.String note)
sendet eine Nachricht an den Spieler über TCP Nachrichten sind: Actions: Z,x,y,z bzw. Z,x,y,z,X,Y,Z (die aus den toNetString-Methoden der Actions entstehen) Messages: M,Das ist die Nachricht Beenden: Quit

Overrides:
notice in class Player
Parameters:
note - Nachricht

getClone

public Player getClone()
Diese Methode clont den NetServer-Spieler, indem ein neuer Spieler gleichen Namens und gleichen Steines mit gleichem Port erstellt wird und die Steinanzahl entsprechend gesetzt wird.

Overrides:
getClone in class Player
Returns:
geclonter NetServer-Spieler
Since:
20.04.2004