Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में फ्लडफिल ऑपरेशन का उपयोग करके रंग भरने का कार्यक्रम

मान लीजिए कि हमारे पास एक 2D ग्रिड है, जिसमें रंग "r", "g", और "b" के रूप में हैं। हमें रंग लक्ष्य के साथ पंक्ति r, कॉलम c पर फ्लडफिल ऑपरेशन करना है। जैसा कि हम जानते हैं कि फ्लडफिल ऑपरेशन को उन सभी तत्वों को प्रतिस्थापित करना चाहिए जो दोनों ग्रिड से जुड़े हैं [आर, सी] (ऊपर/दाएं/नीचे/बाएं) और ग्रिड के समान रंग [आर, सी] लक्ष्य के समान रंग के साथ हैं।

तो, अगर इनपुट पसंद है

आर आर आर
आर जी बी
जी बी बी

तो आउटपुट होगा

जी जी जी
जी जी बी
जी बी बी

चूंकि ग्रिड से जुड़ी लाल कोशिकाओं [0,0] को हरे ("g") से बदल दिया जाता है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • देखे गए नए सेट को परिभाषित करें
  • पुराना रंग:=मैट्रिक्स[आर, सी]
  • एक फ़ंक्शन को परिभाषित करें dfs() । यह ले जाएगा मैं, जे
  • यदि i और j मैट्रिक्स में हैं और (i, j) दिखाई नहीं देता है और मैट्रिक्स [i, j] पुराने रंग के समान है, तो
    • देखे का (i, j) जोड़ें
    • मैट्रिक्स[i, j] :=लक्ष्य
    • dfs(i + 1, j)
    • dfs(i, j + 1)
    • dfs(i, j-1)
    • dfs(i-1, j
  • मुख्य विधि से, निम्न कार्य करें -
  • dfs(r, c)
  • रिटर्न मैट्रिक्स

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

class Solution:
   def solve(self, matrix, r, c, target):
      def dfs(i, j):
         if (
            i >= 0
            and i < len(matrix)
            and j >= 0
            and j < len(matrix[0])
            and (i, j) not in seen
            and matrix[i][j] == oldcolor
         ):
            seen.add((i, j))
            matrix[i][j] = target
            dfs(i + 1, j)
            dfs(i, j + 1)
            dfs(i, j - 1)
            dfs(i - 1, j)
      seen = set()
      oldcolor = matrix[r][c]
      dfs(r, c)
      return matrix
ob = Solution()
matrix = [ ["r", "r", "r"], ["r", "g", "b"], ["g", "b", "b"] ]
r = 0
c = 0
target = "g"
print(ob.solve(matrix, r, c, target))

इनपुट

matrix = [
["r", "r", "r"],
["r", "g", "b"],
["g", "b", "b"] ]
r = 0
c = 0
target = "g"

आउटपुट

[ ['g', 'g', 'g'], ['g', 'g', 'b'], ['g', 'b', 'b']]

  1. पायथन का उपयोग करके शतरंज की बिसात का रंग निर्धारित करने का कार्यक्रम

    मान लीजिए कि हमारे पास एक शतरंज की बिसात है, जो एक स्ट्रिंग है जो शतरंज की बिसात की पंक्ति और स्तंभ के निर्देशांक का प्रतिनिधित्व करती है। आपके संदर्भ के लिए नीचे एक बिसात है। हमें यह जांचना होगा कि दी गई सेल सफेद है या नहीं, अगर सफेद सही है, अन्यथा झूठी वापसी करें। इसलिए, यदि इनपुट निर्देशांक =

  1. पायथन के साथ ओपनसीवी का उपयोग करके एक विशिष्ट रंग (यहां नीला) का पता लगाना?

    कई लोगों के लिए, इमेज प्रोसेसिंग एक डरावना और कठिन काम लग सकता है लेकिन यह उतना कठिन नहीं है जितना कि कई लोगों ने सोचा था। इस ट्यूटोरियल में हम python के साथ openCv में बेसिक कलर डिटेक्शन कर रहे हैं। कंप्यूटर पर रंग कैसे काम करता है? हम कंप्यूटर पर कलर-स्पेस या कलर मॉडल द्वारा रंगों का प्रतिनिधित्व

  1. पायथन में टिंकर का उपयोग करके रंग खेल

    जीयूआई अनुप्रयोगों के विकास के लिए टिंकर बहुत लोकप्रिय और आसान है। tkinter का उपयोग करके आसानी से GUI गेम विकसित करें। यहां भी हम कलर गेम विकसित करने की कोशिश कर रहे हैं। इस गेम में खिलाड़ी को स्क्रीन पर दिखाई देने वाले शब्द का रंग दर्ज करना होता है और इसलिए स्कोर एक से बढ़ जाता है, इस गेम को खेलने