ফ্লো ফ্রি একটি আসক্তিযুক্ত অ্যান্ড্রয়েড গেম যেখানে আপনাকে অ-ওভারল্যাপিং সাপের মাধ্যমে একসাথে কয়েকটি উপাদান সংযুক্ত করতে হবে এবং পুরো গ্রিডটি পূরণ করতে হবে। একটি বিবরণের জন্য, এখানে দেখুন:
https://play.google.com/store/apps/details?id=com.bigduckgames.flow&hl=en
আমার কাছে একটি এএসপি (উত্তর সেট প্রোগ্রামিং) সমাধান রয়েছে যা কেবলমাত্র কয়েকটি বিধি এবং আমি মনে করি না যে একই সমাধানটিকে প্রায় সংক্ষিপ্তভাবে একটি স্যাট উদাহরণ হিসাবে বাক্য বলা সম্ভব, তবে আমি ভুল প্রমাণিত হতে আগ্রহী হব।
যে কোনও ভাষা ঠিক আছে, তবে আমি সন্দেহ করি যে এটি কোনও ধরণের সলভার না চালিয়ে সংক্ষিপ্তভাবে করা যায় যার কারণেই আমি এএসপি / প্রোলজ / স্যাট লেবেল করেছি
বিজয়ী স্বল্পতম অক্ষর।
ভবিষ্যদ্বাণীগুলি ব্যবহার করে আপনি সমস্যাটিকে সংজ্ঞায়িত বলে ধরে নিতে পারেন:
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).
বলছেন যে রঙিন সি এর ভি এবং ডাব্লু এর মাঝে একটি প্রান্ত রয়েছে
প্রান্তগুলি অবশ্যই দ্বিদ্বিতীয় (একই বর্ণের)। প্রতিটি ভার্টেক্সের অবশ্যই এক রঙের এবং এর থেকে প্রান্ত থাকা উচিত। শেষ পয়েন্টগুলির ঠিক এক প্রান্ত রয়েছে, অন্য সমস্ত শীর্ষে ঠিক দুটি প্রান্ত রয়েছে। কোনও লুপ নেই, প্রতিটি সাপকে অবশ্যই দুটি প্রান্তে ফিরে যেতে হবে।
এটি পরীক্ষা করার জন্য এখানে একটি নমুনা ইনপুট রয়েছে (নিয়মিত প্যাকের 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).