Console client: Display cards of player for each hand. Display server messages.
This commit is contained in:
@@ -42,6 +42,14 @@ namespace pokerth_console
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PlayerInfo GetPlayerInfo(uint id)
|
||||||
|
{
|
||||||
|
lock (m_list)
|
||||||
|
{
|
||||||
|
return m_list[id];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public bool HasPlayer(uint id)
|
public bool HasPlayer(uint id)
|
||||||
{
|
{
|
||||||
lock (m_list)
|
lock (m_list)
|
||||||
|
|||||||
@@ -25,13 +25,14 @@ namespace pokerth_console
|
|||||||
{
|
{
|
||||||
class PokerTHData
|
class PokerTHData
|
||||||
{
|
{
|
||||||
public PokerTHData()
|
public PokerTHData(string name)
|
||||||
{
|
{
|
||||||
m_gameInfoList = new GameInfoList();
|
m_gameInfoList = new GameInfoList();
|
||||||
m_playerInfoList = new PlayerInfoList();
|
m_playerInfoList = new PlayerInfoList();
|
||||||
m_mutex = new Object();
|
m_mutex = new Object();
|
||||||
m_myPlayerId = 0;
|
m_myPlayerId = 0;
|
||||||
m_myGameId = 0;
|
m_myGameId = 0;
|
||||||
|
m_myName = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GameInfoList GameList
|
public GameInfoList GameList
|
||||||
@@ -50,6 +51,14 @@ namespace pokerth_console
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string MyName
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return m_myName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public uint MyPlayerId
|
public uint MyPlayerId
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -91,5 +100,6 @@ namespace pokerth_console
|
|||||||
private Object m_mutex;
|
private Object m_mutex;
|
||||||
private uint m_myPlayerId;
|
private uint m_myPlayerId;
|
||||||
private uint m_myGameId;
|
private uint m_myGameId;
|
||||||
|
private string m_myName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,11 +29,12 @@ namespace pokerth_console
|
|||||||
static int Main(string[] args)
|
static int Main(string[] args)
|
||||||
{
|
{
|
||||||
Settings settings = new Settings();
|
Settings settings = new Settings();
|
||||||
PokerTHData data = new PokerTHData();
|
PokerTHData data = new PokerTHData("Testuser1");
|
||||||
Client client = new Client(settings, data);
|
ConsoleCallback callback = new ConsoleCallback();
|
||||||
|
Client client = new Client(settings, data, callback);
|
||||||
client.Connect();
|
client.Connect();
|
||||||
client.Start();
|
client.Start();
|
||||||
Thread.Sleep(5000);
|
Thread.Sleep(2000);
|
||||||
Console.WriteLine("Open Games:");
|
Console.WriteLine("Open Games:");
|
||||||
Console.Write(data.GameList.ToString());
|
Console.Write(data.GameList.ToString());
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
@@ -41,7 +42,7 @@ namespace pokerth_console
|
|||||||
string input = Console.ReadLine();
|
string input = Console.ReadLine();
|
||||||
uint gameId = Convert.ToUInt32(input);
|
uint gameId = Convert.ToUInt32(input);
|
||||||
client.JoinGame(gameId);
|
client.JoinGame(gameId);
|
||||||
Thread.Sleep(5000000);
|
input = Console.ReadLine();
|
||||||
client.SetTerminateFlag();
|
client.SetTerminateFlag();
|
||||||
client.WaitTermination();
|
client.WaitTermination();
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -27,22 +27,23 @@ namespace pokerth_console
|
|||||||
{
|
{
|
||||||
class Client
|
class Client
|
||||||
{
|
{
|
||||||
public Client(Settings settings, PokerTHData data)
|
public Client(Settings settings, PokerTHData data, ICallback callback)
|
||||||
{
|
{
|
||||||
m_tcpClient = new TcpClient();
|
m_tcpClient = new TcpClient();
|
||||||
m_settings = settings;
|
m_settings = settings;
|
||||||
m_data = data;
|
m_data = data;
|
||||||
|
m_callback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Connect()
|
public void Connect()
|
||||||
{
|
{
|
||||||
// Connect to the server.
|
// Connect to the server.
|
||||||
// Try IPv6 first.
|
// Try IPv6 first.
|
||||||
IPAddress[] addresses = new IPAddress[2];
|
/*IPAddress[] addresses = new IPAddress[2];
|
||||||
addresses[0] = IPAddress.Parse(m_settings.ServerSettings.IPv6Address);
|
addresses[0] = IPAddress.Parse(m_settings.ServerSettings.IPv6Address);
|
||||||
addresses[1] = IPAddress.Parse(m_settings.ServerSettings.IPv4Address);
|
addresses[1] = IPAddress.Parse(m_settings.ServerSettings.IPv4Address);
|
||||||
m_tcpClient.Connect(addresses, m_settings.ServerSettings.Port);
|
m_tcpClient.Connect(addresses, m_settings.ServerSettings.Port);*/
|
||||||
//m_tcpClient.Connect("localhost", 7234);
|
m_tcpClient.Connect("localhost", 7234);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start()
|
public void Start()
|
||||||
@@ -71,7 +72,7 @@ namespace pokerth_console
|
|||||||
|
|
||||||
protected void StartReceiveThread()
|
protected void StartReceiveThread()
|
||||||
{
|
{
|
||||||
m_receiver = new ReceiverThread(m_tcpClient.GetStream(), m_sender, m_data);
|
m_receiver = new ReceiverThread(m_tcpClient.GetStream(), m_sender, m_data, m_callback);
|
||||||
m_receiver.Run();
|
m_receiver.Run();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,7 +87,7 @@ namespace pokerth_console
|
|||||||
NetPacket init = new NetPacketInit();
|
NetPacket init = new NetPacketInit();
|
||||||
init.Properties.Add(NetPacket.PropertyType.RequestedVersionMajor, "5");
|
init.Properties.Add(NetPacket.PropertyType.RequestedVersionMajor, "5");
|
||||||
init.Properties.Add(NetPacket.PropertyType.RequestedVersionMinor, "0");
|
init.Properties.Add(NetPacket.PropertyType.RequestedVersionMinor, "0");
|
||||||
init.Properties.Add(NetPacket.PropertyType.PlayerName, "Testuser1");
|
init.Properties.Add(NetPacket.PropertyType.PlayerName, m_data.MyName);
|
||||||
init.Properties.Add(NetPacket.PropertyType.PlayerPassword, "");
|
init.Properties.Add(NetPacket.PropertyType.PlayerPassword, "");
|
||||||
m_sender.Send(init);
|
m_sender.Send(init);
|
||||||
}
|
}
|
||||||
@@ -104,5 +105,6 @@ namespace pokerth_console
|
|||||||
private SenderThread m_sender;
|
private SenderThread m_sender;
|
||||||
private Settings m_settings;
|
private Settings m_settings;
|
||||||
private PokerTHData m_data;
|
private PokerTHData m_data;
|
||||||
|
private ICallback m_callback;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,10 +25,11 @@ namespace pokerth_console
|
|||||||
{
|
{
|
||||||
class NetParser : INetPacketVisitor
|
class NetParser : INetPacketVisitor
|
||||||
{
|
{
|
||||||
public NetParser(PokerTHData data, SenderThread sender)
|
public NetParser(PokerTHData data, SenderThread sender, ICallback callback)
|
||||||
{
|
{
|
||||||
m_data = data;
|
m_data = data;
|
||||||
m_sender = sender;
|
m_sender = sender;
|
||||||
|
m_callback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VisitInit(NetPacketInit p)
|
public void VisitInit(NetPacketInit p)
|
||||||
@@ -40,6 +41,7 @@ namespace pokerth_console
|
|||||||
{
|
{
|
||||||
m_data.MyPlayerId =
|
m_data.MyPlayerId =
|
||||||
Convert.ToUInt32(p.Properties[NetPacket.PropertyType.PlayerId]);
|
Convert.ToUInt32(p.Properties[NetPacket.PropertyType.PlayerId]);
|
||||||
|
m_callback.InitDone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VisitGameListNew(NetPacketGameListNew p)
|
public void VisitGameListNew(NetPacketGameListNew p)
|
||||||
@@ -86,6 +88,7 @@ namespace pokerth_console
|
|||||||
{
|
{
|
||||||
m_data.MyGameId =
|
m_data.MyGameId =
|
||||||
Convert.ToUInt32(p.Properties[NetPacket.PropertyType.GameId]);
|
Convert.ToUInt32(p.Properties[NetPacket.PropertyType.GameId]);
|
||||||
|
m_callback.JoinedGame(m_data.GameList.GetGameInfo(m_data.MyGameId).Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VisitStartEvent(NetPacketStartEvent p)
|
public void VisitStartEvent(NetPacketStartEvent p)
|
||||||
@@ -113,41 +116,53 @@ namespace pokerth_console
|
|||||||
|
|
||||||
public void VisitGameStart(NetPacketGameStart p)
|
public void VisitGameStart(NetPacketGameStart p)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
// Generate player list.
|
||||||
// TODO
|
List<string> players = new List<string>();
|
||||||
|
|
||||||
|
List<uint> slots = p.ListProperties[NetPacket.ListPropertyType.PropPlayerSlots].
|
||||||
|
ConvertAll<uint>(Convert.ToUInt32);
|
||||||
|
foreach (uint i in slots)
|
||||||
|
{
|
||||||
|
if (m_data.PlayerList.HasPlayer(i))
|
||||||
|
players.Add(m_data.PlayerList.GetPlayerInfo(i).Name);
|
||||||
|
else if (i == m_data.MyPlayerId)
|
||||||
|
players.Add(m_data.MyName);
|
||||||
|
else
|
||||||
|
players.Add(Convert.ToString(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
m_callback.GameStarted(players);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VisitHandStart(NetPacketHandStart p)
|
public void VisitHandStart(NetPacketHandStart p)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
m_callback.HandStarted(
|
||||||
// TODO
|
Convert.ToInt32(p.Properties[NetPacket.PropertyType.FirstCard]),
|
||||||
|
Convert.ToInt32(p.Properties[NetPacket.PropertyType.SecondCard]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VisitPlayersTurn(NetPacketPlayersTurn p)
|
public void VisitPlayersTurn(NetPacketPlayersTurn p)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VisitPlayersAction(NetPacketPlayersAction p)
|
public void VisitPlayersAction(NetPacketPlayersAction p)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
// TODO
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VisitPlayersActionDone(NetPacketPlayersActionDone p)
|
public void VisitPlayersActionDone(NetPacketPlayersActionDone p)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VisitPlayersActionRejected(NetPacketPlayersActionRejected p)
|
public void VisitPlayersActionRejected(NetPacketPlayersActionRejected p)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
private PokerTHData m_data;
|
private PokerTHData m_data;
|
||||||
private SenderThread m_sender;
|
private SenderThread m_sender;
|
||||||
|
private ICallback m_callback;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,14 +32,14 @@ namespace pokerth_console
|
|||||||
const uint MaxPacketSize = 268;
|
const uint MaxPacketSize = 268;
|
||||||
const uint MinPacketSize = 8;
|
const uint MinPacketSize = 8;
|
||||||
|
|
||||||
public ReceiverThread(NetworkStream stream, SenderThread sender, PokerTHData data)
|
public ReceiverThread(NetworkStream stream, SenderThread sender, PokerTHData data, ICallback callback)
|
||||||
: base(stream)
|
: base(stream)
|
||||||
{
|
{
|
||||||
m_recBuf = new byte[8192];
|
m_recBuf = new byte[8192];
|
||||||
m_recBufOffset = 0;
|
m_recBufOffset = 0;
|
||||||
m_packetList = new List<NetPacket>();
|
m_packetList = new List<NetPacket>();
|
||||||
m_sender = sender;
|
m_sender = sender;
|
||||||
m_parser = new NetParser(data, sender);
|
m_parser = new NetParser(data, sender, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Start()
|
protected override void Start()
|
||||||
|
|||||||
Reference in New Issue
Block a user