مکانیک بازی اسلات: چرخهی کامل یک اسپین
شش مرحلهای که بین فشردن دکمه و تغییر موجودی اتفاق میافتند. مرجع این توضیح، همان کدی است که در میز آزمایش اجرا میشود.
۱. گرفتن ۵ عدد تصادفی
برای هر ریل یک عدد صحیح در بازهی صفر تا طول نوار همان ریل گرفته میشود. منبع، crypto.getRandomValues است و برای حذف سوگیری، عددهای بیرون از بزرگترین مضرب کامل بازه دور ریخته و دوباره نمونهگیری میشوند.
۲. ساخت پنجرهی دیدهشده
عدد بهدستآمده موقعیت توقف است. ۳ خانهی پیاپی نوار از آن نقطه (با پیچش در انتهای نوار) ستون دیدهشدهی آن ریل میشود. پنج ستون کنار هم، صفحهی ۵×۳ را میسازند.
۳. ارزیابی ۲۰ خط
برای هر خط، ۵ خانهی روی مسیر استخراج و سپس برای هر نماد پایهی ممکن، طول دنبالهی سازگار از ریل ۱ شمرده میشود. سازگار یعنی خودِ نماد یا وایلد؛ اسکتر همیشه دنباله را قطع میکند. اگر طول به ۳ یا بیشتر برسد، ضریب جدول پرداخت در شرط هر خط ضرب میشود و فقط پرارزشترین نتیجهی همان خط ثبت میشود.
۴. شمارش اسکترها
مستقل از خطها، کل ۱۵ خانهی صفحه پیمایش و اسکترها شمرده میشوند. از ۳ به بالا، پرداخت اسکتر (ضربدر شرط کل) محاسبه و چرخش رایگان اعطا میشود.
۵. جمعبندی و دستهبندی
مجموع پرداخت خطها در ضریب فعال ضرب میشود — ۱ در بازی پایه و ۲ در دور چرخش رایگان — و پرداخت اسکتر به آن اضافه میشود. نسبت حاصل به شرط کل، دستهی چرخش را تعیین میکند:
| دسته | آستانه | رفتار رابط |
|---|---|---|
| بدون برد | ۰ | پیام درونخطی |
| کوچک | بیش از ۰ تا ۲× | پیام درونخطی |
| معمولی | ۲× تا ۱۰× | پیام درونخطی |
| بزرگ | ۱۰× تا ۲۵× | پنجرهی تبریک، توقف پخش خودکار |
| بسیار بزرگ | ۲۵× به بالا | پنجرهی تبریک، توقف پخش خودکار |
۶. بهروزرسانی وضعیت
برد به موجودی اضافه میشود، آمار جلسه بهروز میشود و یک رکورد به تاریخچهی ۵۰ چرخشی اضافه میشود. اگر دور چرخش رایگان فعال شده باشد، شمارندهی دور ساخته و شرط قفل میشود. هیچکدام از اینها ورودی چرخش بعدی نیستند.
نقطهی کلیدی
تابعی که نتیجه را میسازد، فقط دو چیز میگیرد: اندازهی شرط، و اینکه این چرخش جزو دور رایگان است یا نه. موجودی، تاریخچه، تعداد چرخشهای قبلی و مدت حضور تو هیچکدام به آن وارد نمیشوند. این ساختار همان چیزی است که استقلال چرخشها را از یک ادعا به یک خاصیت قابل بازرسی تبدیل میکند.
پرسشهای پرتکرار
نتیجه پیش از انیمیشن تعیین میشود؟
بله. کل نتیجه — صفحه، خطهای برنده، اسکتر و پرداخت — پیش از شروع انیمیشن محاسبه میشود. انیمیشن فقط نمایش تدریجی همان نتیجه است، و حالت چرخش سریع صرفاً مدتش را از حدود ۱٫۸ به ۰٫۵۵ ثانیه کاهش میدهد.
چرا مولد تصادفی «رمزنگاریشده» مهم است؟
چون خروجیاش قابل پیشبینی نیست حتی اگر خروجیهای قبلی را دیده باشی. علاوه بر آن، برای تبدیل عدد ۳۲ بیتی به بازهی طول نوار از نمونهگیری با رد استفاده میشود تا سوگیری باقیماندهی تقسیم بهوجود نیاید — یعنی همهی خانههای نوار دقیقاً همشانس بمانند.
حالت آموزشی نتیجهها را دستکاری میکند؟
موقعیتهای توقف را انتخاب میکند، اما پرداخت را دستکاری نمیکند. هر صفحهای که در آن حالت ساخته میشود با همان توابع ارزیابی حالت استاندارد سنجیده میشود، پس هیچ ترکیب غیرممکن یا «نزدیک به برد» ساختگی تولید نمیشود. مولد آن حالت هم کاملاً جدا از مولد امن استاندارد است.