N d tic tac toe गेम में कौन जीता है यह जाँचने के लिए सबसे छोटा प्रोग्राम बनाएं ।
आपका कार्यक्रम तब काम करना चाहिए जब n
(चौड़ाई) और d
(आयाम संख्या) इन सीमाओं में हो:
n∈[3,6]∩ℕ ie a number from this list: 3,4,5,6
d∈[2,5]∩ℕ ie a number from this list: 2,3,4,5
n = 3; d = 2
(3 2 यानी 3 बाय 3):
[][][]
[][][]
[][][]
n = 3; d = 3
(3 3 यानी 3 बाय 3 बाय 3):
[][][]
[][][]
[][][]
[][][]
[][][]
[][][]
[][][]
[][][]
[][][]
n = 6; d = 2
(6 2 अर्थात 6 बाय 6):
[][][][][][]
[][][][][][]
[][][][][][]
[][][][][][]
[][][][][][]
[][][][][][]
और इसी तरह।
जीतना (यदि आपने पर्याप्त बहु-आयामी टिक टीएसी पैर की अंगुली खेली है, तो यह वही है।)
जीत हासिल करने के लिए, एक खिलाड़ी के पास एक पंक्ति के साथ सभी आसन्न वर्ग होने चाहिए। यही है, उस खिलाड़ी को n
विजेता होने के लिए एक पंक्ति में आगे बढ़ना चाहिए ।
सटा हुआ:
- प्रत्येक टाइल एक बिंदु है; उदाहरण के लिए (0,0,0,0,0) एक बिंदु है
d=5
- आसन्न टाइलें ऐसी टाइलें हैं जैसे वे एक ही इकाई d- घन पर दोनों बिंदु हैं। दूसरे शब्दों में, टाइल्स के बीच चेबीशेव की दूरी 1 है।
- दूसरे शब्दों में, यदि कोई बिंदु किसी बिंदु
p
से सटा हुआ हैq
, तो प्रत्येकp
एस में समन्वितq
एक से अधिक नहीं द्वारा इससे भिन्न में समन्वयित होता है। इसके अतिरिक्त, कम से कम समन्वय जोड़ी पर बिल्कुल एक से भिन्न होता है।
लाइन्स:
- लाइनों को वैक्टर और एक टाइल द्वारा परिभाषित किया गया है। एक पंक्ति समीकरण द्वारा मारा जाने वाला प्रत्येक टाइल है:
p0 + t
<
some vector with the same number of coordinates as p0>
इनपुट :
इनपुट STDIN को होगा। इनपुट की पहली पंक्ति दो नंबर होगी, n
और d
फॉर्म में n,d
।
इसके बाद एक लाइन होगी जिसमें निर्देशांकों से युक्त चालों को निर्दिष्ट किया गया है। निर्देशांक को प्रपत्र में सूचीबद्ध किया जाएगा 1,1;2,2;3,3
:। ऊपरी बाएं कोने की उत्पत्ति (2D के लिए 0,0) है। सामान्य स्थिति में, यह सूची ऐसी होगी 1,2,...,1,4;4,0,...,6,0;...
जहां पहला नंबर बाएं-दाएं-नेस का प्रतिनिधित्व करता है, दूसरा अप-डाउन-नेस, तीसरा आयाम के माध्यम से तीसरा, आदि ध्यान दें कि पहला समन्वय X
पहली बारी है, दूसरा। है O
पहली बारी, ....
इनपुट के बाद एक नई लाइन होगी।
आउटपुट :
आउटपुट STDOUT को होगा। बस संकेत करें कि कौन जीता है अगर कोई जीता है, या यदि यह टाई है। यदि यह न तो एक टाई है और न ही एक जीत, कुछ भी उत्पादन नहीं है।
इसके अतिरिक्त, इंगित करें कि क्या कोई चाल क्लैश है, यानी यदि एक ही स्थान पर कम से कम दो चालें हैं।
यदि इनपुट समाप्त होने से पहले कोई जीत / ड्रा था, तो आपका प्रोग्राम जो चाहे कर सकता है।
परीक्षण के मामले (कोई भी किसी भी अधिक सुझाव देना चाहते हैं?):
इनपुट:
4,3
0,0,0;1,1,1;1,0,1;2,0,2;0,0,1;2,0,0;2,0,1;3,0,2;3,0,1
उदाहरण आउटपुट:
X wins
एक और संभावित आउटपुट (स्पष्टीकरण की आवश्यकता है):
1
n
विजेता होने के लिए एक पंक्ति में कदम रखता है। (इन टिप्पणियों को सैंडबॉक्स में पोस्ट नहीं करने के लिए खेद है, लेकिन मेरे पास इसे देखने के लिए समय भी नहीं था क्योंकि यह सैंडबॉक्सिंग के तुरंत बाद पोस्ट किया गया था।)