Commits

Danilo Cabello committed 56c3464

Coloquei 2008 no ano foi em 2010, corrigido.

Comments (0)

Files changed (6)

2008_08_18_campo_minado/README

-Campo minado
-============
-
-Dado um campo minado com as posições das minas, retornar para as posições vazias, quantas minas são vizinhas à ela.
-
-Exemplo:
-
-Entrada        Saída        Legenda
-__*_           01*1         _ - Espaço disponível
-____           1221         * - Mina
-_*__           1*10
-____           1110
-

2008_08_18_campo_minado/campo_minado.py

-def campo_minado(mapa):
-    resultado = mapa.replace("_","0")
-
-    if "*" in mapa:
-        linhas = resultado.split()
-        matriz = [list(i) for i in linhas]
-        for linha, conteudo in enumerate(matriz):
-            for coluna, caracter in enumerate(conteudo):
-                if caracter == "*":
-                    try:
-                        if linha-1 < 0:
-                            raise IndexError
-                    
-                        norte = matriz[linha-1][coluna]
-                        if norte != "*":
-                            matriz[linha-1][coluna] = str(int(norte) + 1)
-                    except IndexError: 
-                        pass
-                        
-                    try:
-                        if linha-1 < 0:
-                            raise IndexError
-                        if coluna-1 < 0:
-                            raise IndexError
-                    
-                        noroeste = matriz[linha-1][coluna-1]
-                        if noroeste != "*":
-                            matriz[linha-1][coluna-1] = str(int(noroeste) + 1)
-                    except IndexError: 
-                        pass
-                        
-                    try:
-                        if linha-1 < 0:
-                            raise IndexError
-                        nordeste = matriz[linha-1][coluna+1]
-                        if nordeste != "*":
-                            matriz[linha-1][coluna+1] = str(int(nordeste) + 1)
-                    except IndexError:
-                        pass 
-                      
-                    try:
-                        leste = matriz[linha][coluna+1]
-                        if leste != "*":
-                            matriz[linha][coluna+1] = str(int(leste) + 1)
-                    except IndexError: 
-                        pass
-                        
-                    try:    
-                        sul = matriz[linha+1][coluna]
-                        if sul != "*":
-                            matriz[linha+1][coluna] = str(int(sul) + 1)
-                    except IndexError: 
-                        pass
-                        
-                    try:    
-                        sudeste = matriz[linha+1][coluna+1]
-                        if sudeste != "*":
-                            matriz[linha+1][coluna+1] = str(int(sudeste) + 1)
-                    except IndexError:
-                        pass
-                 
-                    try:
-                        if coluna-1 < 0:
-                            raise IndexError
-                        oeste = matriz[linha][coluna-1]
-                        if oeste != "*":
-                            matriz[linha][coluna-1] = str(int(oeste) + 1)
-                    except IndexError:
-                        pass
-                 
-                    try:    
-                        if coluna-1 < 0:
-                            raise IndexError
-                        sudoeste = matriz[linha+1][coluna-1]
-                        if sudoeste != "*":
-                            matriz[linha+1][coluna-1] = str(int(sudoeste) + 1)
-                    except IndexError:
-                        pass
-                       
-        return "\n".join(["".join(line) for line in matriz])
-    return resultado

2008_08_18_campo_minado/campo_minado_test.py

-import unittest
-from campo_minado import campo_minado
-
-
-class CampoMinadoTestCase(unittest.TestCase):
-    def test_mapa_1_por_1(self):
-        self.assertEquals(campo_minado("*"), "*") 
-        self.assertEquals(campo_minado("_"), "0")
-
-    def test_mapa_1_por_2(self):
-        self.assertEquals(campo_minado("**"), "**") 
-        self.assertEquals(campo_minado("*_"), "*1")
-        self.assertEquals(campo_minado("_*"), "1*")
-        self.assertEquals(campo_minado("__"), "00")
-
-    def test_mapa_2_por_2(self):
-        self.assertEquals(campo_minado("**\n**"), "**\n**")
-        self.assertEquals(campo_minado("_*\n**"), "3*\n**")
-        self.assertEquals(campo_minado("_*\n*_"), "2*\n*2")
-        
-    def test_mapa_3_por_3(self):
-        self.assertEquals(campo_minado("***\n***\n***"), "***\n***\n***")
-        self.assertEquals(campo_minado("*__\n___\n___"), "*10\n110\n000")
-        
-    def test_mapa_apresentacao(self):
-        self.assertEquals(campo_minado("__*_\n" \
-                                       "____\n" \
-                                       "_*__\n" \
-                                       "____"),
-                                       "01*1\n" \
-                                       "1221\n" \
-                                       "1*10\n" \
-                                       "1110")
-   
-
-if __name__ == "__main__":
-    unittest.main()

2010_08_18_campo_minado/README

+Campo minado
+============
+
+Dado um campo minado com as posições das minas, retornar para as posições vazias, quantas minas são vizinhas à ela.
+
+Exemplo:
+
+Entrada        Saída        Legenda
+__*_           01*1         _ - Espaço disponível
+____           1221         * - Mina
+_*__           1*10
+____           1110
+

2010_08_18_campo_minado/campo_minado.py

+def campo_minado(mapa):
+    resultado = mapa.replace("_","0")
+
+    if "*" in mapa:
+        linhas = resultado.split()
+        matriz = [list(i) for i in linhas]
+        for linha, conteudo in enumerate(matriz):
+            for coluna, caracter in enumerate(conteudo):
+                if caracter == "*":
+                    try:
+                        if linha-1 < 0:
+                            raise IndexError
+                    
+                        norte = matriz[linha-1][coluna]
+                        if norte != "*":
+                            matriz[linha-1][coluna] = str(int(norte) + 1)
+                    except IndexError: 
+                        pass
+                        
+                    try:
+                        if linha-1 < 0:
+                            raise IndexError
+                        if coluna-1 < 0:
+                            raise IndexError
+                    
+                        noroeste = matriz[linha-1][coluna-1]
+                        if noroeste != "*":
+                            matriz[linha-1][coluna-1] = str(int(noroeste) + 1)
+                    except IndexError: 
+                        pass
+                        
+                    try:
+                        if linha-1 < 0:
+                            raise IndexError
+                        nordeste = matriz[linha-1][coluna+1]
+                        if nordeste != "*":
+                            matriz[linha-1][coluna+1] = str(int(nordeste) + 1)
+                    except IndexError:
+                        pass 
+                      
+                    try:
+                        leste = matriz[linha][coluna+1]
+                        if leste != "*":
+                            matriz[linha][coluna+1] = str(int(leste) + 1)
+                    except IndexError: 
+                        pass
+                        
+                    try:    
+                        sul = matriz[linha+1][coluna]
+                        if sul != "*":
+                            matriz[linha+1][coluna] = str(int(sul) + 1)
+                    except IndexError: 
+                        pass
+                        
+                    try:    
+                        sudeste = matriz[linha+1][coluna+1]
+                        if sudeste != "*":
+                            matriz[linha+1][coluna+1] = str(int(sudeste) + 1)
+                    except IndexError:
+                        pass
+                 
+                    try:
+                        if coluna-1 < 0:
+                            raise IndexError
+                        oeste = matriz[linha][coluna-1]
+                        if oeste != "*":
+                            matriz[linha][coluna-1] = str(int(oeste) + 1)
+                    except IndexError:
+                        pass
+                 
+                    try:    
+                        if coluna-1 < 0:
+                            raise IndexError
+                        sudoeste = matriz[linha+1][coluna-1]
+                        if sudoeste != "*":
+                            matriz[linha+1][coluna-1] = str(int(sudoeste) + 1)
+                    except IndexError:
+                        pass
+                       
+        return "\n".join(["".join(line) for line in matriz])
+    return resultado

2010_08_18_campo_minado/campo_minado_test.py

+import unittest
+from campo_minado import campo_minado
+
+
+class CampoMinadoTestCase(unittest.TestCase):
+    def test_mapa_1_por_1(self):
+        self.assertEquals(campo_minado("*"), "*") 
+        self.assertEquals(campo_minado("_"), "0")
+
+    def test_mapa_1_por_2(self):
+        self.assertEquals(campo_minado("**"), "**") 
+        self.assertEquals(campo_minado("*_"), "*1")
+        self.assertEquals(campo_minado("_*"), "1*")
+        self.assertEquals(campo_minado("__"), "00")
+
+    def test_mapa_2_por_2(self):
+        self.assertEquals(campo_minado("**\n**"), "**\n**")
+        self.assertEquals(campo_minado("_*\n**"), "3*\n**")
+        self.assertEquals(campo_minado("_*\n*_"), "2*\n*2")
+        
+    def test_mapa_3_por_3(self):
+        self.assertEquals(campo_minado("***\n***\n***"), "***\n***\n***")
+        self.assertEquals(campo_minado("*__\n___\n___"), "*10\n110\n000")
+        
+    def test_mapa_apresentacao(self):
+        self.assertEquals(campo_minado("__*_\n" \
+                                       "____\n" \
+                                       "_*__\n" \
+                                       "____"),
+                                       "01*1\n" \
+                                       "1221\n" \
+                                       "1*10\n" \
+                                       "1110")
+   
+
+if __name__ == "__main__":
+    unittest.main()