شبیه سازی بازی بار Luck Gcash با حداقل کد یاقوت

اگر تا به حال در قرعه کشی ، قرعه کشی یا قرعه کشی خوش شانس شرکت کرده اید ، شاید تعجب کرده اید که چه تعداد نتایج ممکن وجود دارد. در روبی ، سه روش قدرتمند –product
با combination
وت sample
– محاسبه و تولید این امکانات را ساده کنید. در این پست ، ما نحوه استفاده از این روش ها را برای شبیه سازی بازی ها مانند GCASH بار خوش شانس و قرعه کشی Super Lotto 6/49بشر در پایان ، شما می دانید که چگونه سناریوهایی مانند انتخاب را به طور مؤثر مدل کنید 6 جفت منحصر به فرد از مجموعه ای از گزینه ها یا انتخاب 6 شماره از 49 برای یک قرعه کشی
درک product
با combination
وت sample
product
: تولید همه ترکیبات ممکن
در product
روش در روبی تمام جفت های ممکن (یا ترکیب) از عناصر را از چندین آرایه ایجاد می کند. این امر به ویژه در ترکیب دو مجموعه متمایز از گزینه ها ، مانند رنگ ها و نمادها مفید است.
به عنوان مثال ، با توجه به مجموعه ای از رنگ ها و مجموعه ای از نمادها ، product
هر جفت رنگی ممکن را تولید می کند:
colors = %w[Green Orange Red Purple Teal]
icons = %w[Crown Diamond Gift Thumb Ticket Trophy]
combinations = colors.product(icons)
puts combinations.inspect
#=> [["Green", "Crown"], ["Green", "Diamond"], ...]
این نتیجه در 30 جفت منحصر به فرد رنگ ایکون (6 5 5).
combination
: انتخاب گروه های منحصر به فرد
پس از تولید همه جفت های ممکن ، combination(n)
به شما امکان می دهد گروه های منحصر به فردی را ایجاد کنید n
مواردی که سفارش مهم نیست. این مناسب برای شبیه سازی قرعه کشی است که فقط یک زیر مجموعه از موارد انتخاب می شود.
draws = combinations.combination(6).to_a
puts "Total possible 6-draw combinations: #{draws.size}"
#=> Total possible 6-draw combinations: 593,775
sample
: شبیه سازی قرعه کشی تصادفی
در sample
روش برای انتخاب تصادفی مفید است قرعه کشی برنده، شبیه سازی یک قرعه کشی یا انتخاب جایزه در دنیای واقعی:
winning_draw = combinations.combination(6).to_a.sample
puts "Winning Draw: #{winning_draw.inspect}"
#=> [["Orange", "Gift"], ["Red", "Crown"], ...]
اکنون که این روش ها را درک می کنیم ، بیایید از آنها برای شبیه سازی a استفاده کنیم GCASH Lucky Load Gameبشر
شبیه سازی بازی بار خوش شانس GCASH
مرحله 1: گزینه های موجود را تعریف کنید
ما دو آرایه را تنظیم کردیم: یکی برای رنگ ها و دیگری برای نمادها.
colors = %w[Green Orange Red Purple Teal]
icons = %w[Crown Diamond Gift Thumb Ticket Trophy]
مرحله 2: تمام ترکیبات ممکن برای رنگ آمیزی را ایجاد کنید
با استفاده از product
، ما هر جفت احتمالی را تولید می کنیم:
all_pairs = colors.product(icons)
puts "Total unique color-icon pairs: #{all_pairs.size}"
#=> Total unique color-icon pairs: 30
مرحله 3: یک قرعه کشی خوش شانس 6 جفت را شبیه سازی کنید
برای شبیه سازی دور بازی ، ما به طور تصادفی انتخاب می کنیم 6 جفت منحصر به فرد از 30 موجود
draws = all_pairs.combination(6).to_a
winning_draw = draws.sample
puts "Winning combination: #{winning_draw.inspect}"
مرحله 4: قرعه کشی برنده را در یک شبکه نمایش دهید
برای تجسم بهتر ، ما خروجی را قالب بندی می کنیم:
col_width = 8
puts " " * col_width + colors.map { |c| c.center(col_width) }.join
icons.each do |icon|
row = icon.ljust(col_width)
colors.each do |color|
mark = winning_draw.include?([color, icon]) ? 'x' : 'o'
row += mark.center(col_width)
end
puts row
end
puts "\nWinning selection:"
winning_draw.each { |color, icon| puts "x #{color}-#{icon}" }
این خروجی ها بازنمود از قرعه کشی برنده.
Green Orange Red Purple Teal
Crown o o o o o
Diamond o x o o x
Gift o o o x o
Thumb o x o o o
Ticket o o x x o
Trophy o o o o o
Winning selection:
x Orange-Diamond
x Orange-Thumb
x Red-Ticket
x Purple-Gift
x Purple-Ticket
x Teal-Diamond
استفاده از این در سایر بازی ها
این روشها فراتر از بازی های رنگ آمیزی ICON است. در اینجا چند برنامه اضافی وجود دارد:
Lotto (انتخاب 6 از 49 شماره)
تا به حال در مورد شانس خود در یک استاندارد تعجب کرده اید Super Lotto 6/49 بازی؟ با 13،983،816 ترکیب ممکن، در اینجا نحوه تولید یک قرعه کشی برنده آورده شده است:
numbers = (1..49).to_a
winning_draw = numbers.combination(6).to_a.sample
puts "Winning Lotto Draw: #{winning_draw.inspect}"
پیش نویس های ورزشی فانتزی
استفاده کردن combination
برای شبیه سازی تیم های پیش نویس بازیکنان از استخر.
بازی های کارتن
با ترکیب کارت از یک عرشه ، دست های تصادفی ایجاد کنید.
قرعه کشی جایزه
با انتخاب تصادفی برندگان از لیستی از شرکت کنندگان ، از انصاف اطمینان حاصل کنید.
چرا استفاده کنید product
با combination
وت sample
؟
یاقوت product
با combination
وت sample
روشها روشهای کارآمد برای تولید ، تجزیه و تحلیل و انتخاب تصادفی از مجموعه های بزرگی از امکانات ارائه می دهند. این که آیا شما در حال طراحی یک بازی ، اجرای یک قرعه کشی یا محاسبه احتمالات هستید ، این روش ها به شما امکان می دهد:
- به سرعت کل نتایج ممکن را محاسبه کنید.
- طراحی یا انتخاب های تصادفی را شبیه سازی کنید.
- سناریوهای مختلف را بدون لیست دستی همه امکانات آزمایش کنید.
پایان
یاقوت product
وت combination
روشها ابزارهای قدرتمندی برای شبیه سازی بازی ها و سناریوهای دنیای واقعی هستند. با ترکیب آنها با sample
، شما می توانید به طور مؤثر تمام نتایج ممکن را تولید کرده و احتمالات را محاسبه کنید. آیا شما در حال طراحی یک قرعه کشی خوش شانس، سازماندهی قرعه کشی، یا ساخت بازی، این روش ها روند را ساده و سرگرم کننده می کنند.
سعی کنید با مجموعه ها و شماره های مختلف آزمایش کنید تا ببینید که چگونه شانس تغییر می کند – و به ما اطلاع دهید که چه برنامه های خلاقانه ای را ارائه می دهید!
یادداشت های نهایی:
- مثال بالا از a استفاده می کند قرعه کشی 6 جفت، اما می توانید این موضوع را بر اساس قوانین بازی خود تنظیم کنید.
- برای مجموعه داده های بزرگتر ، استفاده از ارزیابی تنبل را در نظر بگیرید (
lazy
) برای بهینه سازی استفاده از حافظه.
برنامه نویسی مبارک!