कनेक्ट 4 का खेल खेलने के लिए एक कार्यक्रम लिखें । आपको इनपुट के रूप में बोर्ड की स्थिति दी जाती है और आपको यह तय करना चाहिए कि आपके टुकड़े को किस पंक्ति में रखना है या तो एक पंक्ति में 4 प्राप्त करें (क्षैतिज, लंबवत, या तिरछे) या अपने प्रतिद्वंद्वी को वही करने से रोकें।
बोर्ड एक 6x7 सरणी है, जहां प्रत्येक कक्ष खाली ('') हो सकता है, जिसमें आपका टुकड़ा ('X') या आपके प्रतिद्वंद्वी का टुकड़ा ('O') हो सकता है। एक उदाहरण बोर्ड:
O
XX X
XOX OO
XOO OXO
OXXOXXO
XOXOXOX
आप विकर्ण जीत के लिए कॉलम 3 (कॉलम में 0-6, बाईं ओर से क्रमांकित) खेलना चाहते हैं। इसलिए आप आउटपुट:
3
आपके कोड को एक कॉलम नंबर आउटपुट करना होगा, और उसे निम्न मानदंडों को पूरा करना होगा:
- आप उस कॉलम में नहीं खेल सकते जिसमें पहले से ही 6 टुकड़े हैं।
- यदि कम से कम एक जीतने की चाल है, तो आपको उनमें से एक खेलना चाहिए।
- यदि आप अपने प्रतिद्वंद्वी को उसके अगले कदम पर जीतने से रोक सकते हैं, तो आपको ऐसा करना चाहिए।
ध्यान दें कि इष्टतम खेल आवश्यक नहीं है, केवल यह कि आप तत्काल जीत लेते हैं या अपने प्रतिद्वंद्वी की तत्काल जीत को रोकते हैं। यदि आपके प्रतिद्वंद्वी के पास जीतने का एक से अधिक तरीका है, तो आपको उनमें से किसी को ब्लॉक करने की आवश्यकता नहीं है।
आपको मानक इनपुट पर बोर्ड दिया गया है और आपको एक कॉलम नंबर प्रिंट करना होगा जिसमें आप मानक आउटपुट पर खेलना चाहते हैं। बोर्ड को अच्छी तरह से गठित (कोई छेद नहीं, कम से कम एक संभव कदम) और पहले से ही किसी भी खिलाड़ी के लिए जीत नहीं होने की गारंटी है।
सबसे छोटा कोड जीतता है।
उदाहरण 1
X
O
X
O
OOO X
XXX O
आपको जीत के लिए या तो कॉलम 0 या 4 खेलना होगा।
उदाहरण 2
X
X X
O O
XOX XO
XXO XOX
XXO XXO
आपको अपने प्रतिद्वंद्वी की तत्काल जीत को अवरुद्ध करने के लिए कॉलम 3 खेलना होगा।
उदाहरण 3
X
XO
OX O
XO XX
XXO OOO
OOO XXO
आप अपने प्रतिद्वंद्वी को जीतने या जीतने से रोक नहीं सकते हैं, इसलिए आप किसी भी कॉलम 1-6 (0 भरा हुआ है) को खेल सकते हैं।
उदाहरण 4
X
O
X
OOO
XOX
OXOX
आप कॉलम 3 में नहीं खेल सकते, क्योंकि यह आपके प्रतिद्वंद्वी को तुरंत जीतने देता है। आप कॉलम 1-2 या 4-6 में खेल सकते हैं।