คำถามติดแท็ก chess

หมากรุกเป็นเกมกลยุทธ์ที่เล่นกับผู้เล่นสองคนบนตารางหมากรุก แท็กนี้สำหรับความท้าทายที่เกี่ยวข้องกับหมากรุกหรือการเปลี่ยนแปลงใด ๆ ในหมากรุก

2
Chess-olition Derby
สิ่งที่อาจจะเป็นขั้วตรงข้ามมากกว่าหมากรุกและดาร์บี้รื้อถอน คุณจะคิดว่าไม่มีใครที่สนุกกับคนหนึ่งจะเพลิดเพลินไปกับคนอื่น ... จนกระทั่งวันนี้ กฎระเบียบ ตำแหน่งเริ่มต้นคือกระดานหมากรุกมาตรฐาน: RNBQKBNR PPPPPPPP PPPPPPPP RNBQKBNR ดูปกติพอจนกว่าคุณจะพบว่ามันเป็นชิ้นส่วนของตัวเองทุกชิ้นสุดท้ายการแข่งขันยืนอยู่ : ในทุกเทิร์นแต่ละชิ้นบนกระดานจะทำการสุ่มหนึ่งครั้ง * - เลือกที่ถูกต้อง (โดยใช้กฎการย้ายแบบมาตรฐาน) อย่างไรก็ตามการเรียงลำดับชิ้นส่วนจะถูกสุ่มทุกเทิร์น ชิ้นส่วนสามารถจับภาพชิ้นใดก็ได้ก็ได้แม้ว่าจะเป็นสีเดียวกันกับมันแม้กระทั่งราชา ผู้รับจำนำสามารถจับภาพไปข้างหน้าเช่นเดียวกับในแนวทแยง ยิ่งไปกว่านั้นเช่นเดียวกับปกติหากมีช่องว่างด้านหน้าตัวรับจำนำสามารถย้ายช่องว่างสองช่องในการเคลื่อนไหวครั้งแรก (พวกเขาสามารถจับได้ด้วยวิธีนั้น) นอกจากนี้การจำนำจะเลื่อนไปที่ชิ้นส่วนสุ่ม (รวมถึงกษัตริย์) นอกเหนือจาก จำนำ. ผู้ชนะคือชิ้นสุดท้ายที่ยืน อย่างไรก็ตามหากหลังจาก1,000 รอบมีมากกว่าหนึ่งชิ้นส่วนที่เหลือทั้งหมดเป็นผู้ชนะ ไม่มีผู้โดยสาร, ตรวจสอบ, ปราสาท ฯลฯ เอาท์พุต ทุกเทิร์นจะแสดงหมายเลขเทิร์นตามที่คณะกรรมการกำหนด หลังจากชิ้นส่วนถูกฆ่ามันจะถูกลบออกจากกระดาน หลังจากรอบแรกคณะกรรมการอาจมีลักษณะเช่นนี้: 1. K RBQ N BR NP P P PP P P R PP …

7
ความน่าจะเป็นที่อัศวินเข้าพักบนกระดานหมากรุกคืออะไร?
กำหนดขนาดของกระดานหมากรุกและตำแหน่งเริ่มต้นของอัศวินคำนวณความน่าจะเป็นที่หลังจากการkย้ายอัศวินจะอยู่ในกระดานหมากรุก บันทึก: อัศวินทำให้การเคลื่อนไหวที่เป็นไปได้ทั้งหมด 8 อย่างด้วยความน่าจะเป็นที่เท่ากัน เมื่ออัศวินอยู่นอกกระดานหมากรุกมันจะไม่สามารถกลับมาข้างในได้ อินพุต อินพุตถูกคั่นด้วยเครื่องหมายจุลภาคในแบบฟอร์ม: l,k,x,y โดยที่lความยาวและความกว้างของกระดานหมากรุกkคือจำนวนของการเคลื่อนไหวที่อัศวินจะทำxคือตำแหน่ง x ของตำแหน่งเริ่มต้นของอัศวินและyเป็นตำแหน่ง y ของตำแหน่งเริ่มต้นของอัศวิน โปรดทราบว่า0,0เป็นมุมซ้ายล่างของกระดานและl-1,l-1เป็นมุมบนขวาของกระดาน ขั้นตอนวิธีการ: เริ่มต้นด้วยพิกัดเริ่มต้นของอัศวิน ทำการย้ายที่เป็นไปได้ทั้งหมดสำหรับตำแหน่งนี้และคูณการเคลื่อนไหวเหล่านี้ด้วยความน่าจะเป็นของพวกเขาสำหรับการย้ายแต่ละครั้งจะเรียกใช้ฟังก์ชันต่อไปเรื่อย ๆ จนกว่าจะถึงเงื่อนไขการยกเลิก เงื่อนไขการสิ้นสุดคือถ้าอัศวินอยู่นอกกระดานหมากรุกในกรณีนี้คืน 0 หรือจำนวนการเคลื่อนไหวที่ต้องการหมดลงในกรณีนี้คืน 1 ดังที่เราเห็นได้ว่าสถานะปัจจุบันของการเรียกซ้ำขึ้นอยู่กับพิกัดปัจจุบันและจำนวนขั้นตอนที่ทำได้เท่านั้น ดังนั้นเราสามารถจดจำข้อมูลนี้ในรูปแบบตาราง เครดิต ความท้าทายนี้มาจากการโพสต์บล็อกของcrazyforcode.comเผยแพร่ภายใต้ใบอนุญาตCC BY-NC-ND 2.5 IN มันได้รับการดัดแปลงเล็กน้อยเพื่อให้มีความท้าทายมากขึ้น
16 code-golf  chess 

3
king + rook เทียบกับ king
มันเป็นจุดจบของเกมหมากรุกที่เล่นได้ดีอีกเกมหนึ่ง คุณเป็นผู้เล่นผิวขาวและคุณยังมีนักเล่นเกมและราชาของคุณ ฝ่ายตรงข้ามของคุณมีเพียงกษัตริย์ของเขาที่เหลือ เมื่อคุณเป็นคนผิวขาวมันเป็นตาของคุณ สร้างโปรแกรมเพื่อเล่นหมากรุกนี้ เอาต์พุตสามารถเป็นลำดับของการเคลื่อนไหวภาพเคลื่อนไหว gif ASCII art หรืออะไรก็ได้ที่คุณชอบ ดูเหมือนจะค่อนข้างชัดเจน แต่ฉันจะระบุอย่างชัดเจนว่าคุณต้องชนะเกม (ในจำนวนที่ จำกัด ของการเคลื่อนไหว) เป็นไปได้เสมอที่จะชนะจากตำแหน่งนี้ อย่าเสียความเป็นไปได้ อย่าหยุดยั้ง โปรแกรมของคุณอาจยอมรับหรือไม่ยอมรับอินพุตที่เป็นมนุษย์สำหรับตำแหน่งเริ่มต้นและสำหรับการเคลื่อนไหวแต่ละครั้งของ Black (คุณสามารถสันนิษฐานได้ว่านี่เป็นตำแหน่งทางกฎหมายเช่นกษัตริย์ไม่ได้สัมผัสกัน) หากไม่มีตำแหน่งเริ่มต้นแบบสุ่มและการเคลื่อนไหวแบบสุ่มสำหรับราชาดำจะพอเพียง คะแนน คะแนนของคุณจะมีความยาวเป็นไบต์ของรหัส + โบนัสของคุณ อนุญาตให้ใช้ภาษาใดก็ได้คะแนนต่ำสุดชนะ โบนัส -50 หากโปรแกรมของคุณอนุญาตทั้งตำแหน่งเริ่มต้นที่กำหนดโดยมนุษย์และตำแหน่งที่สุ่ม มนุษย์สามารถป้อนผ่าน stdin, ไฟล์, GUI ... -100 ถ้าโปรแกรมของคุณอนุญาตทั้งมนุษย์และผู้เล่นสุ่มที่จะย้ายราชาดำ +12345 ถ้าคุณพึ่งพาตัวแก้หมากรุกภายนอกหรือห้องสมุดหมากรุกในตัว โชคดี! Update! กฎพิเศษ: การแข่งขันจะต้องเล่นจนกว่าจะรุกฆาต แบล็กไม่ยอมแพ้ไม่กระโดดนอกกระดานหมากรุกและไม่โดนคนต่างด้าวลักพาตัว เปรย คุณอาจจะได้รับความช่วยเหลือจากคำถามนี้ในchess.se
16 code-golf  chess 

7
ความเสมอภาคผันผวน
เรามีวัตถุที่สั่นระหว่างจุดสองจุดจำนวนเต็ม[l, r]ที่ความเร็วของหนึ่งหน่วยต่อหน่วยเวลาที่เริ่มต้นที่เกี่ยวกับl คุณอาจจะสมมติt=0 l < rตัวอย่างเช่นถ้าวัตถุแกว่งไป[3, 6]มาเราจะได้: t=0 -> 3 t=1 -> 4 t=2 -> 5 t=3 -> 6 t=4 -> 5 t=6 -> 4 t=7 -> 3 t=8 -> 4 ฯลฯ แต่วัตถุสั่นอย่างต่อเนื่องดังนั้นเราจึงยังมีและt=0.5 -> 3.5t=3.7 -> 5.3 เมื่อให้วัตถุสองชนิดสั่นระหว่างกัน[l1, r1]ให้[l2, r2]กำหนดว่ามีเวลาใดtที่วัตถุทั้งสองแบ่งปันตำแหน่งเดียวกันหรือไม่ คุณใช้เวลาl1, r1, l2, r2ในรูปแบบที่สะดวกและส่งออกค่าจริง / เท็จ อินพุตที่แท้จริง: [[3, 6], [3, …
15 code-golf  array-manipulation  decision-problem  code-golf  math  number-theory  palindrome  integer-partitions  code-golf  math  decision-problem  geometry  code-golf  string  random  code-golf  ascii-art  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  code-golf  graphical-output  code-golf  number-theory  primes  integer  factoring  code-golf  sequence  array-manipulation  integer  code-golf  array-manipulation  matrix  code-golf  sequence  binary  code-golf  game  cellular-automata  game-of-life  binary-matrix  code-golf  string  ascii-art  code-golf  random  generation  logic  code-golf  string  code-golf  code-golf  sequence  array-manipulation  random  apl  code-golf  code-golf  sequence  primes  code-golf  math  sequence  integer  code-golf  number  arithmetic  array-manipulation  decision-problem  code-golf  ascii-art  number  code-golf  restricted-source  quine  code-golf  chess  board-game  code-golf  math  sequence  code-golf  number  sequence  kolmogorov-complexity  code-golf  number  sequence  arithmetic  code-golf  math  number  alphabet  code-golf  ascii-art  classification  statistics  apl  code-golf  array-manipulation  matrix  code-golf  string  kolmogorov-complexity  code-golf  sequence  binary  base-conversion  binary-matrix  code-golf  string  classification  code-golf  tips  python  code-golf  combinatorics  binary  subsequence  restricted-time  code-golf  number  number-theory  code-golf  math  number  complex-numbers  code-golf  string  code-golf  string  code-golf  string  random  game  king-of-the-hill  python  code-golf  number  sequence  code-golf  number  sequence  code-golf  code-golf  math  number  array-manipulation  code-golf  array-manipulation  decision-problem  code-golf  string  code-golf  sequence  integer 

4
กองทัพอยู่ร่วมกันอย่างสงบสุข
ในเกมหมากรุกมีชิ้นส่วนที่เรียกว่าราชินีที่อาจโจมตีชิ้นอื่น ๆ ที่อยู่ในแถวเดียวกันคอลัมน์หรือแนวทแยง ในหมากรุกโดยทั่วไปจะมีสองด้านคือขาวดำโดยแต่ละชิ้นเป็นของหนึ่งในทีม ชิ้นอาจไม่โจมตีชิ้นส่วนที่เป็นของทีมเดียวกัน เป้าหมายของคุณคือค้นหากองทัพที่อยู่ร่วมกันได้อย่างสงบสุขที่สุดสำหรับกระดานสี่เหลี่ยม นั่นคือจำนวนของควีนส์ขาวและดำที่ใหญ่ที่สุดที่สามารถใส่ลงบนกระดานได้ดังนั้นไม่มีควีนส์สองคนที่สามารถโจมตีซึ่งกันและกันและจำนวนของควีนส์ดำนั้นเท่ากับจำนวนควีนไวท์ คุณจะได้รับข้อมูลป้อนเข้าตามความยาวด้านของกระดานสี่เหลี่ยมและควรส่งออกจำนวนขนาดของกองทัพที่อยู่ร่วมกันได้อย่างสันติที่ใหญ่ที่สุดที่สามารถบรรจุลงบนกระดานได้ นี่คือรหัสกอล์ฟเพื่อใช้กฎมาตรฐานสำหรับแท็ก OEIS A250000 กรณีทดสอบเหล่านี้รวมคำตอบที่รู้จักทั้งหมด โซลูชันของคุณควรเป็นคำตอบทั่วไปที่ให้พลังงานและเวลาในการคำนวณเพียงพอสามารถคำนวณโซลูชันสำหรับค่าอินพุตใด ๆ 1: 0 2: 0 3: 1 4: 2 5: 4 6: 5 7: 7 8: 9 9: 12 10: 14 11: 17 12: 21 13: 24
15 code-golf  chess 

4
อัศวินเติมกริด
เติมอัศวินเป็นน้ำท่วมเติมโดยใช้การเชื่อมต่อของชิ้นหมากรุกอัศวิน โดยเฉพาะ: 1 1 1 1 0 1 1 1 1 (0 คือจุดเริ่มต้น 1s แสดงเซลล์ที่เชื่อมต่อ) ท้าทาย รับตาราง 2D ของช่องว่างและกำแพงและตำแหน่งเริ่มต้นดำเนินการเติมอัศวินบนตาราง รหัสที่สั้นที่สุดชนะ กฎระเบียบ คุณสามารถรับอินพุตและสร้างเอาต์พุตในรูปแบบใดก็ได้ที่คุณต้องการ (รูปภาพ, สตริง, อาร์เรย์, อะไรก็ตาม) คุณอาจใช้ตำแหน่งเริ่มต้นเป็นส่วนหนึ่งของตารางนำเข้าหรือเป็นพิกัดที่แยกจากกัน สำหรับวัตถุประสงค์ของคำอธิบายนี้จะใช้รูปแบบต่อไปนี้: ######## # = wall ######## x = initial location ## x ## ## ## ######## ## ## ######## ######## เอาท์พุทเป็นสำเนาของกริดอินพุตพร้อมกับเพิ่มผลการเติมอัศวิน การเติมของคุณจะต้องไม่อยู่ใน "สี" …

1
การแปลงหมากรุก
มีงานมากมายที่ทำในโลกของหมากรุก ตัวอย่างเช่นมีรูปแบบไฟล์มาตรฐาน.pgnที่อธิบายถึงเกมหมากรุกรวมถึงรายการการเคลื่อนไหว นอกจากนี้ยังมีรูปแบบไฟล์อื่น.fenที่อธิบายตำแหน่งกระดาน ความท้าทายในวันนี้คือการแปลงรายการหมากรุก ( ในรูปพีชคณิต ) เป็นตำแหน่งกระดาน คำนิยาม ตำแหน่ง[a-h][1-8]: กำหนดโดยการผนวกแถว (ไฟล์) และคอลัมน์ (อันดับ) กำหนดหนึ่งใน 64 ตำแหน่งที่เป็นไปได้บนกระดาน ชิ้น[KQRBNP]?: แทนK ing, Q ueen, R ook, B ishop, K N ight, P awn ในสัญลักษณ์เกี่ยวกับพีชคณิตPไม่ได้ใช้ เมื่อใช้บนกระดานตัวอักษรจะเป็นตัวพิมพ์ใหญ่หากเป็นสีขาวมิฉะนั้นจะเป็นตัวพิมพ์เล็ก ย้าย[KQRBN]?[a-h]?[1-8]?x?[a-h][1-8](=[KQRBN])?(+*?)?|O-O(-O): ชิ้นส่วนตามด้วยตำแหน่งที่กำลังเคลื่อนที่ไป หากชิ้นส่วนไม่ชัดเจนให้กำหนดแถวหรือคอลัมน์หรือทั้งสองอย่าง หากชิ้นส่วนถูกจับชิ้นส่วนxจะถูกวางระหว่างชิ้นส่วนและตำแหน่ง หากการย้ายเป็นขุนแล้วจะได้รับสำหรับพระมหากษัตริย์ด้านมิฉะนั้นO-OO-O-O หากจำนำได้รับการส่งเสริมการเคลื่อนไหวจะถูกผนวกเข้ากับ=ตามด้วยชิ้นส่วนที่จะได้รับการเลื่อนตำแหน่ง +หากมีการย้ายทำให้พระมหากษัตริย์ในการตรวจสอบก็ถูกผนวกเข้ากับ หากมีการย้ายทำให้กษัตริย์ในรุกฆาต, #ผนวกกับ สีของชิ้นส่วนถูกกำหนดโดยหมายเลขเทิร์น (เปลี่ยนสีขาวและสีดำเริ่มต้นด้วยสีดำ) คณะกรรมการ(([1-8]|[KQRBNPkqrbnp])*\/){8}: แถวจะได้รับจากการแสดงรายการในลำดับแถว หากมีสี่เหลี่ยมที่ว่างเปล่าการวิ่งของสี่เหลี่ยมจัตุรัสที่ว่างเปล่าแต่ละครั้งจะถูกกำหนดโดยใช้ความยาวของการวิ่ง แถวถูกคั่นด้วยการใช้/ ตำแหน่งเริ่มต้นของคณะกรรมการคือrnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNRซึ่งหมายถึง: rnbqkbnr …
15 code-golf  chess 

3
โทเค็นภาษาสแต็กตาม
ฉันได้รับการทำงานในอีกภาษากอล์ฟสแต็คที่เรียกว่าStackgoat ในการท้าทายนี้คุณจะต้องเขียน Tokenizer สำหรับ Stackgoat (หรือภาษาที่ใช้กองซ้อนทั่วไป) ตัวอย่าง "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] สเปค สามประเภทที่คุณต้องจัดการคือ: เงื่อนไขอะไรภายใน"" ตัวเลขลำดับของตัวเลขใด ๆ ผู้ประกอบการตัวละครอื่น ๆ นอกเหนือจากช่องว่าง ช่องว่างจะถูกละเว้นเป็นหลักเว้นแต่ว่ามันจะอยู่ในสตริงหรือแยกตัวเลขสองตัว สตริง / อักขระถ่าน: สตริงถูกคั่นด้วย a "และเมื่อ\พบa อักขระตัวถัดไปควรถูกหลีกเลี่ยง …
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

2
มันเป็นท่าหมากรุกที่ถูกต้องหรือไม่?
ชื่อสำรองของ: ChessMoveQ รับรายการขององค์ประกอบสูงสุด 32 รายการแต่ละรายการประกอบด้วย 4 องค์ประกอบและรายการที่สองที่มี 4 องค์ประกอบพิจารณาว่าการย้ายที่มีรายละเอียดในอินพุตที่สองเป็นการย้ายหมากรุกที่ถูกต้องหรือไม่ รายการแรกระบุตำแหน่งของทั้ง 32 ชิ้นบนกระดาน แต่ละองค์ประกอบจะเป็นไปตามโครงสร้าง<colour>, <piece-name>, <x-coord>, <y-coord>เช่น["W", "K", 5, 1]ซึ่งบ่งชี้ว่าราชาขาวนั้นอยู่บน5, 1( e1บนกระดานหมากรุกทั่วไป) องค์ประกอบทั้งหมดของอินพุตแรกจะไม่ซ้ำกัน <x-coord>และ<y-coord>จะอยู่ระหว่าง 1 ถึง 8 เสมอตัวอย่างหนึ่ง ได้แก่ : [["B", "K", 3, 8], ["B", "Q", 1, 5], ["B", "N", 4, 7], ["B", "N", 7, 8], ["B", "B", 2, 4], ["B", …

14
ผลรวมสะสมแบบวนซ้ำของ [N] ด้วยการวนซ้ำ M
ใช้จำนวนเต็มบวกสองจำนวนNแล้วMสร้างผลบวกสะสม[N]โดยมีMการวนซ้ำ เอาต์พุตผลลัพธ์ของการวนซ้ำล่าสุด คำจำกัดความของผลรวมสะสมตัดแบ่ง: เริ่มต้นด้วยตัวเลขNและกำหนดลำดับX = [N] ผนวกกับXผลรวมสะสมของX ทำซ้ำขั้นตอนที่ 2 Mครั้ง ผลรวมสะสมของเวกเตอร์X = [x1, x2, x3, x4]คือ: [x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]. ตัวอย่างด้วยN = 1และM = 4: P = ฟังก์ชันผลรวมสะสม M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

2
เขาวงกตกระดานหมากรุก
ชิ้นหมากรุก (พระมหากษัตริย์พระราชินี rooks บิชอปและอัศวิน) และเบี้ยอยู่บนกระดาน แต่ไม่ได้อยู่บนa1หรือh8ตาราง งานของคุณคือการเดินทางจากช่องว่างa1ไปยังช่องว่างh8 ที่ว่างผ่านช่องว่างเปล่าเพียงช่องเดียว กฎของการเคลื่อนไหวมีดังนี้: คุณสามารถดำเนินการต่อจากจัตุรัสที่ว่างเปล่าไปยังจัตุรัสที่ว่างถัดจากนั้น (อันดับเดียวกัน, ไฟล์ถัดไปหรือก่อนหน้า; หรือไฟล์เดียวกัน, ถัดไปหรือก่อนหน้าอันดับ) คุณสามารถดำเนินการต่อจากสี่เหลี่ยมจัตุรัสที่ว่างเปล่าไปยังจตุรัสที่ว่างใด ๆ ในแนวทแยงมุมถัดจากนั้น (อันดับถัดไปหรือก่อนหน้าไฟล์ถัดไปหรือก่อนหน้า) โดยมีเงื่อนไขว่าสี่เหลี่ยมมุม catty ประกอบด้วย (a) เบี้ยสองตัวหรือ (b) เบี้ย / ชิ้น สี. (สองชิ้นที่ไม่ได้จำนำหรือชิ้นส่วนที่ไม่ได้จำนำและจำนำที่มีสีเดียวกันนั้นแข็งแกร่งพอที่จะขัดขวางความคืบหน้าของคุณข้ามมุมได้ แต่ตัวเบี้ยสองตัวนั้นไม่ได้และชิ้น / เบี้ยที่มีสีตรงกันข้ามไม่ทำงาน คอนเสิร์ตเพื่อกีดกันทางของคุณ) ตัวอย่างเช่นหากคุณอยู่บนc4และd5ว่างเปล่าคุณสามารถดำเนินการต่อได้หากc5และd4มีเบี้ยหรือมีชิ้น / เบี้ยสีตรงข้าม ดูส่วน "ตัวอย่างเส้นทแยงมุม" ด้านล่างสำหรับรูปภาพ อินพุต คำอธิบายกระดานของFEN นั่นคือการป้อนข้อมูลจะเป็นสตริงที่รวมถึงรายละเอียดของการจัดอันดับ8 , เฉือน ( /) รายละเอียดของการจัดอันดับ7 , เฉือน, ... …
14 code-golf  chess  maze 

1
ปัญหาการจำนำที่หายไป
ปัญหาการจำนำที่หายไป หลังจากเกมหมากรุกสิ้นสุดลงเบี้ยที่รอดตายก็ถูกทิ้งไว้เบื้องหลังแนวศัตรู มาช่วยเขาหาทางกลับบ้านให้เร็วที่สุด ปัญหาเดิมอธิบายกระดาน "หมากรุก" nXn และฟังก์ชั่นf: {1,..,n-1}X{1,..,n}X{-1,0,1} => R+ของน้ำหนัก เป้าหมายคือการหาเส้นทางที่ดีที่สุดจากบางช่องในแนว buttom ไปยัง square อื่น ๆ ใน top line ซึ่งการเคลื่อนไหวที่เป็นไปได้คือ: left-up, up, right-up และคุณไม่สามารถออกจากกระดานได้ ปัญหาค่อนข้างง่ายในการแก้ปัญหาใน O (n ^ 2) โดยใช้การเขียนโปรแกรมแบบไดนามิก แต่นี่คือ codegolf และเราไม่สนใจสิ่งที่ไร้ประโยชน์เช่นความซับซ้อนของเวลาทำงาน ... ปัญหา อินพุต:อาร์เรย์ 3 มิติ (หรือคอลเลกชันอื่น ๆ ที่คุณเลือกได้รับผ่าน stdin หรือเป็นอาร์กิวเมนต์ของฟังก์ชัน) สอดคล้องกับกระดานหมากรุกทั่วไปขนาด: 7X8X3 (#linePasses X #rowSize X #movePerPass) …
14 code-golf  chess 

2
การระเบิดบนกระดานหมากรุก
Atomic Chessเป็นเกมหมากรุกที่สนุกมากซึ่งการจับทุกครั้งทำให้เกิด "การระเบิด", การทำลายชิ้นส่วนที่ถูกจับ, ชิ้นส่วนที่จับได้และไม่ได้จำนำในรัศมี 1 สแควร์ เป้าหมายของการท้าทายนี้ไม่ใช่เพื่อเล่นเกมหมากรุกปรมาณูทั้งเกม แต่เพื่อจำลองสิ่งที่เกิดขึ้นเมื่อมีการเคลื่อนไหวเกิดขึ้น ข้อจำกัดความรับผิดชอบ: ไม่รวมเอฟเฟกต์เสียงการระเบิด อินพุต ตำแหน่งของคณะกรรมการจะได้รับในForsyth-Edwards Notation (หรือที่รู้จักกันทั่วไปว่า FEN) แต่มีเพียงฟิลด์แรกเท่านั้น ตัวอย่างเช่นอินพุตของ: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR แสดงถึงตำแหน่งเริ่มต้น: สิ่งนี้จะต้องดำเนินการเป็นสตริงหรือเทียบเท่าภาษาของคุณ มันรับประกันว่าถูกต้อง; ตัวอย่างเช่นคุณไม่ต้องสนใจว่ามีสิบราชาหรือไม่มีกษัตริย์เลย นอกจากนี้คุณยังจะได้รับการย้ายที่คุณจะต้องจำลองซึ่งจะแสดงเป็นชื่อตารางสองชื่อ: สี่เหลี่ยมที่ชิ้นส่วนที่จะย้ายคือและสี่เหลี่ยมก็จะย้ายไป ตัวอย่างเช่นการขยับตัวรับจำนำของกษัตริย์สองช่องไปข้างหน้าในภาพด้านบนจะแสดงเป็น: e2e4 สิ่งนี้จะต้องถูกนำมาเป็นสตริง ย้ายจะเป็นที่ถูกต้องและคุณไม่จำเป็นต้องสนับสนุนcastling คุณจำเป็นต้องรองรับผู้ที่เดินทางไปไหนมาไหนซึ่งจะอธิบายรายละเอียดเพิ่มเติมในส่วนถัดไป เอาท์พุต ผลลัพธ์ของโปรแกรมของคุณควรอยู่ในรูปแบบบางส่วน -FEN เหมือนกับอินพุตโดยมีการย้ายที่ระบุ (และชิ้นส่วนใด ๆ จะระเบิดหากจำเป็น) กฎที่แน่นอนสำหรับการระเบิดคือ - เมื่อจับชิ้นส่วน: เอาชิ้นส่วนที่ถูกจับ (ซึ่งมักจะเป็นชิ้นส่วนในตารางที่สองชื่อในการป้อนข้อมูลยกเว้นเมื่อจับเป็นการกิน ) นำชิ้นส่วนที่กำลังจับภาพออก (ซึ่งจะเป็นชิ้นส่วนของสี่เหลี่ยมจัตุรัสแรกที่มีชื่ออยู่ในอินพุต) ลบทุกชิ้นนั่นคือ: ตั้งอยู่บนหนึ่งใน 8 สี่เหลี่ยมรอบหนึ่งที่จับภาพที่เกิดขึ้น (สำหรับการกินนี้เป็นตารางที่จำนำจับจะอยู่ถ้ามันไม่ระเบิด) …
14 code-golf  chess 

3
มันรุกฆาตไหม?
ทั้งหมดนี้ประหลาดใจที่ยังไม่ได้โพสต์ให้เนื่องจากจำนวนมากของปริศนาหมากรุกบนเว็บไซต์ ในขณะที่ฉันคิดว่าตัวเองนี้เครดิตกับ Anush สำหรับการโพสต์ไปยังด้านหลัง Sandbox มีนาคม แต่ฉันคิดว่ามันนานพอที่ฉันจะไปข้างหน้าและทำด้วยตัวเอง รุกฆาตในเกมหมากรุกเป็นตำแหน่งที่กษัตริย์ถูกโจมตีและไม่มีการย้ายที่สามารถปกป้องมัน หากคุณไม่คุ้นเคยกับการเคลื่อนไหวของหมากกระดานคุณสามารถทำความคุ้นเคยกับ Wikipediaได้ ความท้าทาย สำหรับความท้าทายนี้ข้อมูลของคุณจะอยู่ในตำแหน่งกระดานหมากรุกในสิ่งที่คุณต้องการ ชี้แจงการป้อนข้อมูลของคุณจะอธิบายชิ้นบนกระดานหมากรุกที่มีสีและตำแหน่งของพวกเขาพร้อมกับที่เป็นไปได้การกินตารางจับถ้ามี (ความสามารถในการปราสาทไม่เกี่ยวข้องเนื่องจากคุณไม่สามารถออกจากปราสาทได้) คุณอาจพบว่าสัญลักษณ์ FEN มีประโยชน์แต่รูปแบบใดก็ได้ที่สะดวก สำหรับความเรียบง่ายคุณสามารถสันนิษฐานได้ว่ามันเป็นสีดำสำหรับเล่น - นั่นหมายความว่าสีดำจะเป็นเครื่องเล่นที่ผ่านการตรวจสอบเสมอ ตำแหน่งที่สีขาวอยู่ในการตรวจสอบรุกฆาตหรือจนมุมจะถือว่าไม่ถูกต้องสำหรับความท้าทายนี้ คุณต้องส่งออกค่าความจริงหากตำแหน่งเป็นรุกฆาตและค่าความเท็จหากไม่ได้ โปรดทราบว่าทางตันไม่ใช่การรุกฆาต - ราชาจะต้องถูกโจมตี! กรณีทดสอบความจริง 1k5R / 6R1 / 8/8/8/8/8 / 6K1 b - - rn2r1k1 / pp1p1pQp / 3p4 / 1b1n4 / 1P2P3 / 2B5 / P5PP / …

8
นี่คือการวาดซ้ำหรือไม่
ปัญหา: ในหมากรุกมีกฎที่รู้จักกันดีเกี่ยวกับการวาดโดยการทำซ้ำ หากตำแหน่งเดิมซ้ำ 3 ครั้ง (หรือมากกว่า) จากนั้นผู้เล่นที่ประสงค์จะทำการเคลื่อนที่ซึ่งจะทำให้การซ้ำเกิดขึ้นนี้สามารถอ้างสิทธิ์เสมอ บางครั้งนี่เป็นงานง่ายสำหรับผู้ชี้ขาดที่จะมองเห็นหากการเคลื่อนไหวสองสามครั้งสุดท้ายเป็นเพียงผู้เล่นที่เคลื่อนที่ไปข้างหน้าและถอยหลัง บางครั้งมันก็เล็กน้อยเล็กน้อยเมื่อชิ้นส่วนเคลื่อนไหวอย่างมีนัยสำคัญระหว่างตำแหน่งที่ทำซ้ำ ปัญหาในการท้าทายนี้คือการส่งออกค่าความจริงถ้าตำแหน่งที่อ้างสิทธิ์ถูกดึงโดยการทำซ้ำ (ได้รับการเห็น 3 ครั้งหรือมากกว่า) และค่าเท็จถ้าตำแหน่งที่อ้างสิทธิ์ไม่ได้ถูกวาดโดยการทำซ้ำให้รายการของการเคลื่อนไหวในสัญ ตามที่อธิบายไว้ด้านล่างหรือสัญกรณ์ใด ๆ ที่คุณเลือก (แต่คุณจะต้องแปลงกรณีทดสอบ) ตำแหน่งคืออะไร? ในสถานการณ์โลกแห่งความเป็นจริงตำแหน่งจะได้รับผลกระทบจากสิ่งต่าง ๆ เช่นว่าผู้เล่นสามารถปิดกั้นปราสาทได้หรือไม่ก็ตาม คุณไม่ควรพิจารณาสิ่งเหล่านี้ในการแก้ปัญหาของคุณ ในปัญหานี้ตำแหน่งถูกกำหนดโดยการกำหนดค่าของชิ้นส่วนบนกระดาน ดังนั้นเพื่อจุดประสงค์ของปัญหานี้จะเห็นสองตำแหน่งเหมือนกันถ้าแต่ละตารางในกระดานทั้งสองนั้นถูกครอบครองโดยชิ้นส่วนประเภทเดียวกันที่มีสีเดียวกัน นี่ไม่จำเป็นต้องเป็นชิ้นส่วนที่แน่นอนเช่นอัศวินสีขาวสามารถสลับสี่เหลี่ยมและหากชิ้นส่วนอื่น ๆ ทั้งหมดตรงตามเงื่อนไขนี้จะยังคงอยู่ในตำแหน่งเดียวกัน สัญกรณ์ที่ถูกต้องมีลักษณะอย่างไร แม้ว่าฉันจะอธิบายพิกัดสัญกรณ์ แต่คุณมีอิสระที่จะป้อนด้วยระบบสัญกรณ์ที่คุณเลือก โดยมีเงื่อนไขว่า: แต่ละรายการในสัญกรณ์อธิบายใด ๆ หรือทั้งหมด: ชิ้นส่วน / ชิ้นส่วนที่เกี่ยวข้อง; ไม่ว่าจะเป็นการตรวจสอบรุกฆาตตรวจสอบอีกครั้งรุกฆาตหรือทางตันได้รับการจัดส่ง; ถ้าเกิดการจับภาพ ตำแหน่งเริ่มต้น ตำแหน่งสุดท้าย คุณอาจไม่มีข้อมูลเกี่ยวกับการทำซ้ำในเอกสารของคุณ ดังนั้นตราบใดที่เกณฑ์เหล่านี้ตรงตามที่ฉันยินดีที่จะยอมรับตราบใดที่คุณระบุไว้ในคำตอบของคุณระบบสัญกรณ์ของคุณ ซึ่งอาจเป็นเช่น 0 แถวที่จัดทำดัชนีสิ่งอันดับคอลัมน์หรือสิ่งอื่น ๆ ที่เหมาะสมสำหรับโปรแกรมของคุณ สัญลักษณ์พิกัด …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.