1. Haskell / Говнокод #16405

    −80

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    map_of_enemy :: [[Int]] -> [[Int]]
    map_of_enemy [] = []
    map_of_enemy list = (iniciar (0) (0) (list))
    
    iniciar :: Int -> Int -> [[Int]] -> [[Int]]
    iniciar a b list = if(a == (length list)-1) then [rango a 0 list]
                   else [rango a 0 list]++[(iniciar (a+1) 0 list)]
    
    rango :: Int -> Int -> [[Int]] -> [Int]
    rango a b list = if (b==(length list)-1 && (((list!!a!!0)==(list!!b!!0)) &&     ((list!!a!!1)==(list!!b!!1)) && ((list!!a!!2)==(list!!b!!2))))
                 then [0]
                 else if (b==(length list)-1 && (((list!!a!!0)/=(list!!b!!0)) || ((list!!a!!1)/=(list!!b!!1)) || ((list!!a!!2)/=(list!!b!!2))))
                 then (rango2 a (list!!b) list)
                 else if (((list!!a!!0)==(list!!b!!0)) && ((list!!a!!1)==(list!!b!!1)) && ((list!!a!!2)==(list!!b!!2)))
                 then [0]++(rango a (b+1) list)
                 else (rango2 a (list!!b) list)++(rango a (b+1) list)
    
    rango2 :: Int -> [Int] -> [[Int]] -> [Int]
    rango2 a b list = if ((verif [(list!!a!!0)+(list!!a!!2),(list!!a!!1)+(list!!a!!2)] [(list!!a!!0)-(list!!a!!2),(list!!a!!1)-(list!!a!!2)] (b))) then [1]
                  else [0]
    
    verif a b c = if (((c!!0) < (a!!0)) && ((c!!0) > (b!!0)) && ((c!!1) < (a!!1)) && ((c!!1) > (b!!1))) then True
              else if (((c!!0) < (a!!0)) && ((c!!0) == (b!!0)) && ((c!!1) < (a!!1)) && ((c!!1) == (b!!1))) then True
              else if (((c!!0) == (a!!0)) && ((c!!0) > (b!!0)) && ((c!!1) == (a!!1)) && ((c!!1) > (b!!1))) then True
              else False

    Haskell
    OMG mode on

    Запостил: kegdan, 22 Июля 2014

    Комментарии (7) RSS

    • c http://codereview.stackexchange.com/
      Ответить
    • А вот в сишке...
      a!!0
      head a
      *a
      Ответить
    • если не ошибаюсь
      map_of_enemy :: [[Int]] -> [[Int]]
      map_of_enemy [] = []
      map_of_enemy list = (iniciar (0) (0) (list))
      
      iniciar :: Int -> Int -> [[Int]] -> [[Int]]
      iniciar a b list = if(a == (length list)-1) then [rango a 0 list]
                     else [rango a 0 list]++[(iniciar (a+1) 0 list)]

      заменяется на
      map_of_enemy [] = []
      map_of_enemy list = (iniciar 0 list)
      
      iniciar a list = concat [[rango x 0 list]| x<-[a..((length list)-1)]]
      Ответить
      • Даже так
        iniciar a list = [rango x 0 list| x<-[a..((length list)-1)]]
        Ответить
        • В остальном говне нет желания копаться
          Ответить
    • Ебанный пиздец
      if (((c!!0) < (a!!0)) && ((c!!0) > (b!!0)) && ((c!!1) < (a!!1)) && ((c!!1) > (b!!1))) then True
      else if (((c!!0) < (a!!0)) && ((c!!0) == (b!!0)) && ((c!!1) < (a!!1)) && ((c!!1) == (b!!1))) then True
      else if (((c!!0) == (a!!0)) && ((c!!0) > (b!!0)) && ((c!!1) == (a!!1)) && ((c!!1) > (b!!1))) then True
      else False
      Ответить
    • У меня некоторые студенты с сишечными рефлексами примерно такое и писали :(
      Ответить

    Добавить комментарий