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

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


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

इसलिए, यदि इनपुट इस तरह है

RRR
RGB
GBB

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

GGG
GGB
GBB

क्योंकि grid[0,0] से जुड़े लाल सेल हरे ("g") से बदल दिए जाते हैं।

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

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

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

उदाहरण

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. पायथन का उपयोग करके शतरंज बोर्ड के वर्ग का रंग निर्धारित करने का प्रोग्राम पायथन का उपयोग करके शतरंज बोर्ड के वर्ग का रंग निर्धारित करने का प्रोग्राम

    मान लीजिए हमारे पास एक शतरंज बोर्ड निर्देशांक है, जो शतरंज बोर्ड की पंक्ति और स्तंभ के निर्देशांक को दर्शाने वाली एक स्ट्रिंग है। नीचे आपके संदर्भ के लिए एक शतरंज बोर्ड है। हमें जांचना है कि दिया गया सेल सफेद है या नहीं, यदि सफेद है तो true वापस करें, अन्यथा false वापस करें। उदाहरण के लिए, यदि इनप

  1. OpenCV और पायथन से रंग पहचान (नीला रंग) OpenCV और पायथन से रंग पहचान (नीला रंग)

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

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

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