yyGrams/yyRaptor

        yyRaptor MID reso

Play yyRaptor™ in a continuing online tournament of troubleshooting skill
(no registration needed)

Differences from the yyGrams™ puzzle
Protocol
Exchanges
Glossary

Differences from the puzzle

For the game, not all there-lists are given immediately (as a puzzle) but are submitted by contending yyPlayers to a Sphinx who does the substitutions (valuations) and reports outcomes:

The game is self-adjusting as to difficulty. Make your yyGram too difficult, and nobody will play. Simpler games might well have a players limit unless the Sphinx is automated, so that responses can be timely given and beginners who were left extra may watch a lively exchange and learn quicker.

The gnoble experienced yyPlayers and yySphinxes gladly play or referee at levels below their own skill for the sake of passing their knowledge—and, yes, their skills—to those who are, in time, to replace them.

Strategy: yyPlayers may include any number of there-lists in a query. Querying on several there-lists is a bravura move. Since all players see the information as it comes, you are undertaking to make good use of it faster.

Gaming the Game: Bragging rights on a fixed fight, such as when a Sphinx communicates the answer yyGram of a game under the table to a confederate, are a poison on the pillow, once a person finally turns honest. Either be prepared to remain dishonest forever or heed the poison pillow warning.



Protocol

This is the protocol for comporting yourself in the yyGrams™ Lists over Twitter or some online playing engine. Among the elements of a game session are

an alphabet — letters that individually stand for values. Each letter is a separate name. Case doesn't matter. Lowercase is recommended for reading ease; playing engines may slam names to lowercase. In a puzzle, the alphabet may be just all the names seen in the there-lists.

No whitespace is needed between ><. The symbol "alphabet" is case-insensitive and is to consist of single-letter names, commas optional. Tags and message content are all case-insensitive.

Likewise, no whitespace is required after the colon following a tag name.

A live range — a number or a range saying how many names from the alphabet might be live (active; making a difference) in the solution yygram.

A range makes for a more challenging game. If none is given it is presumed to be not a range but the count of unique names in the solution yyGram™—that is, a name counts as one regardless how many times it appears in the solution.

S, the stuck simple option — a yygram is simple if it always gives the same outcome to every there-list: yang—( )—every time, or yin—     —every time.

When the stuck simple option is in play, it is just a possibility, of course, not certain.

Z, the hi-Z option — the yygram might not be dependable for always giving the same outcome to a particular there-list, giving random-like or arbitrary outcomes.

When the hi-Z option is in play, it is just a possibility, of course, not certain.

It is considered bad protocol for a Sphinx to obscure a Z solution for more than two reports on a submitted there-list. That is, players are to conclude that a solution is Z-free if the first three results on any particular there-list are identical.

After a yyGram answer has first been declared "right," the Sphinx whose yygram was solved successfully is to remain available for seven minutes or until all players have concurred that the answer given is correct.

Roles in a game are Sphinx, Players and Referees.

[Sp] Sphinx
[Pl] Player
[Ref] Referee

All messages in a game require both a Sphinx attend-id and a game-id. That combination is considered to identify a game uniquely.

It is usually valid to conclude that a message with no Player-id and no Referee-id is from the Sphinx. However, text-cloning mistakes can occur that can make it unclear who is speaking without reference to delivery packaging outside of this protocol.

For this reason an optional tag,

<from: {Sp|Pl|Ref}>

may be made part of any message.

Exchanges

[Sp]0.1s New game, 2-5 players, join in while in progress:

<#yyrap 1><sp: attend-id><gm: game-id>
<alf: a,t,g M-N> <opt:{s|z}> <play: 2-5> </yyrap> #mlearning #game

[Sp]0.2s New game, unlimited players, join while in progress:

<#yyrap 1><sp: attend-id><gm: game-id>
<alf: a,s,g,w M-N> <opt:{s|z}> <play: 0> </yyrap> #mlearning #game

[Sp]0.3s New game, declare "in" before date.time (UTC/GMT):

<#yyrap 1><sp: attend-id><gm: game-id>
<alf: a,t,g M-N> <opt:{s|z}> <date: yy.mm.dd> <time: hh:mm> <play: 2-5> </yyrap> #mlearning #game

[Pl]1.1p Player says I'm in:

<#yyrap 1><sp: attend-id><gm: game-id> <pl: attend-id>
<in> </yyrap> #mlearning #game

[Sp]1.3s Sphinx acknowledges Player is in:

<#yyrap 1><sp: attend-id><gm: game-id> <pl: attend-id>
<in: ack> </yyrap> #mlearning #game

[Sp]1.4s Sphinx ends the game, maybe with fewer than min players:

<#yyrap 1><sp: attend-id><gm: game-id>
<ended> </yyrap> #mlearning #game

[Sp]1.5s Sphinx starts the game, maybe with fewer than max players:

<#yyrap 1><sp: attend-id><gm: game-id>
<start> </yyrap> #mlearning #game

The Sphinx may include a few unrequested there-list results in the starting message.

[Pl]2.1p There-list query:

<#yyrap 1><sp: attend-id><gm: game-id> <pl: attend-id>
<ask: {} {a,y} {a,t} > </yyrap> #mlearning #game

[Sp]2.3p There-list response:

<#yyrap 1><sp: attend-id><gm: game-id>
<n:{ } {a,y}> <y:{a,t}> </yyrap> #mlearning #game

[Pl]2.4p Player takes a guess:

<#yyrap 1><sp: attend-id><gm: game-id> <pl: attend-id>
<guess: ((a) (y)) (g)> </yyrap> #mlearning #game

[Sp]2.5s Guess is "wrong":

<#yyrap 1><sp: attend-id><gm: game-id> <guess:((a)(y))(g)>
<is: {w|wrong}> </yyrap> #mlearning #game

[Sp]2.6s Guess is "right":

<#yyrap 1><sp: attend-id><gm: game-id> <guess: ((a) (y)) (g) >
<is: {r|right}> <yy: (g) ((y) (a)) > </yyrap> #mlearning #game

[Pl]2.7p Concur in a "right" guess:

<#yyrap 1><sp: attend-id><gm: game-id> <pl: attend-id> <concur: (g)((y)(a))> </yyrap> #mlearning #game

[Pl]3.1p Player gives up, requesting answer:

<#yyrap 1><sp: attend-id><gm: game-id> <pl: attend-id>
<tell> </yyrap> #mlearning #game

[Sp]3.2s Polls players on giving up. Gives minutes before telling if no player says continue:

<#yyrap 1><sp: attend-id><gm: game-id>
<tell?><mins: 4> </yyrap> #mlearning #game

[Pl]3.3p Player requests to continue:

<#yyrap 1><sp: attend-id><gm: game-id> <pl: attend-id>
<{go on|cont}> </yyrap> #mlearning #game

[Sp]3.4s Tells answer yygram:

<#yyrap 1><sp: attend-id><gm: game-id>
<yy: (g)((y)(a))> </yyrap> #mlearning #game

[Pl]4.1p Objection, type 1: Player guess was equivalent:

<#yyrap 1><sp: attend-id><gm: game-id> <pl: attend-id>
<equiv> <guess:((y)(a))(g)> <yy: (((g))) ((a) (y)) > </yyrap> #mlearning #game

[Pl]4.2p Objection, type 2: "Right" yygram answer doesn't fit all responses:

<#yyrap 1><sp: attend-id><gm: game-id> <pl: attend-id>
<r: {discrepant there-list} > <nofit> <yy: (g) ((y) (a))> </yyrap> #mlearning #game

[Pl]4.3p Objection, type 3: answer has an irrelevant, "bogus" variable; the <yy: yygram (without the bogus) fits all responses:

<#yyrap 1><sp: attend-id><gm: game-id> <pl: attend-id>
<bogus> <yy: (g)((y)(a)) > </yyrap> #mlearning #game

[Pl]4.4p Objection, type 4: answer was not correctly characterized in the game invitation:

<#yyrap 1><sp: attend-id><gm: game-id> <pl: attend-id>
<char: optional comment > </yyrap> #mlearning #game

[Sp|Pl]5.1sp Nak: message not understood (format error?):

<#yyrap 1><sp: attend-id><gm: game-id>
<pl: attend-id>
<nak> <to: {Spx|Pla}> optional comment > </yyrap> #mlearning #game

[Sp|Pl|Ref]5.2spr Shift conversation to forum or email:

<#yyrap 1> <sp: attend-id><gm:game-id> <pl: attend-id>

<email: address>
<forum: URL> </yyrap> #mlearning #game

[Sp]6.1s Sphinx calls timeout:

<#yyrap 1><sp: attend-id><gm: game-id>
<timeout: comment> </yyrap> #mlearning #game

[Pl]6.2p Player withdraws:

<#yyrap 1><sp: attend-id><gm: game-id>
<pl: attend-id>
<withdraw: comment> </yyrap> #mlearning #game

[Any]6.3any Free-form comment to Player | Sphinx | All:

<#yyrap 1><sp: attend-id><gm: game-id><pl: attend-id>
<to: {Spx|Pla|All}: comment > </yyrap> #mlearning #game




Glossary

<alf: >

The "alphabet"—pool of names in the problem. In yyRaptor, names are single-character. Commas and spaces between names in an alphabet or in a there-list are optional.

<alf: .. M-N> live range

—M-N—a range saying how many symbols in the alphabet might be active; "live;" i.e., making a difference in the outcome when the yygram is evaluated. A single-number range (M), of course, is the simplest range.

Names that are not live are bogus.

If no range is given, the whole given alphabet is live.

<gm: >

partial game identifier (with Sphinx id)
date.serial YYmmmDD.N
e.g., 12jan13.2 => "2012 Jan 13, nr 2"
Date in any format convention is okay.

<sp: > or <pl: > or <ref: > attending identifier

— name without whitespace, 7 to 36 characters. This may be a team. You might so indicate by pluralizing "Sphinx" (to "Sphinxes") or "Player" (to "Players").

there-list

— The variable names in a there-list are replaced in the (hidden) yygram with yang, ( ). The rest of the variables that may be in the yygram solution are removed and not replaced. Then the yygram is evaluated by zang-fu good luck (arithmetic) moves.

Commas and spaces between names in an alphabet or in a there-list are optional.

t-list query format
t-list results format
back to top

2012 March 21 13:55Z DZ
dz@yyGrams.com

©2012 David Zethmayr