+++ /dev/null
-public class TTTServerSocket {
- // TTTServerSocket flags
- flag ReceiveRequest;
-
- flag MakeMove;
- flag SendError;
- flag SendBoard;
- flag SendDone;
-
- String request;
- int row, col;
-
- //Constructor
- public TTTServerSocket(){
- System.printString("Constructing TTTServerSocket....\n");
- }
-
- public int receive(Socket s)
- {
- byte b1[] = new byte[1024];
- s.read(b1);
- request = new String(b1);
- System.printString("request: ");
- System.printString(request);
- if (parseTransaction() == 1) {
- System.printString(request);
- return 1;
- }
- System.printString("Error receiving...\n");
- return 0;
- }
-
- // Parse request
- public int parseTransaction(){
- int start = request.indexOf('_');
- //System.printString("start parse");
- String s = request.subString(start+1);
- //System.printString("before checking the string");
-//_move:3:3
- if (s.startsWith("move")==true){
- //Get row
- int i1 = s.indexOf(':');
- String rowStr = new String(s.subString(i1+1, i1+2));
- row = Integer.parseInt(rowStr);
-
- //System.printString("row");
-
- //Get col
- String s2 = new String(s.subString(i1+2));
- int i2 = s2.indexOf(':');
- String colStr = new String(s2.subString(i2+1, i2+2));
- col = Integer.parseInt(colStr);
- return 1;
-
-
-
- }
- // Error transaction
- return -1;
- }
-
- public int getRow(){
- return row;
- }
- public int getCol(){
- return col;
- }
-
- public void sendBoardDisplay(Board theBoard, Socket s) {
- StringBuffer line1 = new StringBuffer("\n\n");
-
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 3; j++) {
- if (theBoard.board[i][j] == 1)
- line1.append("X");
- else if (theBoard.board[i][j] == 2)
- line1.append("O");
- else
- line1.append("-");
- }
- line1.append("\n");
- }
- String towrite = new String(line1);
- s.write(towrite.getBytes());
- return;
- }
-
- public void sendDone(int winner, Socket s) {
- StringBuffer line1 = new StringBuffer ("done_");
- if (winner == 0)
- line1.append("tie");
- else if (winner == 1)
- line1.append("player");
- else
- line1.append("computer");
-
- String towrite = new String(line1);
- s.write(towrite.getBytes());
- return;
- }
-
- public void sendError(Socket s) {
- StringBuffer line1 = new StringBuffer ("error_wrongmove");
-
- String towrite = new String(line1);
- s.write(towrite.getBytes());
- return;
- }
-}