บทนำ
Tangramsเป็นเกมปริศนาคลาสสิกที่เกี่ยวข้องกับการจัดเรียง / การติดตั้งบล็อคให้เป็นรูปทรงต่างๆ จากภาษาจีน七巧板 - ความหมายแท้จริง "กระดานเจ็ดทักษะ" ลองใช้ความคิดนี้และใช้Tetrominosเจ็ดตัวเพื่อเติมกริด
ท้าทาย
เขียนฟังก์ชั่นหรือโปรแกรมที่ใช้อาร์เรย์ของพิกัดกริดเป็นอินพุตและส่งออกตาราง 10 เต็ม 20 โดยเต็มไปด้วยชิ้น Tetris ยกเว้นในพิกัดที่ระบุ
เพิ่มประสิทธิภาพคะแนนของคุณโดยพยายามที่จะให้การกระจายของชิ้นส่วนที่เหมือนกัน
เกณฑ์
ใช้พิกัดpastebin นี้เพื่อให้งานของคุณสำเร็จ มีพิกัดห้าชุด อย่าลังเลที่จะปรับเปลี่ยนรูปแบบที่พิกัดถูกเขียน แต่ไม่ใช่ค่า
ชุดข้อมูล # 2 ไม่สามารถแก้ไขได้ - ในกรณีนี้เพียงแค่แสดงกริดที่เต็มไปด้วยเซลล์อินพุต (เช่นX
ที่อยู่ของหลุม)
อินพุต
พิกัดกริดแสดงถึง 'หลุม' ในกริด เซลล์เหล่านี้ไม่สามารถมีส่วนใดส่วนหนึ่งของ Tetromino ได้
พิกัดกริด:
(0,0), (1,0), (2,0), ... (9,0)
(0,1), (1,1), (2,1), ... (9,1)
.
.
.
(0,19), (1,19), (2,19), ... (9,19)
ใช้รูปแบบอาร์เรย์ของภาษาโปรแกรมที่คุณเลือกเพื่อป้อนค่าพิกัด
แทนหลุมในตารางด้วย
X
หรืออื่น ๆ ที่ASCII พิมพ์
เอาท์พุต
การใช้ขนาดตารางมาตรฐานของ Tetris กว้าง 10 เซลล์สูง 20 เซลล์พิมพ์ตารางวิธีแก้ปัญหาเฉพาะในกรณีที่สามารถเติมตารางอย่างสมบูรณ์และสมบูรณ์แบบโดยใช้ชิ้นส่วน Tetromino
ชิ้นสร้างด้วยตัวอักษรI
, O
, L
, J
, T
, Z
, S
ดังนี้
I
I L J
I OO L J T ZZ SS
I OO LL JJ TTT ZZ SS
ตัวอย่าง
ตัวอย่างโซลูชันเอาต์พุตที่ไม่มีพิกัดอินพุต:
ZZIIIILLLI
JZZTTTLLLI
JJJSTLOOLI
SZZSSLOOLI
SSZZSLLJJI
TSOOSLLJII
TTOOSSLJII
TZOOSSLZII
ZZOOSSZZII
ZJJJJSZLLI
TTTJJOOILI
ITZJJOOILI
IZZTTTLIII
IZOOTZLIII
IJOOZZLLII
LJJJZSSTII
LLLTSSTTTI
LLLTTSSZJI
OOLTSSZZJI
OOIIIIZJJI
ด้วยการกระจายดังนี้
I
I L J
I OO L J T ZZ SS
I OO LL JJ TTT ZZ SS
11 6 8 6 6 7 6
หมายเหตุ
พิกัดเป็นตัวแทนเดียวX
และY
ตำแหน่งในตาราง เส้นตารางเป็นแบบอิง 0 หมายถึงพิกัด(0,0)
ควรเป็นเซลล์ด้านบนซ้ายหรือเซลล์ล่างซ้ายเลือกตัวเลือกของผู้เขียน
อิฐสามารถ:
- ได้รับการคัดเลือกตามดุลยพินิจของผู้เขียน
- ถูกหมุนตามที่ผู้เขียนเห็นว่าเหมาะสม
- ถูกวางลงบนตารางทุกที่ขึ้นอยู่กับดุลยพินิจของผู้เขียน (aka: ไม่มีแรงโน้มถ่วง Tetris)
อิฐไม่สามารถ:
- ถูกวางไว้นอกขอบเขตของตาราง
- ทับซ้อนอิฐที่มีอยู่หรือหลุมในตาราง
- เป็นชิ้น Tetetino Tetris ที่ไม่ได้มาตรฐาน
เกณฑ์การให้คะแนน
คะแนนของคุณอยู่ในรูปแบบ:
(1,000 - [ไบต์เป็นรหัส]) * (M / 10 + 1)
โดยที่ M เป็นตัวคูณสำหรับการกระจายของชิ้นส่วนที่ใช้ในชุดโซลูชันของคุณ
คะแนนสูงสุดโดย Ides of March ชนะ
ในการคำนวณ M ให้เพิ่มค่าการกระจาย tetromino ต่ำสุดสำหรับแต่ละชุดจากนั้นนำค่าเฉลี่ยปัดเศษลงเพื่อคำนวณ M
ตัวอย่างเช่น:
Set 1: 5
Set 2: 4
Set 3: 5
Set 4: 6
Set 5: 3
6 + 4 + 5 + 4 + 4 = 21/5 = 4.6
ดังนั้นคุณจะใช้4
เป็นค่าMของคุณ
หมายเหตุ: หากชุดไม่มีวิธีการแก้อย่าใช้ตัวประกอบที่กำหนดไว้ในการคำนวณ M เนื่องจากไม่มีการกระจาย tetromino