1. C++ / Говнокод #3713

    +158

    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
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    switch(filter)
       {
          case FILTER_SPECIAL:
          {
    
             if ( ( u8Direction >= 0xF0 ) || ( u8Direction <= 0x0F ) )
             {
                return 0x0;
             }
             else if ( ( u8Direction >= 0x10 ) && ( u8Direction <= 0x2F ) )
             {
                return 0x2;
             }
             else if ( ( u8Direction >= 0x30 ) && ( u8Direction <= 0x4F ) )
             {
                return 0x4;
             }
             else if ( ( u8Direction >= 0x50 ) && ( u8Direction <= 0x7F ) )
             {
                return 0x6;
             }
             else if ( u8Direction == 0x80 )
             {
                return 0x8;
             }
             else if ( ( u8Direction >= 0x81 ) && ( u8Direction <= 0xAF ) )
             {
                return 0xA;
             }
             else if ( ( u8Direction >= 0xB0 ) && ( u8Direction <= 0xCF ) )
             {
                return 0xC;
             }
             else if ( ( u8Direction >= 0xD0 ) && ( u8Direction <= 0xEF ) )
             {
                return 0xE;
             }
             break;
          }
    
          case FILTER_NORMAL:
          --//--
          break;
          case FILTER_BACKWARD_DIRECTION:
          --//--
         break;
      }

    Сферический индокод в вакууме

    Запостил: Zielscheibe, 16 Июля 2010

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

    • вполне нормальный код - учитывая что зависимость между входом и выходом (хоть и проста но) не тривиальна.

      можно было бы попробовать компактней написать, но не уверен что лучше чем уже есть получится.
      Ответить
    • Если часто вызывается можно в табличное представление перевести и дальше по индексу.
      Опять же если 256 байт не жалко.
      Вообще, конечно, первое условие и 0x80 выпадают из логики как-то.
      Ответить
      • >> 0x80 выпадают из логики как-то.
        Ну дык СПЕШАЛ же фильтер, смертным не понять.
        Ответить

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