এটি হল ডিসেল্যাব কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।
কার্যক্রম:
NAME এর
ডাইসল্যাব - ডাইস রোলিং স্কিমগুলি রোল এবং পরীক্ষা করে
সাইনোপিসিস
dicelab [বিকল্প] [-চ ]
বিকল্প
-h, --help, -?
একটি সাহায্য বার্তা প্রিন্ট করুন
--সংস্করণ, -v
প্রদর্শন সংস্করণ নম্বর
--calc, -c
বিতরণ গণনা
--রোল, -r
নির্দিষ্ট হিসাবে পাশা রোল. অন্য কোন পদক্ষেপের অনুরোধ না করা হলে এটিও ব্যবহার করা হবে
--ইভাল, -e
পরিসংখ্যানগত বন্টন পেতে অনেক বার রিরোল করুন এবং ফলাফলগুলি যোগ করুন
মূল্যবোধ
--গণনা, -n
--eval এর জন্য রিরোল সংখ্যা উল্লেখ করুন, ডিফল্ট এটি 10000
--প্রিন্ট-বৃক্ষ, -p
পার্স ট্রি প্রিন্ট করুন (ডিবাগিং উদ্দেশ্যে)
-f
stdin থেকে পরিবর্তে ফাইল থেকে স্কিমের বিবরণ পড়ুন
বর্ণনাঃ
ডাইসল্যাব একটি ফাইল থেকে বা ফাইল না থাকলে stdin থেকে ডাইস রোলিং স্কিমের একটি বিবরণ পড়ে
নির্দিষ্ট করা হয় এবং তারপর এই স্কিমটি রোল বা পরীক্ষা করে।
দ্রুত শুরু
'd' অপারেটর ব্যবহার করে সিঙ্গেল ডাই রোল তৈরি করা যেতে পারে, তারপরে মুখের সংখ্যা
ঘূর্ণিত করা ডাই. যেমন, d6 একটি একক ছয়-পার্শ্বযুক্ত ডাই রোল করবে, এবং d2 একটি মুদ্রা উল্টাবে।
অভিব্যক্তি মান গাণিতিক অপারেটর দ্বারা সংশোধন করা যেতে পারে. d10-1 একটি মান প্রদান করবে
0 এবং 9 এর মধ্যে, অন্তর্ভুক্ত। একই ধরনের একাধিক পাশা রোল করার জন্য, ব্যবহার করুন
পুনরাবৃত্তি অপারেটর '#'। 2#d6 দুটি ছয়-পার্শ্বযুক্ত পাশা রোল করবে; এটি 2*d6 এর মত নয়,
যা শুধুমাত্র একটি সিঙ্গেল ডাই রোল করে কিন্তু ফলাফলকে দুই দ্বারা গুণ করে, বা 2d6 যা a ঘটাবে
বাক্যগঠন ত্রুটি. দুটি ছয়-পার্শ্বযুক্ত ডাইসের যোগফল পেতে, যোগফল (2#d6) করুন।
সম্পূর্ণ বাক্য গঠন
::=
-?[0-9]+
::=
[A-Za-z]+
::=
|
| ( )
| -
| +
| -
| *
| /
| %
| ^
| .
| d
| যোগফল
| পণ্য
| গণনা
::=
#
| ( )
| ..
| ,
| পারম
| সাজান
| rev
| (ড্রপ|কিপ)? কম
| (ড্রপ|কিপ)? উচ্চ
| (ড্রপ|কিপ)? প্রথম
| (ড্রপ|কিপ)? শেষ
| (ড্রপ|কিপ)? ==
| (ড্রপ|কিপ)? !=
| (ড্রপ|কিপ)? <
| (ড্রপ|কিপ)? >
| (ড্রপ|কিপ)? <=
| (ড্রপ|কিপ)? >=
| যদি তারপর অন্য
| দিন = ভিতরে
| যখন = করতে
| প্রতিটির জন্য, প্রত্যেকটির জন্য ভিতরে করতে
::=
::=
| ;
C এর মত ডবল স্ল্যাশড (//) ব্যবহার করে মন্তব্য সন্নিবেশ করা যেতে পারে।
শব্দার্থবিদ্যা
+ - * / ^
যোগ, বিয়োগের জন্য এগুলি পরিচিত বাইনারি পাটিগণিত অপারেটর,
গুণ, ভাগ, এবং সূচক। শূন্যের দিকে ডিভিশন রাউন্ড।
উদাহরণ: 5+7, d6-1, 2^10
-
এটি ইউনারী মাইনাস অপারেটর। উদাহরণ:-1
%
এটি মডুলাস অপারেটর। x % y x এর অবশিষ্টাংশকে y দ্বারা ভাগ করে দেয়।
উদাহরণ: 11%2, d6%3
.
এটি স্কেলার কনক্যাটেনেশন অপারেটর। এক্স . y দেয় xy, x এর সংমিশ্রণ
এবং y উদাহরণ: -10.9, d6.d6
d
এটি ডাই রোল অপারেটর। dn একটি n-পার্শ্বযুক্ত একক রোলের মান দেয়
মারা উদাহরণ: d6, 2#d6
সমষ্টি শঙ্কু
এগুলি হল বর্ধিত সমষ্টি এবং পণ্য অপারেটর। যদি e একটি রাশি হয়, সমষ্টি e এবং
prod e এর সদস্যদের যোগফল এবং e এর সদস্যদের গুণফল দিন,
যথাক্রমে উদাহরণ: যোগফল(1..100), prod(3#d6)
গণনা
এটি তালিকা আকার অপারেটর. যদি e একটি অভিব্যক্তি হয়, তাহলে গণনা ই দেয়
ই এর সদস্য সংখ্যা উদাহরণ: গণনা(1,2,3), গণনা(== 6 10#d6)
#
এই তালিকা পুনরাবৃত্তি অপারেটর. যদি n একটি অঋণাত্মক স্কেলার হয় এবং e হয় একটি
অভিব্যক্তি, তাহলে n#e হল একটি তালিকা যেখানে e-এর n মূল্যায়নের ফলাফল রয়েছে।
উদাহরণ: 10#8, 3#d10
..
এটি রেঞ্জ অপারেটর। যদি x এবং y স্কেলার হয়, তাহলে x..y হল একটি তালিকা
ব্যবধানের [x,y]। যদি x>y, তাহলে ফলাফলের তালিকাটি খালি। উদাহরণ: 1..10,
4..d10
,
এই তালিকা সংযোজন অপারেটর. v,u সবগুলো নিয়ে গঠিত তালিকা দেয়
v-এর সদস্য, তারপর u-এর সকল সদস্য। উদাহরণ: 1,2 4,(3#d6)
সাজান
এটি তালিকা বাছাই অপারেটর. বাছাই করা এবং তালিকাকে ক্রমবর্ধমান ক্রমে সাজায়।
উদাহরণ: sort(10#d6)
স্থায়ী ঢেউ তোলা
এটি হল তালিকা পারমুটেশন অপারেটর। বাছাই ই এর একটি এলোমেলো স্থানান্তর ফলাফল
তালিকা ই. একটি তালিকা এলোমেলো করতে perm ব্যবহার করুন. উদাহরণ: perm(1..52)
এনজিনের পার
এই তালিকা বিপরীত অপারেটর. rev e একই সদস্যদের সাথে একটি তালিকার ফলাফল
তালিকা ই হিসাবে, কিন্তু বিপরীত ক্রমে. উদাহরণ: rev(1..10), rev sort(10#d8)
কম উচ্চ
এই অপারেটরগুলি তালিকায় সর্বনিম্ন এবং সর্বশ্রেষ্ঠ মান খুঁজে বের করে ফিল্টার হিসাবে কাজ করে।
যদি n একটি অঋণাত্মক স্কেলার হয় এবং e একটি অভিব্যক্তি হয়, তাহলে low ne n কম দেয়
e-এর সদস্য, এবং উচ্চ ne ই-এর সর্বশ্রেষ্ঠ সদস্য n দেয়। উদাহরণ: উচ্চ 3 5#d6
প্রথম গত
এই অপারেটরগুলি তালিকার প্রাথমিক এবং চূড়ান্ত অংশগুলি খুঁজে বের করে ফিল্টার হিসাবে কাজ করে। যদি n
একটি nonnegtive স্কেলার এবং e একটি অভিব্যক্তি, তারপর প্রথম ne প্রথম n দেয়
e-এর সদস্য, এবং শেষ ne ই-এর শেষ n সদস্যদের দেয়। উদাহরণ: প্রথম 3
(1..10)
== != < > <= >=
এই অপারেটরগুলি প্রদত্ত তালিকায় মান খুঁজে বের করে ফিল্টার হিসাবে কাজ করে
শর্তাবলী যদি x একটি স্কেলার হয় এবং e একটি অভিব্যক্তি হয়, তাহলে == xe এর তালিকা দেয়
x এর সমান e এর সদস্য; != xe e এর সদস্যদের তালিকা দেয় x এর সমান নয়; < x
e x এর চেয়ে কম e এর সদস্যদের তালিকা দেয়; > xe e এর সদস্যদের তালিকা দেয়
x এর চেয়ে বড়; <= xe x এর থেকে কম বা সমান e এর সদস্যদের তালিকা দেয়; >= x
e x এর চেয়ে বড় বা সমান e-এর সদস্যদের তালিকা দেয়। উদাহরণ: >= 3 5#d6
ঝরা রাখা
এই অপারেটররা তালিকায় ফিল্টার পরিবর্তন করে। যদি fop একটি ফিল্টার অপারেশন হয়
অভিব্যক্তি e, তারপর fop e-এর ফলাফল fop e এবং ড্রপ fop e মূল্যায়নের মতো একই ফলাফল রয়েছে
কম রাখা fop e. অন্য কথায়, ড্রপ ফিল্টার শর্তগুলিকে অস্বীকার করে এবং রাখুন
তাদের নিশ্চিত করে। Keep কখনই প্রয়োজনীয় নয় এবং শুধুমাত্র প্রতিসাম্যের জন্য বিদ্যমান। উদাহরণ:
যোগফল (ড্রপ কম 1 4#d6)
দিন
এটি পরিবর্তনশীল অ্যাসাইনমেন্ট এবং প্রতিস্থাপন অপারেটর। যদি x একটি চলক হয় এবং e
এবং f হল একটি এক্সপ্রেশন, তারপর f-এ x = e এ তালিকা দেয় যা থেকে ফলাফল পাওয়া যায়
f-এ x-এর প্রতিটি ঘটনার জন্য প্রতিস্থাপিত e-এর মান দিয়ে f-এর মূল্যায়ন করা।
প্রতিস্থাপনের আগে ই-এর মূল্যায়ন করা হয়। উদাহরণ: x*x-এ x = d6 লিখুন
প্রতিটির জন্য
এটি আবদ্ধ পুনরাবৃত্তি অপারেটর। যদি x একটি চলক এবং e এবং f হয়
এক্সপ্রেশন, তারপর e do f মধ্যে foreach x তালিকা দেয় যা বরাদ্দকরণের ফলাফল দেয়
e-এর প্রতিটি সদস্যকে x এবং মূল্যায়ন করা f. উদাহরণ: foreach x in c do x+1
যখন
এটি সীমাহীন পুনরাবৃত্তি অপারেটর। যদি x একটি চলক এবং e এবং f হয়
এক্সপ্রেশন, তারপর যখন x = e do f হল তালিকা v0,v1,...,vn, যেখানে v0 হল ফলাফল
e এবং vi+1 এর মূল্যায়ন হল x কে vi নির্ধারণ করার এবং f মূল্যায়ন করার ফলাফল,
প্রথম vi এ থামা যা খালি। উদাহরণ: x=d6 করার সময় ((গণনা <6 x)#d6)
if
এটি ব্রাঞ্চিং অপারেটর। e, f, এবং g যদি রাশি হয়, তাহলে e হলে f
অন্যথায় g দেয় f যদি e খালি না হয়, এবং অন্যথায় g দেয়। উদাহরণ: যদি গণনা (>4 2#d6) তাহলে
অন্য 1টি 0
উদাহরণ
7 এর চেয়ে বেশি পাশার সংখ্যা গণনা করুন:
গণনা >7 5#d10
7 এর সমান পাশার সংখ্যা 1 বিয়োগের চেয়ে বেশি পাশার সংখ্যা গণনা করুন:
যাক c=5#d10 in (count >7 c)-(count ==1 c)
একটি 6 রোল না হওয়া পর্যন্ত রোলের সংখ্যা গণনা করুন:
গণনা (যখন x=d6 করে (গণনা <6 x)#d6))
একটি 6 রোল না হওয়া পর্যন্ত রোলের সংখ্যা গণনা করুন, আরও দক্ষতার সাথে:
গণনা (যখন x=(d6/6) করবেন ((গণনা <1 x)#(d6/6)))
একটি নতুন D&D চরিত্রের জন্য রোল বৈশিষ্ট্য:
6#সমষ্টি(ড্রপ কম 1 4#d6)
গেমার্স সিভিল ওয়ার ব্রিগেড সিরিজে 11..66 মনোবল চেক টেবিলে রোল করুন:
d6.d6
3 d20 এর মধ্যমা খুঁজুন:
উচ্চ 1 নিম্ন 2 3#d20
3s-এ রিরোল সহ 6d6:
যোগফল(x=3#d6 করার সময় ((গণনা ==6 x)#d6))
রোল 7 d10 এবং অভিন্ন পাশার বৃহত্তম যোগফল খুঁজুন:
চলুন x = 7#d10 উচ্চ 1 এ (foreach y 1..10 এর সমষ্টি (==yx))
ফিবোনাচি ক্রম Fn = Fn-1 + Fn-2 দ্বারা F1 = F2 = 1 দ্বারা সংজ্ঞায়িত করা হয়। গণনা করুন
প্রথম বিশটি ফিবোনাচি সংখ্যা:
যাক n = 20 in
যাক f = (1,1) in
foreach i in 1..n do
যাক f = (f, যোগফল(উচ্চ 2 f)) ইন
if ==ni তারপর f অন্য ()
ঝুঁকির যুদ্ধ আছে যেখানে আক্রমণকারী 3d6 রোল করে এবং ডিফেন্ডার 2d6 রোল করে। সর্বোচ্চ
আক্রমণকারী ডাই সর্বোচ্চ ডিফেন্ডার ডাই এবং দ্বিতীয় সর্বোচ্চ আক্রমণকারী ডাইয়ের সাথে মিলে যায়
দ্বিতীয় সর্বোচ্চ ডিফেন্ডারের মৃত্যু। উভয় ম্যাচের জন্য, সর্বোচ্চ জয়, সঙ্গে টাই যাচ্ছে
প্রতিবাদী. আক্রমণকারীর জয়ের সংখ্যা:
যাক a = 3#d6 in
যাক b = 2#d6 in
গণনা (<(উচ্চ 1 ক) উচ্চ 1 খ),
(<(উচ্চ 1 নিম্ন 2 ক) নিম্ন 1 খ))
টার্গেট নম্বর 8 সহ গল্পকার ডাই রোল এবং -1 এ নির্দেশিত বচ:
c=5#d10 ইন করতে দিন
যাক succs = গণনা >7 গ ইন
যাক = গণনা == 1 গ ইন
যদি >0 succs তাহলে উচ্চ 1 (0, succs-ones)
অন্যথায় যদি >0 থাকে তাহলে -1 অন্য 0
নীরব মৃত্যুতে যুদ্ধ বরং জটিল। তিনটি পাশা পাকানো হয়. যদি তাদের যোগফল a এর উপরে হয়
লক্ষ্য, রোল একটি হিট হয়. ক্ষতি গণনা করতে, একই পাশা বাছাই করা হয়. যদি তিনটিই হয়
সমান, সমস্ত ক্ষতি ফলন যোগ করা হয়. কমপক্ষে দুইটি সমান হলেও তৃতীয়টি হয়
উচ্চতর, উচ্চ মরে ক্ষতি হয়. যদি দুটি সর্বোচ্চ সমান হয়, কিন্তু তৃতীয়টি নিম্ন হয়,
দুটি উচ্চ পাশা ক্ষতি ফলন সমষ্টি হয়. তিনটি পাশা ভিন্ন হলে,
মধ্যম ক্ষতি হয়. এই উদাহরণটি অনুমান করে যে ডাইস দুটি d8 এবং একটি d10, a সহ
লক্ষ্য সংখ্যা 15:
যাক x = 2#d8,d10 ইন
(গণনা >15 যোগফল x)#
a = low 1 x in // low die
let b = high 1 low 2 x in // মধ্যম ডাই
যাক c = উচ্চ 1 x ইন // উচ্চ ডাই
যদি ==a ==bc তাহলে a+b+c // সব সমান
অন্যথায় যদি ==a
অন্যথায় যদি >a ==cb তারপর b+c // দুটি উচ্চ সমান অন্য
b // সব আলাদা
ক্রেডিটস
ডিসেল্যাব টরবেন মোজেনসেনের চমৎকার কাজ "রোল" এর উপর ভিত্তি করে তৈরি
(http://www.diku.dk/~torbenm/Dice.zip) তার কাজ এবং মন্তব্য ছাড়া, এটা খুব কমই হবে
কখনও ঘটেছে.
বর্তমান ভাষার স্পেসিফিকেশন এবং মূল ভাষার এক্সটেনশনগুলি উদ্ভূত হয়েছে
জোয়েল উকেলম্যানের কাজ থেকে (http://dice.nomic.net/bones.html), অধিকাংশ
তার কাছ থেকে নথিপত্রও চুরি হয়েছে।
এই কোডটি লিখেছেন রবার্ট লেমেন[ইমেল সুরক্ষিত]> কে শুনলে খুশি হবে
আপনার প্রশ্ন এবং মন্তব্য.
onworks.net পরিষেবা ব্যবহার করে অনলাইনে dicelab ব্যবহার করুন