=== 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
