بازی آرکید کلاسیک
این پروژه یک بازی Snake مدرن و مبتنی بر مرورگر است که با React و TypeScript ساخته شده و تجربهای شبیه بازیهای کلاسیک آرکید را با رابط کاربری polished روی دسکتاپ و موبایل ارائه میدهد. تمرکز سیستم روی جداسازی منطق بازی از UI، چیدمان واکنشگرا و بهروزرسانی پایدار state در یک game loop با بازه زمانی ثابت است.
محور اصلی پروژه، مدیریت قابلپیشبینی state بازی، پشتیبانی از ورودی در دستگاههای مختلف و حفظ عملکرد روان بدون re-renderهای غیرضروری است.
توسعهدهنده Front-End (React / TypeScript) مسئول پیادهسازی منطق بازی، UI/UX، چیدمان واکنشگرا، مدیریت ورودی (کیبورد، لمس، swipe)، state management و persistence محلی.
تمام state و قوانین اصلی بازی در یک hook اختصاصی قرار گرفته تا کامپوننت UI فقط روی رندر و تعامل تمرکز کند.
جهت فعلی در ref نگهداری میشود تا در tickهای interval-based مقدار stale نشود و از حرکت معکوس نامعتبر جلوگیری شود.
قوانین بازی، رندرینگ و توابع کمکی (تولید غذا، wrap کردن مختصات، محاسبه سرعت) در ماژولهای جداگانه قرار گرفتهاند.
بهجای Canvas از CSS Grid استفاده شده تا استایلدهی، نمایش emoji و scale واکنشگرا سادهتر باشد.
برای کنترل کامل روی انیمیشنها، افکت glassmorphism و layout موبایل بدون وابستگی اضافه انتخاب شد.
high score و سطح سرعت بدون backend ذخیره میشوند و اپ کاملاً static و قابل deploy روی هر host باقی میماند.
این پروژه نشان میدهد که فراتر از UI ساده، میتوان state بلادرنگ را در React مدیریت کرد، تعامل cross-device طراحی کرد و یک codebase کوچک را readable و قابل توسعه نگه داشت. تمرکز روی UX (بورد واکنشگرا، swipe، persistence) است، در حالی که معماری ساده و قابل نگهداری باقی مانده.