Codington Crescent เพิ่มเติม
ใครจะลองอีกครั้ง
หากคุณเคยฟังรายการวิทยุ "ฉันขอโทษฉันไม่มีเงื่อนงำ" คุณคงเคยได้ยินเกมชื่อ "Mornington Crescent" สำหรับผู้ที่ยังไม่เคยเล่นเกมนี้เป็นเกมที่ผู้เล่นตั้งชื่อสถานีแบบสุ่มบนเครือข่ายรถไฟใต้ดินของลอนดอน คนแรกที่ชื่อ "Mornington Crescent" เป็นผู้ชนะในเกมนี้ 1
มากเหมือนครั้งสุดท้ายที่ผมนำเสนอให้คุณเล่นเกมของผู้อื่นCodington เสี้ยว
ความท้าทาย
ผู้ชนะในความท้าทายนี้คือบุคคลแรกที่โพสต์โปรแกรมการทำงานที่ได้รับรายการจำนวนเต็มบวกที่มีขนาดตัวแปรจะส่งกลับค่าเฉลี่ย (ค่าเฉลี่ยเลขคณิต) ของรายการดังกล่าว รายการจะไม่ว่างเปล่าและจะมีอย่างน้อยหนึ่งรายการเสมอ อินพุตและเอาต์พุตสามารถกำหนดได้ในรูปแบบที่เหมาะสมและสะดวกสบาย
กรณีทดสอบ
[150, 541, 168, 225, 65, 191, 964, 283, 825, 5, 802, 426, 45, 326, 22, 619, 281] => 349.29411764705884
[874, 33, 423, 36, 1000, 255, 345, 902, 700, 141, 916, 959, 222, 246, 96] => 476.53333333333336
[567, 868, 680, 121, 574, 391, 233, 39, 764, 499, 455, 684, 742, 117, 376] => 474.0
[177, 372, 778, 709, 474, 796, 840, 742] => 611.0
[181, 751, 940, 782, 727, 756, 541, 762, 677, 751, 719] => 689.7272727272727
[47, 804, 782, 231, 170] => 406.8
[315, 972] => 643.5
[679, 727] => 703.0
[859, 229, 363, 468, 103, 104, 570, 772, 83, 693, 898, 672, 306, 733, 189, 717, 231] => 470.0
[228, 839] => 533.5
[395, 622, 760, 820, 70, 814, 797, 202, 277, 663, 93, 218, 564, 735] => 502.14285714285717
[724, 631, 932, 333, 605, 880, 670, 468, 703, 744, 680, 28] => 616.5
[950, 733, 305, 178, 995] => 632.2
[762, 506, 553, 284, 499, 694, 665, 998, 576, 504, 123, 658, 943, 385, 354, 732] => 577.25
[151, 919, 514, 721, 426, 333, 808, 514] => 548.25
[995] => 995.0
[891, 243, 42, 968, 458, 372, 301, 269, 559, 394, 980, 372, 804, 429, 738] => 521.3333333333334
[147, 473, 632] => 417.3333333333333
[105, 483, 225, 541, 684, 456, 328] => 403.14285714285717
[311, 1, 770, 417, 910, 185, 375, 631, 226, 266, 609] => 427.3636363636364
กฎระเบียบ
- ผู้เล่นแต่ละคนมีโปรแกรมของตัวเองที่จะเพิ่ม / เปลี่ยนตัวละคร นี้จะเรียกว่าพวกเขาโปรแกรมทำงาน
แต่ละคำตอบ ( เทิร์น ) ต้องเป็นไปตามข้อ จำกัด ของแหล่งที่มาที่กำหนดโดยคำตอบก่อนหน้า เหล่านี้เรียกว่ากฎ แต่ละตัวแปรมีระยะเวลา 5 เทิร์น กฎอยู่ในรูปแบบของการจำกัด แหล่งที่มาที่ถูก จำกัด
การรันโปรแกรมสามารถเปลี่ยนภาษาระหว่างผลัดกันได้
ผู้ตอบ (ผู้เล่น) สามารถเพิ่มเปลี่ยนแปลงหรือลบ (แต่มีเพียงหนึ่งในตัวเลือก) ตามจำนวนตัวละครของโปรแกรมที่กำลังทำงานต่อเทิร์นตามที่ต้องการ หรืออีกวิธีหนึ่งคือพวกเขาสามารถเลือกที่จะ "ผ่าน" (ในทางวิทยาศาสตร์มากขึ้น , farkle ) โดยไม่ต้องเพิ่มกฎใหม่และยังคงนับเป็นเทิร์น นี่อาจเป็นทางเลือกเดียวหากกฎขัดแย้งกัน จำนวนเทิร์นยังคงเพิ่มขึ้นและจะโพสต์ เคล็ดลับสำหรับมือโปร: คุณอาจต้องการทำเครื่องหมายว่า community wiki เพราะไม่ได้เพิ่มอะไรมาก
ในตอนท้ายของแต่ละเทิร์นผู้เล่นจะประกาศกฎใหม่ซึ่งจะครอบคลุม 5 เทิร์นถัดไป กฎต้องมีวัตถุประสงค์และขอแนะนำให้ใช้โปรแกรมการตรวจสอบ TIO นอกจากนี้กฎต้องสามารถนำไปใช้กับทุกภาษา (เช่น
Programs must not error using Python 3.4.2ไม่ใช่กฎที่ถูกต้อง)เล่นต่อไปจนกว่าโปรแกรมที่กำลังทำงานจะบรรลุผลตามเป้าหมาย
หากไม่มีการเลี้ยวเป็นเวลาหนึ่งสัปดาห์ก็จะเกิดการโต้กลับโดยปริยาย คุณสามารถหันหลังให้โดยนัยได้ตลอดเวลาเนื่องจากนับเป็นเทิร์น (คิดว่าเป็นเทิร์นของผู้ใช้ชุมชน)
กฎเริ่มต้น
ในการเริ่มเกม 5 เทิร์นแรกต้องปฏิบัติตามกฎต่อไปนี้:
- เทิร์นอาจไม่บรรลุเป้าหมายสุดท้าย
- ความยาวโปรแกรมขั้นต่ำคือ 10 ไบต์
กฎถาวร
ครั้งที่แล้วมีการตั้งข้อสังเกตว่ากฎต่อไปนี้เหมาะสมกับกฎถาวรมากกว่ากฎ 5 รอบ:
โปรแกรมที่รันจะต้องไม่สามารถลดทอนได้ ไม่สามารถลดได้ในกรณีนี้หมายความว่าโปรแกรมจะไม่สร้างผลลัพธ์ของโปรแกรมทั้งหมดหากอักขระจากโปรแกรมทั้งหมดถูกลบออก ได้แก่ . ไม่มีโปรแกรมที่มีเอาต์พุตดีฟอลต์เดียวกันที่สามารถสร้างโดยการลบอักขระออกจากโปรแกรมต้นฉบับ)
โปรแกรมไม่สามารถชนะได้ภายใน 5 รอบของการปรากฏตัวครั้งแรก
ตัวอย่างกฎ
นี่เป็นเพียงตัวอย่างของสิ่งที่คุณสามารถเพิ่มเป็นกฎในการท้าทายได้ พวกเขาใช้ไม่ได้เว้นแต่จะมีใครตัดสินใจใช้
- อักขระตัวแรกและตัวสุดท้ายของโปรแกรมที่กำลังรันต้องเว้นวรรค
- โปรแกรมที่รันต้องมีจำนวนไบต์เท่ากัน
- โปรแกรมที่รันต้องมีขนาดไม่เกิน 30 ไบต์
กฎการผูกมัดคำตอบพิเศษ
- คุณไม่สามารถตอบสองครั้งติดต่อกัน คนอื่นต้องตอบก่อนที่คุณจะไปอีก
- ภาษาต้องอยู่ใน Try It Online จึงจะเป็นคำตอบที่ถูกต้อง
Pro-tip: จัดเรียงตามลำดับที่เก่าแก่ที่สุดเพื่อให้ได้คำตอบที่สอดคล้องกันมากขึ้น
1 เกมดั้งเดิมของ Mornington Crescent ไม่มีกฎจริงๆ ... เป็นกิจกรรมที่ดูเหมือนว่าเป็นเกมที่ซับซ้อน
เทมเพลตคำตอบ
# [Language], turn number [your turn]
<code>
[Try it online link]
[prev answer link]
## Rules
- Rule (n turns left)
- Rule (n turns left)
- Rule (n turns left)
คำตอบ
05AB1Eเลี้ยว 3
$XY~sDOsg/*+
(ฉันจะเชื่อมโยงไปยังคำตอบก่อนหน้าได้อย่างไร)
บอยฉันรัก Code Golf!
คำอธิบาย
$ # Push 1 and input
X # Push 1
Y # Push 2
~ # Converts 1 and 2 to 3
s # Swap to get implicit input
D # Duplicate
O # Sum the list
s # Swap top 2 values and gets the preserved list.
g # Push the length of the list.
/ # Push the quotient of sum and length
* # Multiply with 3
+ # Add with one
กฎปัจจุบัน
- เทิร์นอาจไม่บรรลุเป้าหมายสุดท้าย - พิมพ์ค่าเฉลี่ยสามเท่าบวกหนึ่ง ( 2 เทิร์นซ้าย! )
- ความยาวโปรแกรมขั้นต่ำคือ 10 ไบต์ (3 ทางซ้าย) - ความยาวของโปรแกรมคือ 12 ไบต์ ( 2 เลี้ยวซ้าย! )
- โปรแกรมต้องมีอักขระ ~ - อักขระควรจะดันบิตหรือ 1 และ 2 ( 3 เลี้ยวซ้าย! )
- โปรแกรมต้องมีค่าไบต์เฉลี่ยน้อยกว่าหรือเท่ากับ 80 - ค่าไบต์เฉลี่ยของโปรแกรมคือ 79.25 (เลี้ยวซ้าย 4 ครั้ง!)
กฎใหม่
ดรัมโรล
โปรแกรมต้องมีอักขระที่ไม่ใช่ตัวเลขและตัวอักษร 5-10 ตัว (เลี้ยวซ้าย 5 ตัว!)
Io , 20 ไบต์
ส่งกลับค่าเฉลี่ย + 1
method(~,~average+1)
กฎ
5 เทิร์นแรกต้องปฏิบัติตามกฎเหล่านี้:
- เทิร์นอาจไม่บรรลุเป้าหมายสุดท้าย
- ความยาวโปรแกรมขั้นต่ำคือ 10 ไบต์
สิ่งนี้ใช้ได้กับโปรแกรมที่กำลังทำงานอยู่ทั้งหมด:
โปรแกรมที่รันจะต้องไม่สามารถลดทอนได้ ไม่สามารถลดได้ในกรณีนี้หมายความว่าโปรแกรมจะไม่สร้างผลลัพธ์ของโปรแกรมทั้งหมดหากอักขระจากโปรแกรมทั้งหมดถูกลบออก ได้แก่ . ไม่มีโปรแกรมที่มีเอาต์พุตดีฟอลต์เดียวกันที่สามารถสร้างโดยการลบอักขระออกจากโปรแกรมต้นฉบับ)
โปรแกรมไม่สามารถชนะได้ภายใน 5 รอบของการปรากฏตัวครั้งแรก
กฎใหม่:
- โปรแกรมต้องมี
~อักขระ
Python 3 , 23 ไบต์, เทิร์น 2
lambda l:sum(l)/~len(l)
ป้อนเป็นรายการลอย เอาท์พุตเป็นลอย
กฎ
กฎถาวร:
โปรแกรมที่รันจะต้องไม่สามารถลดทอนได้ ไม่สามารถลดได้ในกรณีนี้หมายความว่าโปรแกรมจะไม่สร้างผลลัพธ์ของโปรแกรมทั้งหมดหากอักขระจากโปรแกรมทั้งหมดถูกลบออก ได้แก่ . ไม่มีโปรแกรมที่มีเอาต์พุตดีฟอลต์เดียวกันที่สามารถสร้างโดยการลบอักขระออกจากโปรแกรมต้นฉบับ)
โปรแกรมไม่สามารถชนะได้ภายใน 5 รอบของการปรากฏตัวครั้งแรก
กฎปัจจุบัน:
- การเลี้ยวอาจไม่บรรลุเป้าหมายสุดท้าย (3 รอบซ้าย)
- ความยาวโปรแกรมขั้นต่ำ 10 ไบต์ (3 รอบซ้าย)
- โปรแกรมต้องมี
~อักขระ (4 เลี้ยวซ้าย)
กฎใหม่ของฉัน:
- โปรแกรมต้องมีค่าไบต์เฉลี่ยน้อยกว่าหรือเท่ากับ 80 (ตัวตรวจสอบ )
Befunge-98 (PyFunge) , 13 ไบต์, เทิร์น 5
(เทิร์น 4 เป็น farkle โดยปริยาย)
"PDPF"4(~FP@
คำตอบนี้ยังห่างไกลจากการชนะ แต่ฉันรวมอักขระบางตัวไว้ด้วยซึ่งโปรแกรมเฉลี่ยในภาษานี้น่าจะต้องการและรักษาความท้าทายไว้
กฎ:
- โปรแกรมอาจไม่บรรลุเป้าหมายสุดท้าย (เทิร์นสุดท้าย)
- ความยาวโปรแกรมขั้นต่ำ 10 ไบต์ (รอบสุดท้าย)
- โปรแกรมต้องมีอักขระ ~ (1 เลี้ยวซ้าย)
- โปรแกรมต้องมีค่าไบต์เฉลี่ยน้อยกว่าหรือเท่ากับ 80 (2 เลี้ยวซ้าย)
- โปรแกรมต้องมีอักขระที่ไม่ใช่ตัวเลขและตัวอักษร 5-10 ตัว (เลี้ยวซ้าย 3 ตัว!)
- โปรแกรมต้องไม่มีตัวอักษรพิมพ์เล็ก 2 ตัวต่อเนื่องกัน (เลี้ยวซ้าย 5 ตัว)