- You have more points at the end of the game or
- You scored the same number of points, but you finished first
This puzzle can be solved using the following concepts. Practice using these concepts and improve your skills.
This is a league-based game.
Initial rulesIn this league, you will be introduced to the game of Patchwork. Now let's learn what the game turn looks like and how you pay for tetris-like patches using your time token.
This game is a port of the 2 player board game Patchwork.
My thanks to Butanium for his help with the custom interaction module (zooming to patches on mouse hover).
The game starts with a pre-shuffled deck of
Your goal is to collect more Buttons than your opponent and to cover as much of your quilt board with patches as possible. Uncovered squares on the quilt board will cost you
On your turn, you carry out one of the following actions:
Advance and Receive Buttons using
Take and Place a Patch using
Advance and Receive Buttons - the
Take and Place a Patch - the
- Choose from the available Patches and place it on your quilt board
- Pay the depicted number of Buttons to the supply
- Move your Time token on the time board by a number of spaces as depicted on the label.
End of the game and scoring
2points for each empty space on your quilt board
- Unknown command (only
SKIPor PLAYare allowed)
- Your opponent has more points at the end of the game or he has the same number of points and finishes first
- The UI supports single-line message bubbles. Anything after the last valid entry is considered a message.
- The patch with id
32and OOshape is always last in the deck after initial shuffling as per official rules.
- Source code on GitHub (Kotlin).
- Design on Figma made by me. Feel free to do whatever you want with the assets.
- Official board game version on Publisher's site.
- There are some Expert Mode fields (if you don't know what Expert Mode is ask in forum/discord)
- Game is CG Brutaltester compatible. Compiled referee can be found on releases page of game repository. Instructions in readme.
Line 1: integer incomeEvents how many Button Income events are there on the Timeline (always 0 for this league)
Line 2: incomeEvents integers of incomeTime = when the Button Income event will occur
Line 3: integer patchEvents how many Special Patch events are there on the Timeline (always 0 for this league)
Line 4: patchEvents integers of patchTime = when the Special Patch event will occur
Line 1: 3 integers myButtons = amount of Buttons you currently own; myTime = how far is your token on the Timeline; myEarning = how much you will earn during Button Income event (always 0 for this league)
Line 2-10: 9 lines representing rows of your board -
Line 11: 3 integers opponentButtons = amount of Buttons your opponent currently owns; opponentTime = how far is your opponent's token on the Timeline; opponentEarning = how much your opponent will earn during Button Income event (always 0 for this league)
Line 12-20: 9 lines representing rows of opponent board -
Line 21: patches - count of patches not yet used (you can play only the first 3 of these)
Next patches lines: patchId patchEarning patchButtonPrice patchTimePrice patchShape
Next line: integer specialPatchId: ignore (always 0 for this league)
Next line: integer opponentMoves: how many moves your opponet played since your last move
Next opponentMoves lines: opponentMove - move description (
- patchId - patch identifier in range
0 - 32
- patchEarning - how much will this patch earn during each Button Income event (ignore for this league)
- patchButtonPrice - how much buttons this patch costs
- patchTimePrice - how much time this patch costs
- patchShape - single string representing patch shape as follows:
|separates rows of patch. Each rows consists of .and Ocharacters. Omeans current square is taken by this patch.
For example: patchShape
O.O|OOO|O.Orepresents Hshaped patch
PLAYpatchId x y
x and y - coordinates of top/left corner of your patch
Duration of game turn -
A higher resolution is required to access the IDE