TCS taxonomy v0.7
Hamman Count
Experimental: structure may change in a subsequent edition. This page is pinned to v0.7.
A false count that exchanges the whole receiving-hand block for the remainder of the source packet under cover of a simultaneous two-hand action, then recounts; the original order is restored
Source fragment
The following is documentation data, not a standalone document or validation schema. Resolve references against the original source schema.
{
"id": "hamman-count",
"description": "A false count that exchanges the whole receiving-hand block for the remainder of the source packet under cover of a simultaneous two-hand action, then recounts; the original order is restored",
"labels": {
"en": "Hamman Count"
},
"atlas_ref": "technique:hamman-count",
"family_ref": "false-counts",
"requires": [
"source",
"target"
],
"parameters": {
"beats": {
"required": true,
"description": "The exchange beat k: single counts before, and again after, the exchange",
"domain": "integer >= 1"
},
"block": {
"required": true,
"description": "The second packet's size (n = beats + block), independent of beats; only its cover card is ever shown. double-lift requires >= 2, since a 1-card packet would conceal nothing",
"domain": "integer >= 2"
},
"side": {
"required": false,
"description": "Side seen at each beat",
"domain": [
"face",
"back",
"visible"
],
"default": "visible"
}
},
"body": [
{
"repeat": {
"times": {
"param": "beats"
},
"steps": [
{
"verb": "registry:count",
"source": "source",
"target": "target",
"arguments": {
"count": 1,
"side": {
"param": "side"
}
}
}
]
}
},
{
"simultaneous": [
{
"verb": "registry:load",
"source": "target",
"target": "source",
"visibility": "hidden",
"arguments": {
"source_position": "top",
"count": "all",
"position": "top"
}
},
{
"verb": "registry:double-lift",
"source": "source",
"hand": "target",
"arguments": {
"count": {
"param": "block"
}
}
}
]
},
{
"verb": "registry:display",
"target": "target",
"arguments": {
"position": "top",
"count": 1,
"side": {
"param": "side"
},
"mode": "individual"
}
},
{
"repeat": {
"times": {
"param": "beats"
},
"steps": [
{
"verb": "registry:count",
"source": "source",
"target": "target",
"arguments": {
"count": 1,
"side": {
"param": "side"
}
}
}
]
}
}
],
"net_contract": {
"post_state_invariant": "Every card of source ends in target, in its original relative order; 2 * beats + 1 single beats are shown: the first beats cards, the next card, then the first beats cards again in reverse.",
"post_state": {
"state_schema_ref": "https://tamaraspec.org/schema/tcs-playing-cards-state-0.1.json",
"effects": [
{
"op": "show",
"subject": "source",
"select": {
"position": "top",
"count": {
"param": "beats"
}
},
"side": {
"param": "side"
},
"mode": "individual"
},
{
"op": "move",
"select": {
"position": "top",
"count": {
"param": "beats"
}
},
"from": "source",
"to": "target",
"arrival": "singly",
"at": "top"
},
{
"op": "show",
"subject": "source",
"select": {
"position": "top",
"count": 1
},
"side": {
"param": "side"
},
"mode": "individual"
},
{
"op": "show",
"subject": "target",
"select": {
"position": "top",
"count": {
"param": "beats"
}
},
"side": {
"param": "side"
},
"mode": "individual"
},
{
"op": "move",
"select": {
"all": true
},
"from": "target",
"to": "source",
"arrival": "singly",
"at": "top"
},
{
"op": "move",
"select": {
"all": true
},
"from": "source",
"to": "target",
"arrival": "block"
}
]
}
},
"examples": [
{
"arguments": {
"beats": 3,
"block": 4
},
"piles": {
"source": [
"A",
"B",
"C",
"D",
"E",
"F",
"G"
],
"target": []
},
"expect": {
"piles": {
"source": [],
"target": [
"A",
"B",
"C",
"D",
"E",
"F",
"G"
]
},
"shown": [
"A",
"B",
"C",
"D",
"C",
"B",
"A"
],
"deceptive_in": [
"state",
"trace"
]
}
}
]
}Verbatim JSON · Source: schemas/tcs-taxonomy-0.7.json/composites/hamman-count