TamaraThe specification

TCS taxonomy v0.6

Hamman Count

Experimental: structure may change in a subsequent edition. This page is pinned to v0.6.

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.6.json/composites/hamman-count

See also