1. Список говнокодов пользователя pushkoff

    Всего: 8

  2. Ruby / Говнокод #22351

    −99

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    def rotate_array(arr, i)
      i = i%arr.size
      return arr if i == 0
    
      left = arr[0...i].reverse
      right = arr[i..arr.size].reverse
      arr = left + right
    
      arr.reverse
    end

    https://knaidu.gitbooks.io/problem-solving/content/arrays/rotate_array.html
    вообще не понял зачем reverse

    http://ideone.com/9fVLsq

    pushkoff, 17 Февраля 2017

    Комментарии (8)
  3. C++ / Говнокод #21626

    −19

    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
    #define PI_000  0.0000000000000000000000000000000 //   0
    #define PI_001  0.0174532925199432957692369076849 //   1
    #define PI_010  0.1745329251994329576923690768489 //  10
    #define PI_020  0.3490658503988659153847381536977 //  20
    #define PI_030  0.5235987755982988730771072305466 //  30
    #define PI_040  0.6981317007977318307694763073954 //  40
    #define PI_045  0.7853981633974483096156608458199 //  45
    #define PI_050  0.8726646259971647884618453842443 //  50
    #define PI_060  1.0471975511965977461542144610932 //  60
    #define PI_070  1.2217304763960307038465835379420 //  70
    #define PI_080  1.3962634015954636615389526147909 //  80
    #define PI_090  1.5707963267948966192313216916398 //  90
    #define PI_135  2.3561944901923449288469825374596 // 135
    #define PI_180  3.1415926535897932384626433832795 // 180
    #define PI_225  3.9269908169872415480783042290994 // 225
    #define PI_270  4.7123889803846898576939650749193 // 270
    #define PI_315  5.4977871437821381673096259207391 // 315
    #define PI_360  6.2831853071795864769252867665590 // 360

    http://programina.blogspot.com/2016/10/msaa-cpp-codeblocks.html
    там еще много интересного

    pushkoff, 02 Ноября 2016

    Комментарии (6)
  4. C++ / Говнокод #8853

    +997

    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
    Can you think of an algorithm that performs the below:
    “The Big Brown Fox”    	     => “Fox Brown Big The”
    “How are you?”                 => “you? are How”
    
    std::string reverse_words( const std::string& str )
    {
      std::string result;
      result.reserve( str.length() );
      
      size_t word_begin = 0;
      while( word_begin < str.length() )
      {
        const size_t pos = str.find_first_of( ' ', word_begin );
        pos = (pos != string::npos) ? pos : str.length();
        std::string word = str.substr( word_begin, pos-word_begin );
        word_begin = pos + 1;
    
        if (result.length() > 0)
        {
          word.append( 1, ' ');
        }
        result.insert( 0, word );
      }
      return result;
    }

    высрал буквально 5 минут назад
    inplace версию чего-то влом писать для домашнего теста, да и кода в ней будет больше, но работать она должна быстрее за счет отсутствия аллокаций
    но писать надо, так как отправлять такое как-то стыдно

    pushkoff, 17 Декабря 2011

    Комментарии (51)
  5. Python / Говнокод #4910

    −179

    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
    class Source:
    		id = ''
    		values = []
    		arrays =[ ( 'bool_array', bool), ( 'float_array', float), ('IDREF_array', str), ('int_array', int), ('Name_array', str), ('SIDREF_array', str), ('token_array', str)]
    		
    		def __init__(self, node):
    			self.id = node.getAttribute('id')
    			
    			accessors = dict([ (accessor.getAttribute('source')[1:], (int(accessor.getAttribute('count')), int(accessor.getAttribute('stride'))) ) for technique in node.getElementsByTagName("technique_common") for accessor in technique.getElementsByTagName("accessor") ])
    			values = [(arrayNode.getAttribute('id'), int(arrayNode.getAttribute('count')), [array[1](v) for v in getText(arrayNode).split()]) for array in Mesh.Source.arrays for arrayNode in node.getElementsByTagName(array[0])]
    			self.values = [ array[2][i*accessors[array[0]][1]:(i+1)*accessors[array[0]][1]] for array in values for i in range(accessors[array[0]][0])]
    			
    
            <source id="Box001-lib-Position">
              <float_array id="Box001-lib-Position-array" count="24">-23.296745 -46.390999 0.000000 23.296745 -46.390999 0.000000 -23.296745 46.390999 0.000000 23.296745 46.390999 0.000000 -23.296745 -46.390999 35.287621 23.296745 -46.390999 35.287621 -23.296745 46.390999 35.287621 23.296745 46.390999 35.287621</float_array>
              <technique_common>
                <accessor source="#Box001-lib-Position-array" count="8" stride="3">
                  <param name="X" type="float"/>
                  <param name="Y" type="float"/>
                  <param name="Z" type="float"/>
                </accessor>
              </technique_common>
            </source>
    
    в результате нужно получить список в виде
    [[-23.296745, -46.390999, 0.0], [23.296745, -46.390999, 0.0], [-23.296745, 46.390999, 0.0], [23.296745, 46.390999, 0.0], [-23.296745, -46.390999, 35.287621], [23.296745, -46.390999, 35.287621], [-23.296745, 46.390999, 35.287621], [23.296745, 46.390999, 35.287621]]

    Неделю назад начал учить питон, и для того чтоб это было совсем полезно, решил попробовать написать на нем парсер Collada файлов.
    Очень сильно проникся идеей инициализации массивов, из-за чего и родился сей говнокод...
    Код выдает правильный результат, но абсолютно не читаемый...

    pushkoff, 13 Декабря 2010

    Комментарии (21)
  6. Си / Говнокод #3496

    +136

    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
    #if 0
    
    // memory allocator
    // Type: Best Fit with block sorting
    
    #else
    
    static char* last = (char*)KERNEL_HEAP_BEGIN;
    
    void* alloc( size_t size )
    {
    	void * mem = last;
    	last += size;
    	return mem;
    }
    
    void free( void* mem )
    {
    	(void)mem;
    }
    
    #endif

    Менеджер памяти.
    такую заглушку пришлось делать за пару ночей до сдачи диплома, так как не хватало времени на написание записки.
    зато самый быстрый алокатор. сложность О(1)...
    нужен был для выделения памяти для данных 2 потоков и 1 процесса... функция free нигде не использовалась...

    pushkoff, 17 Июня 2010

    Комментарии (38)
  7. Си / Говнокод #2461

    +138.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    char serverName[MAX_NAME];
    char buttonName[MAX_NAME];
    char serverIdStr[3];
    serverIdStr[2] = '\0';
    int currentSpot = 0;
    
    // ...... получение serverName и currentSpot
    
    serverIdStr[0] = '0' + ((currentSpot+1)/10);
    serverIdStr[1] = '0' + ((currentSpot+1)%10);
    strcpy(buttonName, buttonPrefix);
    strcat(buttonName, serverIdStr);

    Кто то не знает про существование sprintf...

    pushkoff, 20 Января 2010

    Комментарии (8)
  8. C++ / Говнокод #1931

    +61.9

    1. 1
    2. 2
    3. 3
    std::string strFullMapName;
    if ( strstr( _strMapFileName.c_str(), "Map/" ) != _strMapFileName.c_str() )
    	strFullMapName = "Map/";

    из одного очень дорогого проекта

    pushkoff, 03 Октября 2009

    Комментарии (6)
  9. C++ / Говнокод #1900

    +62.3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    void func(const char* str)
    {
      std::map<std::string, int>::iterator = my_map.find(str);
    
      .....
    }
    
    std::string str = "key";
    func(str.c_str());

    Уверен что это может найти каждый из вас в своих проектах, но может не в таком очевидном виде...

    pushkoff, 25 Сентября 2009

    Комментарии (3)