Well, it was a bit tricky to devise a fair, yet effective ejection mechanism for the framework. It is currently operational. Right now I was just finishing up some torture tests to ensure the correct operation.
As always you will have 2 minutes to communicate your moves to the game. Once these 2 minutes have expired, you will be immediatly sent a warning. This theoretically can appear anywhere in the protocol. It would be most likely to arrive at a point where the game expects input from you. So while you calculate your node starting positions keep a lookout for the warning message so you can adapt your approach to something faster.
As soon as the warning is sent (NOT when it was received) a second timer (that lasts about 30 seconds) is started. Once that second timer runs out, that's it you are disqualified, the server severs your socket.
There is no response needed to the warning message, it is there for your benefit.
I will upload a sample client (actually two) to demonstrate the protocol.
Some of the nicer features of the current version of the server are missing this time. I am working on them now. The endgame indication along with some of the nice graphical parts are not yet complete.
I intend to upload an alpha of the server before 6:00
Most connection related parts of the server are fully complete and operational.
I will send more emails as the server gets updated.
If two people originally put their nanomunchers at the same place, the server will accept this as valid moves and kill both munchers immediately.
The server does accept this as valid. No information about the other player is ever given to you.
If one person tries to put both of their nanomunchers on the same place, it is invalid and will be reported back to you as such.
Will there be some constraints on number of nodes and edges? In course page it says "There will be a bit more than 100 nodes in a 20 (x ranges from 0 to 19) by 10 (y ranges from 0 to 9) grid and some number of edges." Does that apply to server? By the way, I also want to make sure that the board start with (0,0) through (19,9) instead of (1,1) to (20,10).
The grid is Zero Based. The range is from (0,0) to (19,9)
How are the nodes numbered? (1:N) or (0:N-1)
The nodes are also Zero Based. The range is from 0 to (N - 1) where N is the number of nodes.
What if two nanomunchers both arrived same location with same priority?
If they are both owned by the same player, this would not occur. That player would have received an INVALID message stating it was a duplicate move.
If the arrival is the starting position, both nanomunchers will be removed, regardless of priority.
Otherwise the direction that brought the munchers together will be used to determine the victor.