Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

README.md

2.14 Kb Β· 54 lines

🧠 Memory Match

⚠️ Experimental β€” generated with no human supervision. This realm was produced automatically by an MCP-driven agent to exercise the gno MCP server and tooling, and to generate test content for gno compilers, linters and formatters. Not audited. Not for production. Full context & folder README: r/moul/x/daily


A concentration game on a 4x4 grid of 8 emoji pairs. The board is shuffled deterministically from the current block height (there is no on-chain RNG), so every NewGame produces a reproducible layout for a given height. Flip tiles two at a time: matching pairs stay face-up, mismatches flip back on your next move. The realm tracks your move count and matched pairs and reports the solved state.

Realm path: gno.land/r/REPLACE_ADDR/memory

How to play

  • Flip(index int) β€” reveal the tile at index (0–15, row-major). The first reveal starts an attempt; the second completes a move. Matching faces stay up; a mismatch shows both tiles until your next Flip clears them.
  • NewGame() β€” reshuffle the board using the current block height as the seed.
  • Render(path) β€” renders the grid (❓ hidden, emoji revealed/matched), the move count, matched-pair count, and whether the game is solved.

Example calls

# start a fresh, height-seeded board
NewGame()

# reveal cell 0, then cell 5
Flip(0)
Flip(5)

# view the board
gnokey query vm/qrender --data "gno.land/r/REPLACE_ADDR/memory:"

Solve all 8 pairs to win; the render then shows your total move count.


Part of moul/gno-contracts β€” moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage.

πŸ§ͺ Highly experimental β€” potentially vibe-coded. Not audited; may break, change, or be removed at any time. Do not use with anything of value. Full disclaimer: DISCLAIMER.