%ents; Instant Gaming XEP-xxxx: Instant Gaming <http://pidgin-games.sourceforge.net/xep/instant-gaming.html>." > ]>
Tic-tac-toe This document defines how to play a Tic-tac-toe game over XMPP &LEGALNOTICE; xxxx ProtoXEP Standards Track Standards Council XMPP Core XEP-xxxx Not yet assigned Torsten Grote Torsten.Grote(ät)fsfe.de Torsten.Grote(ät)jabber.fsfe.org 0.0.1 2009-03-14 tg

First Draft.

It is quite common to play games over IM networks. Since Tic-tac-toe is a well known game, XMPP needs a protocol to support it.

This protocol should provide all means to play a regular game of Tic-tac-toe over XMPP.

Tic-tac-toe is also one of the simplest games and played "just for fun". Therefore no validation support is needed. The typical duration is below one minute and the matches are not of great interest for non-players. Therefore spectators do not have to be supported as well. That is why this document only describes the protocol to play a Tic-tac-toe as a One-to-One match without support for game saving and resuming.

An entity implementing this protocol MUST also support &xep-game; and answer to disco requests accordingly including both the Instant Gaming and the game &FEATURE; elements in the response.

... ... ]]>

When inviting to a game of Tic-tac-toe, an entity SHOULD use &xep0004; to specify game options in the REQUIRED &GAME; element. Possible options are "role" (of the inviting player), "rows" (height), "cols" (width) and "strike" (number of marks in a row needed to win). If these options are missing, all but role default to '3' and role defaults to 'x'. An implementation MUST be able to handle the default values. Everything beyond that is OPTIONAL.

juliet@capulet.com-romeo@montague.net-tictactoe-1591-02-23T11:36:25Z-4321 Hello Juliet, would you like to play a little game? x 3 3 3 ]]>

When sending an invitation of type "renew", the role option MUST be changed to the opposite of the role the inviting player had in the previous match with that match ID. So both players essentially switch their roles. All other options MUST stay the same.

During the game, players change in turn, each of them sending one move at a time. The player with the role 'x' makes the first move. A game move is represented as a &MESSAGE; stanza addressed to the full JID of the other player. It MUST have a &THREAD; child element which specifies the match ID. Furthermore, the &MESSAGE; stanza contains a &TURN; element which in turn contains exactly one &MOVE; element qualified by 'http://jabber.org/protocol/games/tictactoe'. It MUST possess these attributes:

Name Type Description
'id' REQUIRED The number of the move. First move is 1.
'row' REQUIRED The horizontal position of the mark.
'col' REQUIRED The vertical position of the mark.
juliet@capulet.com-romeo@montague.net-tictactoe-1591-02-23T11:36:25Z-4321 juliet@capulet.com-romeo@montague.net-tictactoe-1591-02-23T11:36:25Z-4321 ]]>

Notifying the players whether they have won or lost is in responsibility of the game client. The game is considered terminated when the board is full, i.e. nine moves have been made. For further termination conditions see the appropriate section of &xep-game;.

The author is not aware of any security issues introduced by this protocol extension.

This document requires no interaction with &IANA;.

The ®ISTRAR; shall include 'http://jabber.org/protocol/games/tictactoe' in its registry of protocols.

]]>