फ़्लो फ़्री एक नशे की लत एंड्रॉइड गेम है जहां आपको तत्वों के जोड़े को गैर-अतिव्यापी सांपों के माध्यम से एक साथ जोड़ना होगा और पूरे ग्रिड को भरना होगा। विवरण के लिए, यहां देखें:
https://play.google.com/store/apps/details?id=com.bigduckgames.flow&hl=en
मेरे पास एक ASP (उत्तर सेट प्रोग्रामिंग) समाधान है जो केवल एक युगल नियम है और मुझे नहीं लगता कि यह एक ही समाधान को लगभग संक्षिप्त रूप में SAT उदाहरण के रूप में वाक्यांश करना संभव है, लेकिन मैं गलत साबित होने में दिलचस्पी लेता हूं।
कोई भी भाषा ठीक है, लेकिन मुझे संदेह है कि यह किसी प्रकार के सॉल्वर को चलाए बिना संक्षिप्त रूप से किया जा सकता है, यही कारण है कि मैंने इसे एएसपी / स्लॉग / सैट लेबल किया है।
विजेता सबसे कम अक्षर हैं।
आप यह मान सकते हैं कि समस्या का उपयोग विधेय का उपयोग करके परिभाषित किया गया है:
v(V). % A vertex
a(V,W). % V and W are adjacent
c(C). % A color
s(V,C). % V is an endpoint of color C
इसके अलावा, इनपुट संतुष्ट करता है
a(W,V) :- a(V,W) % Adjacencies are bidirectional
2{s(V,C) : v(V)}2 :- c(C). % Every color has exactly two endpoints
समाधान विधेय प्रपत्र का होगा
e(V,W,C).
यह कहते हुए कि रंग C के V और W के बीच एक किनारा है
किनारों को द्विदिश (एक ही रंग का) होना चाहिए। प्रत्येक शीर्ष पर एक ही रंग के किनारों और उसमें से होना चाहिए। एंडपॉइंट में एक किनारे होता है, अन्य सभी कोने में बिल्कुल दो किनारे होते हैं। कोई लूप नहीं हैं, हर सांप को दो एंडपॉइंट्स पर वापस जाना चाहिए।
यहां इसे (5x5 लेवल 2 में रेगुलर पैक में) जांचने के लिए एक नमूना इनपुट दिया गया है:
v(v11; v12; v13; v14; v15).
v(v21; v22; v23; v24; v25).
v(v31; v32; v33; v34; v35).
v(v41; v42; v43; v44; v45).
v(v51; v52; v53; v54; v55).
a(v11, v12).
a(v12, v13).
a(v13, v14).
a(v14, v15).
a(v12, v11).
a(v13, v12).
a(v14, v13).
a(v15, v14).
a(v11, v21).
a(v12, v22).
a(v13, v23).
a(v14, v24).
a(v15, v25).
a(v21, v22).
a(v22, v23).
a(v23, v24).
a(v24, v25).
a(v22, v21).
a(v23, v22).
a(v24, v23).
a(v25, v24).
a(v21, v31).
a(v22, v32).
a(v23, v33).
a(v24, v34).
a(v25, v35).
a(v21, v11).
a(v22, v12).
a(v23, v13).
a(v24, v14).
a(v25, v15).
a(v31, v32).
a(v32, v33).
a(v33, v34).
a(v34, v35).
a(v32, v31).
a(v33, v32).
a(v34, v33).
a(v35, v34).
a(v31, v41).
a(v32, v42).
a(v33, v43).
a(v34, v44).
a(v35, v45).
a(v31, v21).
a(v32, v22).
a(v33, v23).
a(v34, v24).
a(v35, v25).
a(v41, v42).
a(v42, v43).
a(v43, v44).
a(v44, v45).
a(v42, v41).
a(v43, v42).
a(v44, v43).
a(v45, v44).
a(v41, v51).
a(v42, v52).
a(v43, v53).
a(v44, v54).
a(v45, v55).
a(v41, v31).
a(v42, v32).
a(v43, v33).
a(v44, v34).
a(v45, v35).
a(v51, v52).
a(v52, v53).
a(v53, v54).
a(v54, v55).
a(v52, v51).
a(v53, v52).
a(v54, v53).
a(v55, v54).
a(v51, v41).
a(v52, v42).
a(v53, v43).
a(v54, v44).
a(v55, v45).
s(v11, yellow).
s(v45, yellow).
s(v41, blue).
s(v55, blue).
s(v51, red).
s(v43, red).
s(v42, green).
s(v33, green).
c(red; green; blue; yellow).
और आउटपुट का परीक्षण करने के लिए
shouldbe(v33,v32,green).
shouldbe(v42,v32,green).
shouldbe(v43,v53,red).
shouldbe(v51,v52,red).
shouldbe(v55,v54,blue).
shouldbe(v41,v31,blue).
shouldbe(v45,v35,yellow).
shouldbe(v11,v12,yellow).
shouldbe(v12,v11,yellow).
shouldbe(v35,v45,yellow).
shouldbe(v31,v41,blue).
shouldbe(v54,v55,blue).
shouldbe(v52,v51,red).
shouldbe(v53,v43,red).
shouldbe(v32,v42,green).
shouldbe(v32,v33,green).
shouldbe(v53,v52,red).
shouldbe(v52,v53,red).
shouldbe(v54,v44,blue).
shouldbe(v31,v21,blue).
shouldbe(v35,v25,yellow).
shouldbe(v12,v13,yellow).
shouldbe(v13,v12,yellow).
shouldbe(v25,v35,yellow).
shouldbe(v21,v31,blue).
shouldbe(v44,v54,blue).
shouldbe(v44,v34,blue).
shouldbe(v21,v22,blue).
shouldbe(v25,v15,yellow).
shouldbe(v13,v14,yellow).
shouldbe(v14,v13,yellow).
shouldbe(v15,v25,yellow).
shouldbe(v22,v21,blue).
shouldbe(v34,v44,blue).
shouldbe(v34,v24,blue).
shouldbe(v22,v23,blue).
shouldbe(v15,v14,yellow).
shouldbe(v14,v15,yellow).
shouldbe(v23,v22,blue).
shouldbe(v24,v34,blue).
shouldbe(v24,v23,blue).
shouldbe(v23,v24,blue).
:-not e(V,W,C),shouldbe(V,W,C).
:-e(V,W,C),not shouldbe(V,W,C).
इसके अलावा लेवल 21 5x5 में 1 से अधिक सॉल्यूशन वाली पहली पजल होनी चाहिए (विशेष रूप से, 9 सॉल्यूशंस हैं, 40 नहीं) लेवल 21 सेट करने के लिए, इनपुट की आखिरी कुछ लाइनों को सेट करें
s(v55, yellow).
s(v44, yellow).
s(v15, blue).
s(v45, blue).
s(v51, red).
s(v53, red).
s(v22, green).
s(v14, green).
s(v23, orange).
s(v43, orange).
c(red; green; blue; yellow; orange).