پرش به محتوای اصلی

پرتاب سکه و چرخش چرخ رایگان

یک سکه مجازی را پرتاب کنید، یک چرخ قابل سفارشی‌سازی را بچرخانید، یا به صورت تصادفی از لیست گزینه‌ها انتخاب کنید. از تصادفی‌سازی ایمن رمزنگاری‌شده مرورگر شما استفاده می‌کند — یک قرعه‌کشی عمومی قابل تأیید نیست، بنابراین از مسابقات مشمول مقررات پرهیز کنید.

پس از بارگذاری آفلاین کار می‌کند

🔒 هر سه از مولد اعداد تصادفی ایمن رمزنگاری‌شده مرورگر شما استفاده می‌کنند: نتیجه ابتدا انتخاب می‌شود، سپس انیمیشن اجرا می‌شود — سکه یک 50/50 واقعی است، چرخ به نتیجه‌ای که از قبل انتخاب شده می‌چرخد، و انتخاب‌گر بی‌طرف است. هیچ چیزی از دستگاه شما خارج نمی‌شود. این برای استفاده عادی منصفانه است، اما یک قرعه‌کشی عمومی قابل تأیید نیست، بنابراین از مسابقات مشمول مقررات یا تصمیمات پرارزش پرهیز کنید.

کاربردهای رایج

  • پرتاب سکه برای تصمیم‌گیریاستفاده از پرتاب سکه‌ی مجازی منصفانه برای تصمیم‌گیری سریع و بی‌طرفانه وقتی درمیان دو گزینه در تردید هستید.
  • چرخاندن چرخ برای تخصیص تیم تصادفیاستفاده از چرخ قابل تنظیم برای تخصیص تصادفی اعضای تیم به وظایف، نقش‌ها یا گروه‌ها.
  • انتخاب‌کننده دانش‌آموز تصادفی برای کلاساستفاده از چرخ یا انتخاب‌کننده گزینه برای فراخواندن تصادفی دانش‌آموزان، تخصیص گروه‌ها یا انتخاب داوطلب‌ها.
  • پرتاب سکه‌ی مجازی برای ورزشپرتاب سکه‌ای منصفانه برای تعیین اضلاع تیم، مالکیت اول، ترتیب سرو یا سایر تصمیم‌های ورزشی.
  • انتخاب‌کننده تصادفی برای هدیهانتخاب برنده‌ی تصادفی از فهرست ورودی‌ها با استفاده از انتخاب‌کننده گزینه - شفاف و منصفانه.

نحوه کار

هر سه حالت — پرتاب سکه، چرخ، و انتخاب‌گر گزینه — از API داخلی Web Crypto مرورگر (crypto.getRandomValues) برای تولید نتیجه برنده استفاده می‌کنند، سپس انیمیشن را کاملاً سمت کلاینت با تبدیل‌های CSS و requestAnimationFrame اجرا می‌کنند. سروری در هیچ نقطه‌ای دخیل نیست.

  1. 1
    Web Crypto برنده را انتخاب می‌کند
    پیش از شروع هر انیمیشنی، crypto.getRandomValues یک Uint32Array را با یک عدد صحیح ۳۲بیتی تصادفی رمزنگاری‌شده پر می‌کند. یک عملیات پیمانه‌ای آن را به تعداد گزینه‌ها نگاشت می‌کند (۲ برای شیر/خط، N برای گردونه یا انتخاب‌گر)، پس هر نتیجه‌ای احتمال دقیقاً برابری دارد.
  2. 2
    زاویه چرخش برای فرود روی نتیجه محاسبه می‌شود
    برای سکه، کد کوتاه‌ترین چرخش اضافی (بالای زاویه انباشتی فعلی) را که با روی درست بالا تمام می‌شود محاسبه می‌کند — شیر در ۰°، خط در ۱۸۰° — سپس ۵ چرخش کامل اضافه می‌کند تا واقعاً پرتاب به‌نظر برسد. گردونه همین کار را می‌کند: آفست زاویه‌ای را می‌یابد که قسمت برنده را زیر اشاره‌گر می‌آورد، ۶ چرخش کامل اضافه می‌کند، و یک لرزش تصادفی کوچک اعمال می‌کند تا اشاره‌گر همیشه دقیقاً وسط قسمت متوقف نشود.
  3. 3
    تبدیل‌های CSS و requestAnimationFrame انیمیشن را هدایت می‌کنند
    سکه و گردونه از طریق تبدیل CSS با یک منحنی نرم‌سازی کوبیک-بزیه روی یک مقدار چرخش انباشته واحد اعمال‌شده انیمیت می‌شوند — پس از تنظیم زاویه، جاوااسکریپت به‌ازای فریم لازم نیست. انتخاب‌گر گزینه به‌جای آن از requestAnimationFrame استفاده می‌کند: هر فریم، یک فاصله به‌صورت درجه‌دوم رشدیابنده تعیین می‌کند آیا برجسته‌سازی جلو برود یا نه، و کاهش‌سرعت اسلات-ماشینی تولید می‌کند که همیشه روی برنده از‌پیش-تعیین‌شده متوقف می‌شود.
  4. 4
    نتیجه آشکار می‌شود و در تاریخچه جلسه ثبت می‌شود
    یک setTimeout وقتی انیمیشن تمام می‌شود اجرا می‌شود (۱٫۳ ثانیه برای سکه، ۴٫۳ ثانیه برای چرخ) و نتیجه را در state می‌نویسد. حالت سکه تاریخچه جلسه را تا ۲۴ پرتاب با تعداد شیر/خط نگه می‌دارد. کاربرانی که prefers-reduced-motion را فعال کرده‌اند کاملاً انیمیشن را رد می‌کنند و نتیجه را فوراً می‌بینند.

راهنما

مثال عملی

صفحه را در زبانهٔ «انداختن سکه» باز کنید و «سکه بینداز» را بزنید؛ لمس خود سکه هم کار می‌کند. دکمه 1.3 ثانیه در حالی که سکه می‌چرخد «در حال انداختن…» می‌گوید، سپس «رو!» یا «پشت!» با سطری مانند «3 رو / 2 پشت در 5 بار انداختن» و ردیفی از تراشه‌های H و T ظاهر می‌شود. به «چرخاندن چرخ» بروید که با Pizza، Sushi، Tacos و Burgers شروع می‌شود. Ramen را در «افزودن گزینه…» بنویسید و Enter بزنید تا پنج قاچ 72 درجه‌ای بگیرید. «چرخ را بچرخان» را بزنید؛ پس از 4.3 ثانیه نشانگر می‌ایستد و کادری «برنده» و نام را نشان می‌دهد. «حذف برنده و چرخش دوباره» تا وقتی بیش از دو گزینه مانده ظاهر می‌شود. در «انتخاب‌گر گزینه»، با Yes، No و Maybe، «یک گزینهٔ تصادفی انتخاب کن» را بزنید: سطرها تا 1.6 ثانیه به‌نوبت روشن می‌شوند و کادر «انتخاب‌شده» پاسخ را نشان می‌دهد.

کدام تنظیمات را استفاده کنید و محدودیت‌ها

  • سکه یا دکمه را لمس کنید، سپس منتظر فرود بمانید. «سکه بینداز» و خود سکه هر دو انداختن را شروع می‌کنند. نتیجه پیش از شروع انیمیشن با مولد تصادفی امن مرورگر انتخاب می‌شود، پس 50/50 واقعی است و چرخش فقط آن را نشان می‌دهد. ضربه‌های اضافی در 1.3 ثانیه‌ای که طول می‌کشد نادیده گرفته می‌شوند. تراشه‌های زیر سکه 24 بار انداختن آخر شما را فهرست می‌کنند، تازه‌ترین اول، و سطر «رو / پشت در N بار انداختن» حداکثر همان 24 را می‌شمارد، پس هرگز بیش از 24 بار گزارش نمی‌کند. فهرست فقط تا وقتی صفحه باز است نگه داشته می‌شود.
  • چرخ را با حداکثر 24 گزینه بسازید. در «افزودن گزینه…» بنویسید و Enter یا «+» را بزنید. هر گزینه به 24 نویسه بریده می‌شود، و «+» وقتی کادر خالی است، هنگام چرخش چرخ یا در 24 گزینه خاکستری است. × کنار گزینه آن را حذف می‌کند. ویرایش درجا نیست، پس گزینه را حذف کنید و دوباره اضافه کنید. «چرخ را بچرخان» دست‌کم دو گزینه می‌خواهد. برچسب بیش از 16 نویسه روی قاچش کوتاه می‌شود، اما کادر برنده آن را کامل نشان می‌دهد. افزودن یک گزینه دو بار به آن دو قاچ و در نتیجه شانس دوبرابر می‌دهد.
  • برای مرتب کردن نام‌ها از حذف استفاده کنید. پس از یک چرخش، «حذف برنده و چرخش دوباره» برنده را از چرخ برمی‌دارد و بقیه را فوراً می‌چرخاند. فقط تا وقتی بیش از دو گزینه مانده نشان داده می‌شود، پس چرخش آخر میان دو گزینه است. از آن برای قرعه‌کشی ترتیب اجرا یا حذف یکی‌یکی گزینه‌ها استفاده کنید. «تمام‌صفحه»، هر جا مرورگر پشتیبانی کند، فهرست گزینه‌ها را پنهان می‌کند و چرخ، برنده و دکمهٔ چرخش را نگه می‌دارد که برای صفحهٔ کلاس مناسب است. هنگام چرخش نمی‌توانید گزینه اضافه یا حذف کنید.
  • برای فهرست ساده از انتخاب‌گر گزینه استفاده کنید. هر گزینه سطر خودش را دارد. Enter سطری زیر آن اضافه می‌کند، کلیدهای پیکان بالا و پایین بین سطرها حرکت می‌کنند، و Backspace روی سطر خالی آن را حذف می‌کند؛ دکمهٔ × هم سطری را حذف می‌کند، اما یک سطر همیشه می‌ماند. سطرهای خالی نادیده گرفته می‌شوند و «یک گزینهٔ تصادفی انتخاب کن» تا وقتی دست‌کم یک سطر متن نداشته باشد خاکستری است. با فقط یک سطر پرشده فوراً و بدون انیمیشن پاسخ می‌دهد. می‌توانید سطرهای بیشتری از 24 گزینهٔ چرخ اضافه کنید، اما پیوند اشتراکی فقط 50 تای نخست را نگه می‌دارد.
  • چرخ یا فهرست را به‌صورت پیوند به اشتراک بگذارید. «اشتراک‌گذاری نتیجه» زیر زبانه‌های «چرخاندن چرخ» و «انتخاب‌گر گزینه» ظاهر می‌شود. پس از تغییر یک گزینه، نشانی صفحه هر دو فهرست را بعد از # دارد و دکمه آن پیوند را کپی می‌کند، یا روی تلفن برگهٔ اشتراک‌گذاری را باز می‌کند. مرورگرها بخش بعد از # را به سرور نمی‌فرستند. وقتی پیوند باز شود، هر گزینه به 24 نویسه بریده می‌شود، چرخ 24 گزینه و انتخاب‌گر 50 گزینه نگه می‌دارد، و ویرگول درون گزینه حفظ می‌شود. نشانی بلندتر از 1,800 نویسه کنار گذاشته می‌شود که پیوندی ساده بدون گزینه می‌دهد.
  • بدانید اینجا منصفانه یعنی چه. هر سه حالت از مولد تصادفی امن رمزنگاری‌شدهٔ مرورگر استفاده می‌کنند. نتیجه ابتدا انتخاب می‌شود و انیمیشن طوری چیده می‌شود که روی آن فرود آید؛ جابه‌جایی کوچک جایی که نشانگر درون قاچ می‌ایستد فقط برای ظاهر است. این برای انتخاب‌های معمولی منصفانه است، اما خود صفحه می‌گوید قرعه‌کشی عمومی قابل راستی‌آزمایی نیست، پس از مسابقه‌های مقرراتی یا تصمیم‌های پرارزش بپرهیزید. اگر دستگاه شما برای کاهش حرکت تنظیم شده باشد، هر سه انیمیشن را رد می‌کنند و نتیجه را فوراً نشان می‌دهند.

مشکلات رایج و راه حل آن‌ها

دکمهٔ «چرخ را بچرخان» خاکستری است.
هنگام چرخش چرخ و هر وقت کمتر از دو گزینه روی آن باشد غیرفعال است. گزینهٔ دیگری را در «افزودن گزینه…» اضافه کنید و Enter بزنید. دکمه‌های × گزینه‌ها را تا هیچ حذف می‌کنند، پس ممکن است چرخ با گزینه‌های بسیار کم بماند.
دکمهٔ «+» کنار «افزودن گزینه…» خاکستری است.
وقتی کادر خالی است یا فقط فاصله دارد، هنگام چرخش چرخ، و وقتی چرخ از قبل 24 گزینه دارد غیرفعال است. در 24، ابتدا گزینه‌ای را حذف کنید. هر چه بیش از 24 نویسه بنویسید هنگام افزودن گزینه بریده می‌شود.
پیوند اشتراکی در زبانهٔ «انداختن سکه» باز می‌شود، یا گزینه‌های شما را از دست داده است.
پیوندی که پس از ویرایش ساخته شود هم فهرست چرخ و هم فهرست انتخاب‌گر را دارد. وقتی هر دو هستند، صفحه «انداختن سکه» را انتخاب‌شده می‌گذارد، پس «چرخاندن چرخ» یا «انتخاب‌گر گزینه» را باز کنید تا گزینه‌هایتان را پیدا کنید. اگر نشانی از 1,800 نویسه گذشت، که حروف غیرلاتین زود به آن می‌رسند چون هرکدام پس از کدگذاری حدود نه نویسه می‌گیرد، «اشتراک‌گذاری نتیجه» پیوندی ساده بدون گزینه می‌دهد. گزینه‌های بیش از 24 نویسه بریده می‌شوند و فهرست‌ها به 24 (چرخ) یا 50 (انتخاب‌گر) کوتاه می‌شوند.
نام‌های بلند گزینه‌ها روی چرخ بریده به نظر می‌رسند.
قاچ فقط 15 نویسهٔ نخست برچسب بلندتر از 16 را نشان می‌دهد، با «…» در پی آن، و هرچه برچسب بلندتر شود نوشته کوچک‌تر می‌شود. کادر برنده متن کامل را نشان می‌دهد. اگر چرخ باید از دور خوانده شود نام‌های کوتاه‌تر به کار ببرید.
سکه یا چرخ نتیجه را فوراً و بدون چرخش نشان می‌دهد.
دستگاه یا مرورگر شما برای کاهش حرکت تنظیم شده و صفحه آن را رعایت می‌کند: سکه، چرخ و انتخاب‌گر انیمیشن را رد می‌کنند و نتیجه را فوراً نشان می‌دهند. نتیجه به همان شیوه انتخاب می‌شود. اگر انیمیشن را می‌خواهید، تنظیم را در گزینه‌های دسترس‌پذیری سیستم خود خاموش کنید.

مقایسه آن

سکه، تاس یا کاغذهای واقعی چیزهایی‌اند که همه می‌توانند تماشا کنند؛ این صفحه جایگزین سریعی است وقتی آن‌ها را ندارید، با سکه، چرخ نام و انتخاب‌گر فهرست در یک‌جا. هر گزینه شانس یکسان دارد، پس تنها راه وزن دادن به انتخاب این است که آن را بیش از یک بار اضافه کنید. هر بار یک سکه می‌اندازد و تا وقتی صفحه باز است 24 بار انداختن را به یاد می‌آورد. فهرست‌های چرخ و انتخاب‌گر در نشانی صفحه نگه داشته می‌شوند، پس از بازخوانی جان به در می‌برند. صفحه اعلام می‌کند چیزی دستگاه شما را ترک نمی‌کند. دلیلی بر منصفانه بودن قرعه‌کشی نمی‌دهد، چون ثبت عمومی یا بذری نیست، پس برای مسابقه‌ها یا جوایز مقرراتی مناسب نیست. حساب کاربری و صدا نیست.

ابزارهای مرتبط

سؤالات متداول