1votos

Dibujando laberintos en Haskell

por josejuan hace 6 años

Antes puse como Haskell la de Javascript. Para compensar, pongo como Javascript la de Haskell. :P

Dado un fichero de entrada formado por una serie de números y carácteres, el programa debe procesar los mismos y ser capaz de dibujar los laberintos descritos por el fichero de entrada.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
printMaze s = m s 0 
  where n = "0123456789" 
        m [] _ = [] 
        m (x:xs) a | x `elem` "\n!" = '\n': m xs 0 
                   | x `elem` n = m xs (a + (fromJust $ elemIndex x n)) 
                   | x == 'b' = m (' ':xs) a 
                   | True = (take a.repeat) x ++ m xs 0 
 
 
 
 
-- usage: 
import Data.List 
import Data.Maybe 
 
*Main> putStrLn $ printMaze "1T1b5T!1T2b1T1b2T!1T1b1T2b2T!1T3b1T1b1T!3T3b1T!1T3b1T1b1T!5T1*1T\n\n11X21b1X\n4X1b1X\n" 
T TTTTT 
T  T TT 
T T  TT 
T   T T 
TTT   T 
T   T T 
TTTTT*T 
 
XX   X 
XXXX X 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.