# Pokeguess ## Description Pokeguess is a Flutter mobile application that allows users to discover and collect Pokémon through a silhouette guessing game. The app fetches data from the Tyradex API and stores it locally for offline access. ## Features - **National Pokédex**: Browse all 1025 Pokémon from generations I to IX. - **Guess Game**: Identify Pokémon by their silhouette. - **Scoring System**: Earn 10 pts per correct guess, 20 pts for Shiny Pokémon (1 in 10 chance). High scores are saved locally. - **Lives, Hints & Skips**: Start each game with 3 lives, 3 hints, and 3 skips. Earn bonuses every 5 correct guesses (hint) and every 10 correct guesses (skip). - **Generation Filter**: Restrict the game to one or more generations (I–IX). Selection persists across sessions. - **Bilingual Input**: Pokémon names are accepted in French or English regardless of the UI language. - **Collection**: Track caught and seen Pokémon across your Pokédex. - **Search and Filter**: Filter the collection by all / caught status and search by name. - **Pokémon Detail**: View base stats, types, genus, and toggle between normal and shiny sprites. - **Theming**: Choose from 5 color palettes (red, blue, green, yellow, purple). - **Localization**: Full French and English UI support, switchable at any time. - **Statistics**: Global view of caught count, seen count, completion percentage, and best score. ## Installation 1. Ensure Flutter SDK is installed. 2. Clone the repository. 3. Run `flutter pub get` to install dependencies. 4. Run `flutter run` to start the application. ## Technologies - **Flutter**: UI Framework. - **Riverpod**: State management (providers + notifiers). - **SQLite (sqflite)**: Local database for offline-first Pokémon storage. - **Tyradex API**: Primary Pokémon data source (FR/EN names, sprites, types, stats). - **PokéAPI**: Secondary source for English genus data. - **Shared Preferences**: Persistence for best score, generation filter, language, and palette. - **Google Fonts**: Custom typography (VT323). - **flutter_localizations / intl**: FR and EN localization.