# SoliCards

Native SwiftUI solitaire card game for **iOS 17+**, **iPadOS 17+**, and **macOS 14+**.

Three classic variants — Klondike, Spider, and FreeCell — with drag & drop, smart zoom layout, six themes, four difficulty levels, and full accessibility support.

## Features

- **3 game variants:** Klondike, Spider (2-deck), FreeCell (power moves)
- **4 difficulty levels:** Easy, Medium, Hard, Expert
- **6 color themes:** Classic Green, Dark Mode, Ocean Blue, Royal Purple, Forest Green, Sunset Orange
- **12 card back designs** and multiple card face styles
- **Smart zoom:** cards auto-size to fit any screen and orientation
- **Drag & drop** with long-press disambiguation and tap-to-move
- **Landscape optimized:** 30% bigger cards on iOS with scrollable overflow
- **Auto-save** and game resume via SwiftData
- **Statistics:** wins, losses, streaks per variant/difficulty
- **VoiceOver accessible** with Dynamic Type and Reduce Motion support
- **Keyboard shortcuts:** Cmd+Z (undo), Cmd+N (new game), H (hint)
- **Zero external dependencies**

## Getting Started

```bash
brew install xcodegen
xcodegen generate
open SoliCards.xcodeproj
```

Press **Cmd+R** to build and run.

See [SETUP.md](SETUP.md) for full build commands and project structure.

## Architecture

MVVM + Protocol-Oriented Strategy pattern. See [ARCHITECTURE.md](ARCHITECTURE.md).

## Origin

Ported from a web-based JavaScript solitaire game using the [XCode-Claude-Workflow](https://git.istratai.cloud/aj/XCode-Claude-Workflow) methodology.
