=== Snake Retro Game Shortcode by Eskim === Contributors: eskimpl Tags: snake, game, retro, classic, arcade Requires at least: 5.0 Tested up to: 6.8 Requires PHP: 7.0 Stable tag: 1.2.1 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Donate link: https://buymeacoffee.com/eskim Classic retro Snake game embedded via shortcode. Built with canvas and pure JavaScript. == Description == Snake Retro Game Shortcode by Eskim adds a classic Snake game to your WordPress site, fully playable directly in the browser. The game is embedded via the `[snake_game]` shortcode and is rendered with HTML5 canvas and vanilla JavaScript — no external libraries needed. Features: * Simple shortcode: [snake_game] * Multiple games per page supported * Fully customizable: colors, size, speed, countdown style * Adjustable game speed (1 = slowest, 100 = fastest) * Start countdown: 3…2…1…START (configurable) * Pause/resume with Spacebar * Highscore saved locally per game instance * Score counter rendered on canvas * Lightweight and responsive == Installation == 1. Upload the plugin folder to `/wp-content/plugins/`. 2. Activate the plugin via the "Plugins" menu. 3. Add the `[snake_game]` shortcode to any post or page. Example usage: [snake_game background_color="#111" snake_color="lime" food_color="yellow" border_color="#0ff" countdown_color="#aaa" width="400" height="400" speed="75"] == Shortcode Parameters == You can customize the game using the following shortcode attributes: * `background_color` – canvas background color (default: `#000`) * `snake_color` – snake segment color (default: `lime`) * `food_color` – food color (default: `red`) * `border_color` – canvas border color (default: `#333`) * `countdown_color` – color of the countdown text on canvas (default: `#AAAAAA`) * `width` – canvas width in pixels (default: `300`) * `height` – canvas height in pixels (default: `300`) * `speed` – snake speed from 1 (slow) to 100 (fast) (default: `65`) All parameters are optional. == Controls == * Use arrow keys (← ↑ ↓ →) to move the snake. * Press **Spacebar** to pause/resume the game. * Click **Start Game** to begin or restart. * Your best score is saved automatically per game instance. == Screenshots == 1. Snake game displayed with default settings. 2. Custom colors and larger game area. 3. "PAUSED" overlay and highscore display. 4. Countdown sequence before the game starts. == Frequently Asked Questions == = Can I change the size and colors? = Yes — use the shortcode attributes. = Can I use this in a widget area? = Not in this version — use shortcodes in blocks or custom HTML widgets. = Is it mobile-friendly? = It works on mobile, but is best played on keyboard. Touch controls are not yet implemented. == Changelog == = 1.2.1 = * Fixed issue where pressing two arrow keys quickly could cause an instant game over * Improved input handling to prevent unintended diagonal movement * Minor cleanup and logic stabilization = 1.2.0 = * Added support for multiple games per page (no more ID conflicts) * Local highscore saved per instance via localStorage * Added start countdown (3…2…1…START) * Improved canvas rendering and contrast * Clean refactor of CSS and JS for multi-instance support * Added support for translations = 1.1.0 = * Removed widget support * Added mapRange logic for better speed control * "PAUSED" label rendered on canvas * Optimized shortcode-only version = 1.0.0 = * Initial release with shortcode and widget support == License == GPL v2 or later == Upgrade Notice == = 1.2.1 = Fixes a bug where pressing two arrow keys too quickly could cause an unexpected game over. = 1.2.0 = Improved UX with countdown, multiple game support, and highscore tracking per instance. == Support the Developer == If you enjoy this plugin and want to support its development, consider buying me a coffee: https://www.buymeacoffee.com/eskim