ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

dicelab - ออนไลน์ในคลาวด์

เรียกใช้ dicelab ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง dicelab ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


dicelab - หมุนและตรวจสอบแผนการทอยลูกเต๋า

เรื่องย่อ


ลูกเต๋า [ตัวเลือก] [-NS ]

OPTIONS


-h, --ช่วยด้วย, -?
พิมพ์ข้อความช่วยเหลือ

--รุ่น, -v
แสดงหมายเลขรุ่น

--คำนวณ, -c
คำนวณการกระจาย

--ม้วน, -r
ทอยลูกเต๋าตามที่กำหนด นอกจากนี้ยังจะใช้หากไม่มีการร้องขอการดำเนินการอื่น ๆ

--ประเมิน, -e
ทำซ้ำหลาย ๆ ครั้งและสรุปผลลัพธ์เพื่อรับการแจกแจงทางสถิติของ
ค่า

--นับ, -n
ระบุจำนวนการสุ่มใหม่สำหรับ --eval ค่าเริ่มต้นคือ 10000

--พิมพ์-ต้นไม้, -p
พิมพ์ parse tree (เพื่อการดีบัก)

-f
อ่านคำอธิบายโครงร่างจากไฟล์แทน stdin

DESCRIPTION


Dicelab อ่านคำอธิบายของแผนการทอยลูกเต๋าจากไฟล์หรือจาก stdin หากไม่มีไฟล์
ระบุแล้วม้วนหรือตรวจสอบโครงร่างนี้

QUICK เริ่มต้น


ม้วนเดียวสามารถทำได้โดยใช้ตัวดำเนินการ 'd' ตามด้วยจำนวนหน้าบน
แม่พิมพ์ที่จะรีด เช่น d6 จะหมุนลูกเต๋าหกด้านเดียว และ d2 จะพลิกเหรียญ
นิพจน์อาจถูกแก้ไขโดยตัวดำเนินการเลขคณิตมาตรฐาน d10-1 จะให้ค่า
ระหว่าง 0 ถึง 9 รวม ในการทอยลูกเต๋าประเภทเดียวกันหลายๆ ลูก ให้ใช้ปุ่ม
ตัวดำเนินการซ้ำ '#' 2#d6 จะทอยลูกเต๋าหกด้านสองลูก นี้ไม่เหมือนกับ 2*d6,
ซึ่งกลิ้งเพียงลูกเดียวแต่คูณผลลัพธ์ด้วยสองหรือ 2d6 ซึ่งจะทำให้a
ข้อผิดพลาดทางไวยากรณ์ เพื่อให้ได้ผลรวมของลูกเต๋าหกด้านสองลูก ให้ทำ sum(2#d6)

เต็ม ซิงค์


::=
-?[0-9]+
::=
[อา-ซ่า-ซ]+
::=

|
| ( )
| -
| +
| -
| *
| /
| %
| ^
| .
| NS
| ผลรวม
| แยง
| นับ
::=
#
| ( )
| ..
| ,
| ดัด
| เรียงลำดับ
| rev
| (วาง|เก็บ)? ต่ำ
| (วาง|เก็บ)? สูง
| (วาง|เก็บ)? แรก
| (วาง|เก็บ)? ล่าสุด
| (วาง|เก็บ)? ==
| (วาง|เก็บ)? !=
| (วาง|เก็บ)? <
| (วาง|เก็บ)? >
| (วาง|เก็บ)? <=
| (วาง|เก็บ)? >=
| ถ้า แล้ว อื่น
| ปล่อย = ใน
| ในขณะที่ = ทำ
| แต่ละ ใน ทำ
::=


::=

| ;

ความคิดเห็นอาจถูกแทรกโดยใช้เครื่องหมายทับคู่ (//) เช่นเดียวกับใน C

ความหมาย


+ - * / ^

เหล่านี้คือตัวดำเนินการเลขคณิตฐานสองที่คุ้นเคยสำหรับการบวก การลบ
การคูณ การหาร และการยกกำลัง หารรอบเป็นศูนย์
ตัวอย่าง: 5+7, d6-1, 2^10

-

นี่คือตัวดำเนินการลบเอกภาพ ตัวอย่าง: -1

%

นี่คือตัวดำเนินการโมดูลัส x % y ให้ส่วนที่เหลือของ x หารด้วย y
ตัวอย่าง: 11%2, d6%3

.

นี่คือตัวดำเนินการต่อสเกลาร์ NS . y ให้ xy การต่อกันของ x
และ ย. ตัวอย่าง: -10.9, d6.d6

d

นี่คือตัวดำเนินการม้วนแม่พิมพ์ dn ให้ค่าของม้วนเดียวของ n-sided
ตาย. ตัวอย่าง: d6, 2#d6

รวม แยง

เหล่านี้คือผลรวมเพิ่มเติมและตัวดำเนินการผลิตภัณฑ์ ถ้า e เป็นนิพจน์ ให้รวม e และ
แยง e ให้ผลรวมของสมาชิกของ e และผลิตภัณฑ์ของสมาชิกของ e
ตามลำดับ ตัวอย่าง: ผลรวม(1..100), การผลิต(3#d6)

นับ

นี่คือตัวดำเนินการขนาดรายการ ถ้า e เป็นนิพจน์ การนับ e ให้
จำนวนสมาชิกของ e. ตัวอย่าง: นับ(1,2,3), นับ(== 6 10#d6)

#

นี่คือตัวดำเนินการทำซ้ำรายการ ถ้า n เป็นสเกลาร์ไม่ติดลบ และ e เป็น an
นิพจน์ ดังนั้น n#e คือรายการที่มีผลลัพธ์ของการประเมิน n ของ e
ตัวอย่าง: 10#8, 3#d10

..

นี่คือตัวดำเนินการช่วง ถ้า x และ y เป็นสเกลาร์ ดังนั้น x..y คือรายการประกอบด้วย
ของช่วง [x,y] ถ้า x>y รายการผลลัพธ์จะว่างเปล่า ตัวอย่าง: 1..10,
4..ง10

,

นี่คือตัวดำเนินการต่อรายการ v,u ให้รายการประกอบด้วยทั้งหมด
สมาชิกของ v ตามด้วยสมาชิกของ u ทั้งหมด ตัวอย่าง: 1,2 4,(3#d6)

ประเภท

นี่คือตัวดำเนินการเรียงลำดับรายการ sort e เรียงลำดับรายการ e ตามลำดับจากน้อยไปมาก
ตัวอย่าง: เรียงลำดับ(10#d6)

ดัด

นี่คือตัวดำเนินการเรียงสับเปลี่ยนรายการ sort e ส่งผลให้เกิดการเรียงสับเปลี่ยนแบบสุ่มของ
รายการ e. ใช้ดัดผมเพื่อสับเปลี่ยนรายการ ตัวอย่าง: ดัด(1)

การหมุนรอบ

นี่คือตัวดำเนินการกลับรายการ rev e ผลลัพธ์ในรายการที่มีสมาชิกคนเดียวกัน
เป็นรายการ e แต่ในลำดับที่กลับกัน ตัวอย่าง: รอบ(1..10), เรียงรอบ(10#d8)

ต่ำ สูง

ตัวดำเนินการเหล่านี้ทำหน้าที่เป็นตัวกรองโดยการค้นหาค่าที่น้อยที่สุดและยิ่งใหญ่ที่สุดในรายการ
ถ้า n เป็นสเกลาร์ไม่ติดลบ และ e เป็นนิพจน์ ดังนั้น ne ต่ำจะให้ n น้อยที่สุด
สมาชิกของ e และ high ne ให้สมาชิกที่ยิ่งใหญ่ที่สุด n ของ e ตัวอย่าง: สูง 3 5#d6

เป็นครั้งแรก ล่าสุด

ตัวดำเนินการเหล่านี้ทำหน้าที่เป็นตัวกรองโดยการค้นหาส่วนเริ่มต้นและส่วนสุดท้ายของรายการ ถ้า n
เป็นสเกลาร์ที่ไม่เป็นลบ และ e เป็นนิพจน์ จากนั้น ne ให้ n . ตัวแรก
สมาชิกของ e และ ne สุดท้าย ให้สมาชิก n คนสุดท้ายของ e ตัวอย่าง: 3 . แรก
(1..10)

== != < > <= >=

ตัวดำเนินการเหล่านี้ทำหน้าที่เป็นตัวกรองโดยการค้นหาค่าในรายการที่ตรงตามที่กำหนด
เงื่อนไข. ถ้า x เป็นสเกลาร์ และ e เป็นนิพจน์ ดังนั้น == xe จะแสดงรายการของ
สมาชิกของ e เท่ากับ x; != xe ให้รายชื่อสมาชิกของ e ไม่เท่ากับ x; < x
e ให้รายชื่อสมาชิกของ e น้อยกว่า x; > xe ให้รายชื่อสมาชิกของ e
มากกว่า x; <= xe ให้รายชื่อสมาชิกของ e น้อยกว่าหรือเท่ากับ x; >= x
e ให้รายชื่อสมาชิกของ e ที่มากกว่าหรือเท่ากับ x ตัวอย่าง: >= 3 5#d6

หล่น เก็บ

ตัวดำเนินการเหล่านี้แก้ไขตัวกรองในรายการ หาก fop เป็นการดำเนินการกรองบน ​​an
นิพจน์ e จากนั้นให้ fop e มีผลเช่นเดียวกับ fop e และปล่อย fop e ประเมิน
ให้ fop e น้อยลง กล่าวอีกนัยหนึ่ง ดรอปจะลบล้างเงื่อนไขตัวกรอง และเก็บ
ยืนยันพวกเขา ไม่จำเป็นและมีอยู่เพื่อความสมมาตรเท่านั้น ตัวอย่าง:
ผลรวม(ลดลงต่ำ 1 4#d6)

ให้

นี่คือตัวดำเนินการกำหนดตัวแปรและการแทนที่ ถ้า x เป็นตัวแปรและ e
และ f เป็นนิพจน์ จากนั้นให้ x = e ใน f ให้รายการที่เป็นผลจาก
ประเมินค่า f ด้วยค่าของ e แทนที่ทุกครั้งที่เกิดขึ้นของ x ใน f
การประเมิน e ทำได้ก่อนการแทนที่ ตัวอย่าง: ให้ x = d6 ใน x*x

แต่ละ

นี่คือตัวดำเนินการวนซ้ำที่มีขอบเขต ถ้า x เป็นตัวแปร และ e และ f เป็น
นิพจน์ แล้ว foreach x ใน e do f ให้รายการที่เป็นผลมาจากการกำหนด
ถึง x สมาชิกของ e แต่ละตัวและประเมินค่า f ตัวอย่าง: foreach x ใน c ทำ x+1

ในขณะที่

นี่คือตัวดำเนินการวนซ้ำที่ไม่มีขอบเขต ถ้า x เป็นตัวแปร และ e และ f เป็น
นิพจน์ ดังนั้นในขณะที่ x = e do f คือรายการ v0,v1,...,vn โดยที่ v0 คือผลลัพธ์
ของการประเมิน e และ vi+1 เป็นผลมาจากการกำหนด vi ให้กับ x และการประเมิน f
หยุดที่ vi แรกซึ่งว่างเปล่า ตัวอย่าง: ในขณะที่ x=d6 ทำ ((นับ <6 x)#d6)

if

นี่คือตัวดำเนินการการแตกแขนง ถ้า e, f และ g เป็นนิพจน์ ถ้า e แล้ว f
อื่น g ให้ f ถ้า e ไม่ว่าง และ g ไม่เช่นนั้น ตัวอย่าง: if count(>4 2#d6) แล้ว
อีก 1 รายการ 0

ตัวอย่าง


นับจำนวนลูกเต๋าที่มากกว่า 7:

นับ >7 5#d10

นับจำนวนลูกเต๋าที่มากกว่า 7 ลบด้วยจำนวนลูกเต๋าเท่ากับ 1:

ให้ c=5#d10 ใน (นับ >7 c)-(นับ ==1 c)

นับจำนวนม้วนจนกว่าจะถึง 6 ม้วน:

นับ (ในขณะที่ x=d6 ทำ ((นับ <6 x)#d6))

นับจำนวนม้วนจนครบ 6 ม้วน อย่างมีประสิทธิภาพมากขึ้น:

นับ (ในขณะที่ x=(d6/6) ทำ ((นับ <1 x)#(d6/6)))

คุณลักษณะม้วนสำหรับอักขระ D&D ใหม่:

6#ผลรวม(ลดลงต่ำ 1 4#d6)

เลื่อนตารางตรวจสอบขวัญกำลังใจ 11..66 ในชุด The Gamers' Civil War Brigade:

d6.d6

ค้นหาค่ามัธยฐานของ 3 d20s:

สูง 1 ต่ำ 2 3#d20

3d6 พร้อม rerolls ใน 6s:

ผลรวม(ในขณะที่ 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 นิ้ว
ให้ f = (1,1) ใน
foreach ฉันใน 1..n do
ให้ f = (f,sum(สูง 2 f)) ใน
ถ้า ==ni แล้ว f อื่น ()

ความเสี่ยงมีการต่อสู้ที่ผู้โจมตีหมุน 3d6 และผู้พิทักษ์หมุน 2d6 สูงที่สุด
ผู้โจมตีตายจะจับคู่กับผู้โจมตีสูงสุดและผู้โจมตีสูงสุดอันดับสอง
ให้ผู้พิทักษ์สูงสุดอันดับสองตาย ทั้งสองแมตช์ ชนะสูงสุด เสมอกัน
ผู้พิทักษ์ จำนวนผู้โจมตีชนะ:

ให้ a = 3#d6 ใน
ให้ b = 2#d6 ใน
นับ ((<(สูง 1 a) สูง 1 b),
(<(สูง 1 ต่ำ 2 a) ต่ำ 1 b))

Storyteller die roll กับเป้าหมายหมายเลข 8 และจุดบอดที่ระบุที่ -1:

ให้ c=5#d10 ใน
ให้ succs = นับ >7 c ใน
ให้คน = นับ == 1 c ใน
ถ้า >0 สำเร็จ ให้สูง 1 (0,สำเร็จ-คน)
อื่นถ้า >0 ตัวแล้ว -1 อื่น 0

การต่อสู้ใน Silent Death ค่อนข้างซับซ้อน ลูกเต๋าสามลูกถูกทอย หากผลรวมของพวกเขาสูงกว่า a
เป้าหมาย ม้วนเป็นตี. ในการคำนวณความเสียหาย จะเรียงลูกเต๋าเดียวกัน ถ้าทั้งสามเป็น
เท่ากันทั้งหมดจะรวมกันเพื่อสร้างความเสียหาย ถ้าอย่างน้อยสองคนเท่ากัน แต่ที่สามคือ
สูงกว่าดายสูงคือความเสียหาย ถ้าสองตัวสูงสุดเท่ากัน แต่ตัวที่สามต่ำกว่า
ลูกเต๋าสูงสองลูกจะรวมกันเพื่อสร้างความเสียหาย หากลูกเต๋าทั้งสามลูกต่างกัน
ดายกลางคือความเสียหาย ตัวอย่างนี้ถือว่าลูกเต๋าเป็นสอง d8 และ d10 โดยมี a
เป้าหมายหมายเลข 15:

ให้ x = 2#d8,d10 ใน
(นับ >15 ผลรวม x)#
ให้ a = ต่ำ 1 x ใน // ตายต่ำ
ให้ b = สูง 1 ต่ำ 2 x ใน // ดายกลาง
ให้ c = สูง 1 x ใน // ตายสูง
ถ้า ==a ==bc แล้ว a+b+c // ทั้งหมดเท่ากัน
อย่างอื่นถ้า ==a
อื่นถ้า >a ==cb แล้ว b+c // สองสูงเท่ากับelse
b // ต่างกันทั้งหมด

เครดิต


Dicelab ขึ้นอยู่กับ "ม้วน" ผลงานที่ยอดเยี่ยมโดย Torben Mogensen
(http://www.diku.dk/~torbenm/Dice.zip). หากไม่มีงานและความคิดเห็นของเขา เรื่องนี้ก็แทบจะไม่มี
เคยเกิดขึ้น

ข้อกำหนดภาษาปัจจุบันและส่วนขยายของภาษาต้นฉบับได้รับมา
จากผลงานของ Joel Uckelman (http://dice.nomic.net/bones.html) ส่วนใหญ่ของ
เอกสารก็ถูกขโมยไปจากเขาเช่นกัน

รหัสนี้เขียนโดย Robert Lemmen[ป้องกันอีเมล]>ใครเล่าจะยินดีฟัง
คำถามและข้อสังเกตของคุณ

ใช้ dicelab ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    AstrOrzPlayer
    AstrOrzPlayer
    AstrOrz Player เป็นเครื่องเล่นสื่อฟรี
    ซอฟต์แวร์ ส่วนหนึ่งขึ้นอยู่กับ WMP และ VLC เดอะ
    เครื่องเล่นในสไตล์มินิมอลด้วย
    ธีมสีมากกว่าสิบสีและยังสามารถ
    ข ...
    ดาวน์โหลด AstrOrzPlayer
  • 2
    movistartv
    movistartv
    Kodi Movistar+ TV และ ADDON สำหรับ XBMC/
    Kodi que อนุญาต disponer de un
    ตัวถอดรหัสของ los servicios IPTV ของ
    Movistar รวมเข้าด้วยกัน
    ศูนย์สื่อแม...
    ดาวน์โหลด movistartv
  • 3
    รหัส :: บล็อก
    รหัส :: บล็อก
    Code::Blocks เป็นโอเพ่นซอร์สฟรี
    ข้ามแพลตฟอร์ม C, C++ และ Fortran IDE
    สร้างขึ้นเพื่อตอบสนองความต้องการสูงสุด
    ของผู้ใช้ มันถูกออกแบบมาให้มาก
    ขยาย...
    ดาวน์โหลด Code::Blocks
  • 4
    ท่ามกลาง
    ท่ามกลาง
    ท่ามกลางหรือส่วนต่อประสาน Minecraft ขั้นสูง
    และการติดตามข้อมูล/โครงสร้างเป็นเครื่องมือในการ
    แสดงภาพรวมของ Minecraft
    โลกโดยไม่ต้องสร้างมันขึ้นมาจริงๆ มัน
    สามารถ ...
    ดาวน์โหลดท่ามกลาง
  • 5
    เอ็มซิส2
    เอ็มซิส2
    MSYS2 คือชุดเครื่องมือและ
    ห้องสมุดที่ให้คุณ
    สภาพแวดล้อมที่ง่ายต่อการใช้งานสำหรับอาคาร
    การติดตั้งและใช้งาน Windows ดั้งเดิม
    ซอฟต์แวร์. มันคอน...
    ดาวน์โหลด MSYS2
  • 6
    libjpeg-เทอร์โบ
    libjpeg-เทอร์โบ
    libjpeg-turbo เป็นตัวแปลงสัญญาณภาพ JPEG
    ที่ใช้คำสั่ง SIMD (MMX, SSE2,
    NEON, AltiVec) เพื่อเร่งการตรวจวัดพื้นฐาน
    เปิดการบีบอัดและคลายการบีบอัด JPEG
    x86,x8...
    ดาวน์โหลด libjpeg-turbo.dll
  • เพิ่มเติม»

คำสั่ง Linux

Ad