A simple React + TypeScript website that displays pre-generated, rules-compliant Catan board layouts for in-person play.
- 50 pre-generated board layouts
- All layouts are rules-compliant (no adjacent 6s and 8s)
- Random board selection with history
- Go back to previous boards
- Responsive design for mobile and desktop
- Beautiful animations and UI
catan_board_setup/
├── src/
│ ├── layouts.ts # All 50 board layouts data
│ ├── App.tsx # Main React component
│ ├── App.css # Styles
│ └── main.tsx # Entry point
├── public/
│ ├── Robber-Pirate-Catan-logo 1.png
│ └── better-robber-favicons/
├── index.html
├── package.json
├── tsconfig.json
├── vite.config.ts
└── README.md
- Node.js (v16 or higher)
- npm or yarn
- Install dependencies:
npm installRun the development server:
npm run devThis will start the development server at http://localhost:3000
npm run buildThe built files will be in the dist folder.
npm run previewTo add new layouts, edit src/layouts.ts:
- Add a new array entry to the
layoutsarray - Each layout should contain 19 hex objects with
terrainandnumberproperties - Valid terrains:
'Wood','Wheat','Sheep','Brick','Ore','Desert' - Valid numbers:
2-12(ornullfor Desert)
Example:
// Layout 51
[
{ terrain: 'Wood', number: 8 }, { terrain: 'Sheep', number: 3 }, ...
]ISC