2005-12-03 Richard D. Worth <richard@theworths.org>
authorRichard Worth <richard@theworths.org>
Sun, 4 Dec 2005 03:02:03 +0000 (03:02 +0000)
committerRichard Worth <richard@theworths.org>
Sun, 4 Dec 2005 03:02:03 +0000 (03:02 +0000)
        * PROTOCOL: Add RETRACT, DECLINE. Add game identifier for all game
        commands.

        * TODO: Add RETRACT, DECLINE, notices.

ChangeLog
PROTOCOL
TODO

index 3d2bc1d2b7452a216ab47ccc5e78b898d3f3f5ed..ebf09f7b5032d2692aa6a46cc72bee2c374f93b8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-12-03  Richard D. Worth  <richard@theworths.org>
+
+       * PROTOCOL: Add RETRACT, DECLINE. Add game identifier for all game
+       commands.
+       
+       * TODO: Add RETRACT, DECLINE, notices.
+
 2005-12-03  Richard D. Worth  <richard@theworths.org>
 
        * PROTOCOL: Add underscores to error codes. Add STATISTICS
index be0f04d04a6b2a5640215c4622d366c672145c9b..4fcec635a468d92e7d491d81c35467ecaa0b8663 100644 (file)
--- a/PROTOCOL
+++ b/PROTOCOL
@@ -149,17 +149,40 @@ Document Conventions
 
        ACCEPT
 
-       Possible errors: NO_NAME_SET
+       Possible errors: NO_USER, NO_NAME_SET
+
+    1.3.3. Retracting an invitiation
+
+       RETRACT <username>
+
+       ->
+
+       RETRACT
+
+       Possible errors: NO_USER, NO_NAME_SET
+
+    1.3.3. Declining an invitation
+
+       DECLINE <username>
+
+       ->
+
+       DECLINE
+
+       Possible errors: NO_USER, NO_NAME_SET
 
 1.4. In-game commands
 
+    <game> is a game id generated by the server and first returned in
+    NOTICE NEWGAME
+
     1.4.1. Get the game contents
     
-       SHOW
+       SHOW <game>
     
        ->
     
-       SHOW <game-board>
+       SHOW <game> <game-board>
     
        <game-board> is a quoted multi-line string containing an
        diagram of the tic-tac-toe board, which is a 3x3 array of
@@ -173,28 +196,28 @@ Document Conventions
     
        For example:
     
-       SHOW "
+       SHOW <game> "
        _|X|O 
         _|X|_
         X|O|O"
     
-       Possible errors: NOT_IN_GAME, NO_NAME_SET
+       Possible errors: NO_NAME_SET, NO_GAME, NOT_IN_GAME
     
     1.4.2. Part
     
-       PART
+       PART <game>
     
        ->
     
        PART
     
-       Departs the current game
+       Departs the specified game
 
-       Possible errors: NOT_IN_GAME, NO_NAME_SET
+       Possible errors: NO_NAME_SET, NO_GAME, NOT_IN_GAME
     
     1.4.3. Making a move
 
-       MOVE <number>
+       MOVE <game> <number>
     
        ->
     
@@ -207,7 +230,8 @@ Document Conventions
        3|4|5
        6|7|8
     
-       Possible errors: NOT_IN_GAME, NOT_YOUR_MOVE, NOT_GRID, NO_NAME_SET
+       Possible errors: NO_NAME_SET, NO_GAME, NOT_IN_GAME,
+       NOT_YOUR_MOVE, NOT_GRID
     
 2. Asynchronous notification.  
 
@@ -235,14 +259,36 @@ Document Conventions
        NOTICE QUIT <username>
     
     2.1.3. Game invitation
+
+       2.1.3.1. Invitation is made
+
+               NOTICE INVITE <username1> <username2>
+
+       2.1.3.2. Invitation is accepted
+
+               NOTICE ACCEPT <username2> <username1>
+
+       2.1.3.3. Invitation is retracted
+
+               NOTICE RETRACT <username1> <username2>
+
+       2.1.3.4. Invitation is declined
+
+               NOTICE DECLINE <username2> <username1>
+
+       The first username listed is the one performing the action.
+
+    2.1.4. New games
+
+       NOTICE NEWGAME <game> <username> <username>
     
-       NOTICE INVITE <username>
-    
-    2.1.4. Terminated games
+       The first username listed will go first.
+
+    2.1.5. Terminated games
     
        NOTICE DISPOSE <game>
     
-    2.1.5. Message
+    2.1.6. Message
 
        NOTICE MESSAGE <username> <text>
 
@@ -251,19 +297,16 @@ Document Conventions
 2.2. Game notices
 
     These notices are sent to all players and watchers in
-    the affected game
+    the affected game.
 
-    2.2.1. Global game notices
-
-       2.2.1.1. New game begins
+    <game> is a game id generated by the server and first returned in
+    NOTICE NEWGAME
 
-           NOTICE NEWGAME <username> <username>
-
-           The first username listed will go first
+    2.2.1. Global game notices
 
-       2.2.1.2. Game over, and winner
+       2.2.1.1. Game over, and winner
 
-           NOTICE GAMEOVER <outcome> <username>
+           NOTICE GAMEOVER <game> <outcome> <username>
 
            <outcome> is either WON in which case <username> indicates
            the winner or CATSGAME in which case <username> is "".
@@ -272,7 +315,7 @@ Document Conventions
 
        2.2.2.1. Move
        
-           NOTICE MOVE <username> <number>
+           NOTICE MOVE <game> <username> <number>
 
 3. Errors
 
diff --git a/TODO b/TODO
index f7fe04b16eed3e9e4b48918776271d7a736305c4..0aaf8818a8d67e1c00d8152356716aee0b5527c5 100644 (file)
--- a/TODO
+++ b/TODO
@@ -16,6 +16,8 @@ S C
     1.3. Game management commands
     1.3.1. INVITE
     1.3.2. ACCEPT
+    1.3.3. RETRACT
+    1.3.4. DECLINE
     1.4. In-game commands
     1.4.1. SHOW
     1.4.2. PART
@@ -24,33 +26,37 @@ S C
     2.1. Global notices
 ✓   2.1.1. NOTICE USER <username>
 ✓   2.1.2. NOTICE QUIT <username>
-    2.1.3. NOTICE INVITE <username>
-    2.1.4. NOTICE DISPOSE <game>
-✓   2.1.5. NOTICE MESSAGE <username> <text>
+    2.1.3. Game Invitation
+    2.1.3.1. NOTICE INVITE <username1> <username2>
+    2.1.3.2. NOTICE ACCEPT <usernmae2> <username1>
+    2.1.3.3. NOTICE RETRACT <username1> <username2>
+    2.1.3.4. NOTICE DECLINE <username2> <username1>
+    2.1.4. NOTICE NEWGAME <game> <username> <username>
+    2.1.5. NOTICE DISPOSE <game>
+✓   2.1.6. NOTICE MESSAGE <username> <text>
     2.2. Game notices
     2.2.1. Global game notices
-    2.2.1.1. NOTICE NEWGAME <username> <username>
-    2.2.1.2. NOTICE GAMEOVER <outcome> <username>
+    2.2.1.1. NOTICE GAMEOVER <game> <outcome> <username>
     2.2.2. Move notices
-    2.2.2.1. NOTICE MOVE <username> <number>
+    2.2.2.1. NOTICE MOVE <game> <username> <number>
     3. Errors
     3.1. Connection setup errors
-✓   3.1.1. ERROR NONAMESET
-✓   3.1.2. ERROR INVALIDNAME
+✓   3.1.1. ERROR NO_NAME_SET
+✓   3.1.2. ERROR INVALID_NAME
     3.2. Command format errors
     3.2.1. ERROR COMMAND
 ✓   3.2.2. ERROR SYNTAX
-    3.2.3. ERROR NOTNUMBER
-    3.2.4. ERROR NOTGRID
+    3.2.3. ERROR NOT_NUMBER
+    3.2.4. ERROR NOT_GRID
     3.3. Global command errors.
     3.4. Game management errors.
-    3.4.1. ERROR NOGAME
+    3.4.1. ERROR NO_GAME
     3.5. User information errors
-    3.5.1. ERROR NOUSER
+    3.5.1. ERROR NO_USER
     3.6. In-game errors
     3.6.1. Global game errors
-    3.6.1.1. ERROR NOTINGAME
-    3.6.1.2. ERROR NOTPLAYING
+    3.6.1.1. ERROR NOT_IN_GAME
+    3.6.1.2. ERROR NOT_PLAYING
     3.6.2. Moving errors 
-    3.6.2.1. ERROR NOTYOURTURN
+    3.6.2.1. ERROR NOT_YOUR_TURN