بازی تتریس
قطعهها یکییکی از بالای صفحه پایین میآیند. تو آنها را چپ و راست میبری و میچرخانی. هدف این است که یک ردیف کامل پر شود. ردیف کامل پاک میشود و هرچه بالایش بود یک خانه میآید پایین. 🧱
اینطور جا باز میکنی. ولی اگر قطعهها تا بالای صفحه روی هم جمع شوند، بازی تمام است. با دکمههای زیر صفحه بازی میکنی: ◀ ▶ حرکت، ▼ تندتر، ↻ چرخش و «انداختن». روی کامپیوتر کلیدهای جهتدار همین کار را میکنند. 🎮
حالا خودت بازی کن
با دکمههای زیر صفحه قطعهها را بچرخان و ردیفها را کامل کن. با «انداختن» هم قطعه را تا ته بفرست. 🧱
زیر قطعهها جای خالی نگذار. همین یک حفرهی کوچک میتواند چند ردیف را قفل کند. 🎮
صفحهی بازی یک جدول در حافظه است
تتریس تصویر آماده ندارد. بازی صفحه را به شکل یک جدول از ستونها در حافظه نگه میدارد. هر خانهی این جدول یا خالی است یا رنگ یک قطعه را دارد. کل وضعیت بازی همین چند عدد است.
برنامه هر فریم بوم (canvas) را پاک میکند و جدول را از اول میکشد. خانههای پر، رنگی میشوند و بقیه تیره میمانند. پس وقتی قطعهای را میچرخانی، تصویر جابهجا نمیشود. فقط عددهای جدول عوض میشوند و فریم بعد نتیجه را میبینی. 🎨
ردیف کامل چطور پاک میشود
وقتی قطعهای دیگر نمیتواند پایین برود، همانجا میایستد. بازی خانههای آن را در جدول پر میکند. بعد برنامه ردیفها را یکییکی نگاه میکند. هر ردیفی که حتی یک خانهی خالی داشته باشد، سر جایش میماند.
ولی بازی ردیف پر را از جدول برمیدارد. بعد همهی ردیفهای بالایش را یک خانه پایین میآورد. همین کار حس فروریختن را به تو میدهد. در واقع فقط چند عدد در جدول جابهجا شدهاند. 🧠

ببینیم یاد گرفتی
حالا برویم سراغ پشت پرده. یک سوال کوتاه دربارهی روشی که تتریس صفحه را نشان میدهد.
«بازی تتریس» صفحهی بازی را چطور روی مرورگر نشان میدهد؟
تتریس هیچ تصویر آمادهای ندارد. بازی یک جدول از ستونها را در حافظه نگه میدارد و هر خانه یا پر است یا خالی.
هر فریم، برنامه این جدول را میخواند و کل صفحه را دوباره روی بوم (canvas) میکشد. خانههای پر رنگی میشوند و خانههای خالی تیره میمانند.
وقتی قطعه پایین میآید یا میچرخد، فقط عددهای همین جدول عوض میشوند. ردیف کامل هم از جدول حذف میشود و ردیفهای بالایش یک خانه پایین میآیند.