1. Куча / Говнокод #14296

    +126

    1. 1
    http://www.youtube.com/watch?v=HNMq8XS4LhE

    позвольте и мне похулиганить.
    в тему недавних комментов.

    Lure Of Chaos, 28 Декабря 2013

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

    +18

    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
    #include <iostream>
    
    #define PRINT(val) std::cout << #val \
                                 << " value: " << val \
                                 << " address: " << &val << std::endl; 
    int& constRef(){
        int var = 10;
        PRINT(var)
        return var;
    }
    
    int main() {
       const int a = 'a', b = 'bcde';
       std::cout << a << " " << b << std::endl;
       const int& ref = constRef();  
       PRINT(ref)  
    }

    Малоизвестный синтаксис плюсов.
    1. Инициализация целочисленного значения из строки (используется в строках-классах времени компиляции).
    2. Константная ссылка на стековый объект (используется для создания DSL, в т.ч. boost::spirit).
    P.S.: Более полный вариант со строками лежит на форуме.

    crastinus, 28 Декабря 2013

    Комментарии (303)
  3. Куча / Говнокод #14294

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    def executeAfterDelay(t: Duration) (toExecute: => Unit): Future[Unit] = {
        future { 
          blocking { 
            Thread.sleep(t.toMillis)
          }
          toExecute
        }
      }

    Scala. Код работы с асинхронным фреймворком Akka. Говнонюанс в том, что есть встроенный класс Scheduler, делающий то же самое, только лучше.

    0rt, 28 Декабря 2013

    Комментарии (0)
  4. Куча / Говнокод #14293

    +113

    1. 1
    2. 2
    Стартовал форум работы еще много,  тестить уже можно 
    http://gvforum.ru/

    Vasiliy, 28 Декабря 2013

    Комментарии (179)
  5. JavaScript / Говнокод #14292

    +160

    1. 1
    2. 2
    3. 3
    if ( String(typeof Ext).toLowerCase() === "object") {		
        Ext.BLANK_IMAGE_URL = '/style/ext/resources/images/default/s.gif';		
    }

    Ох. Штабильненько.

    Elvenfighter, 28 Декабря 2013

    Комментарии (5)
  6. Куча / Говнокод #14291

    +119

    1. 1
    2. 2
    3. 3
    Мы
    сдали
    ЭТО

    Я видел ЭТО изнутри, я в ЭТОМ участвовал.
    Мы с ЭТО теперь едины.

    У каждого из нас есть своё ЭТО.

    Xom94ok, 27 Декабря 2013

    Комментарии (10)
  7. JavaScript / Говнокод #14290

    +155

    1. 1
    <!-- ko if: CurrentUserRole() != 16 -->

    Угадай какая роль
    knockoutjs

    Rez, 27 Декабря 2013

    Комментарии (10)
  8. bash / Говнокод #14289

    −119

    1. 1
    echo `getent passwd | awk -F: '{ if($1 == "myaut") print $3; }'`

    Определяет id пользователя myaut. Откопано в старой (моей) переписке. Эх...

    myaut, 27 Декабря 2013

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

    +23

    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
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    //VS 2010 C++
    #include <Windows.h>
    #include <time.h>
    #include <queue>
    #pragma comment(lib, "winmm.lib")
    char shapeForms[7][4][5][6] = {{{{0,0,0,0,0},{0,0,1,0,0},{0,0,1,0,0},{0,0,1,0,0},{0,0,1,0,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,1,1,1,1},{0,0,0,0,0}},{{0,0,0,0,0},{0,0,1,0,0},{0,0,1,0,0},{0,0,1,0,0},{0,0,1,0,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,1,1,1,1},{0,0,0,0,0}}},{{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,1,1,0},{0,0,1,1,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,1,1,0},{0,0,1,1,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,1,1,0},{0,0,1,1,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,1,1,0},{0,0,1,1,0}}},{{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,1,1,1},{0,0,0,1,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,1,0},{0,0,0,1,1},{0,0,0,1,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,1,0},{0,0,1,1,1},{0,0,0,0,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,1,0},{0,0,1,1,0},{0,0,0,1,0}}},{{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,1,1,0},{0,0,0,1,1}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,1,0},{0,0,1,1,0},{0,0,1,0,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,1,1,0},{0,0,0,1,1}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,1,0},{0,0,1,1,0},{0,0,1,0,0}}},{{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,1,1,1},{0,0,1,0,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,1,1,0},{0,0,0,1,0},{0,0,0,1,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,1,0},{0,1,1,1,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,1,0,0},{0,0,1,0,0},{0,0,1,1,0}}},{{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,1,1},{0,0,1,1,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,1,0,0},{0,0,1,1,0},{0,0,0,1,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,1,1},{0,0,1,1,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,1,0,0},{0,0,1,1,0},{0,0,0,1,0}}},{{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,1,1,1},{0,0,0,0,1}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,1,1,0},{0,0,1,0,0},{0,0,1,0,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,1,0,0,0},{0,1,1,1,0}},{{0,0,0,0,0},{0,0,0,0,0},{0,0,0,1,0},{0,0,0,1,0},{0,0,1,1,0}}}}, field[32][28] = {0}, shape[5], shape_r[5], modifiers[4][3] = {{0,-1,0},{0,1,0},{1,0,0},{0,0,64}}, keys[4] = {'A', 'D', 'W', 'S'}, keyPressed = -1, lk = 0; //shape - 1: shape state; 2: shape type; 3: y; 4: x;
    std::queue<std::pair<COORD, std::pair<char, char>>> paste;
    COORD t;
    unsigned int Score(0);
    void draw(COORD cd, char c) {if((cd.Y = cd.Y - 4)||true) if(cd.Y >= 0) {SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), cd);
    printf("%c", c);}}
    bool next_frame(bool mode, bool isShapeFell) {for(char y(0); y != 5; ++y) {for(char x(0); x != 6; ++x) {t.X = shape[4]+x; t.Y = shape[3]+y; 
    			if(shapeForms[shape[2]][shape[1]][y][x] == 1) {if(field[t.Y][t.X] == 0) paste.push(std::make_pair(t, std::make_pair(-37, 1)));
    				if(field[t.Y][t.X] == 2 || field[t.Y][t.X] == 3) isShapeFell = true;}else if(field[t.Y][t.X] == 1) paste.push(std::make_pair(t, std::make_pair(32, 0)));}}
    	if(isShapeFell) {while(paste.size()) paste.pop();
    		if(mode) for(char i(0); i != 31; ++i) for(char j(0); j != 25; ++j) if(field[i][j] == 1) field[i][j] = 3;
    		return false;}else {for(paste; paste.size() != 0; paste.pop()) {draw(paste.front().first, paste.front().second.first);
    			field[paste.front().first.Y][paste.front().first.X] = paste.front().second.second;}}
    	return true;}
    bool clearFullLines() {for(char isLineExist(1); isLineExist == 1;) {isLineExist = 0;
    		for(char j(0), up(0), down(0), cnt(0); j != 31; (++j) && (cnt = 0)) {for(char i(3); i != 25; ++i) if(field[j][i] == 3) if(j < 5) return false; else cnt++;
    			if(cnt == 22) {if(isLineExist == 0 && (isLineExist = 1) && (down = j)) up = j;
    			else down = j;}else if(isLineExist == 1 && (Score = Score + down-up+1)) {for(char q = down, tmp(0); q >= char(4); (--q)) for(char p(3); p != 25; (++p) && (tmp = 0)) {for(t.X = p, t.Y = q; tmp == 0; tmp = 1);
    					field[q][p] = 0; draw(t, 32);
    					if(field[up+q-down-1][p] == 3) draw(t, -37);
    					t.Y = up+q-down-1;
    					field[q][p] = field[up+q-down-1][p];
    					field[up+q-down-1][p] = 0;}
    				goto next_search;}}
    	next_search:;}
    	return true;}
    int main() {timeBeginPeriod(2);
    	system("mode con cols=42 lines=28");
    	srand(clock()+time(NULL));
    	memset(field, 2, sizeof(field));
    	for(char i(0); i != 28; ++i) for(char j(0), q(0); j != 32; ++j && (q = 0)) for(t.X = i, t.Y = j; q == 0; q = 1) draw(t, -80);
    	for(char i(3); i != 25; ++i) for(char j(0), q(0); j != 30; ++j && (q = 0)) for(t.X = i, t.Y = j; q == 0; (q = 1) && (field[j][i] = 0)) draw(t, 32);
    	for(int tm = 100;true;) {next_turn: if(!clearFullLines() && printf("You fail!")) {system("pause");
    			return 0;}
    		for(t.X = 30, t.Y = 5; false;);  
    		SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), t);
    		printf("Score: %i ", Score);
    		shape[1] = rand()*4/(RAND_MAX+1); shape[2] = rand()*7/(RAND_MAX+1); shape[4] = rand()*20/(RAND_MAX+1)+3;
    		for(shape[3] = 0; true; shape[3]++) {for(char h(0); h != 5; ++h) {Sleep(tm); tm = 70;
    				for(char i(0); i != 4 && keyPressed == -1; ++i) if(GetKeyState(keys[i]) < 0) keyPressed = i;
    				if(keyPressed != -1 && !(lk == keyPressed && lk == 2)) {for(char j(0); j != 5; ++j) shape_r[j] = shape[j];
    					shape[4] += modifiers[keyPressed][1]; shape[1] = (shape[1] + modifiers[keyPressed][0])%4;
    					tm -= modifiers[keyPressed][2];
    					lk = keyPressed;
    					keyPressed = -1; 
    					if(!next_frame(false, false)) {for(char j(0); j != 5; ++j) shape[j] = shape_r[j];
    						if(!next_frame(true, false)) goto next_turn;}}else {if(!next_frame(true, false)) goto next_turn;
    					if(keyPressed == -1) lk = -1;
    					if(lk != 2) lk = 0;else keyPressed = -1;}}}}}

    Была задача за минимальное кол-во строк реализовать простой тетрис. Особого внимания заслуживает 6 строчка кода. Всё очень плохо?
    Управление WSAD.

    o0oflashero0o, 26 Декабря 2013

    Комментарии (75)
  10. PHP / Говнокод #14287

    +153

    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
    <?php
    namespace Custom\Entity;
    
    class slideshow{
        const IBLOCK_ID = SLIDER_ON_INDEX_IBLOCK_ID;
    
        static function getLabel($type){
            $label = "";
            switch($type){
                case NEW_OF_DAY_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
                    $label = '<img class="sticker news_of_day" src="/static/img/labels/news_of_day_l.png"><img class="sticker news_of_day_r" src="/static/img/labels/news_of_day_r.png">';
                    break;
                case HOT_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
                    $label = '<img class="sticker hot infoBlock rsABlock rsNoDrag" src="/static/img/labels/hot.png">';
                    break;
                case SLUH_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
                    $label = '<img class="sticker infoBlock infoBlockLeftBlack rsABlock rsNoDrag" src="/static/img/labels/gossip.png">';
                    break;
                case ITEM_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
                    $label = '<img class="sticker thing_of_week infoBlock rsABlock rsNoDrag" src="/static/img/labels/thing_of_week.png">';
                    break;
                case POPULAR_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
                    $label = '<img class="sticker most_popular infoBlock rsABlock rsNoDrag" src="/static/img/labels/most_popular.png">';
                    break;
                case CHOOSE_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
                    $label = '<img class="sticker editors_choice infoBlock" src="/static/img/labels/editors_choice.png">';
                    break;
                case BEST_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
                    $label = '<img class="sticker the_best infoBlock rsABlock rsNoDrag" src="/static/img/labels/the_best.png">';
                    break;
                case NEW_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
                    $label = '<img class="sticker new infoBlock rsABlock rsNoDrag" src="/static/img/labels/new.png">';
                    break;
            }
            return $label;
        }
    }
    ?>

    И еще один замечательный пример ChinaCode от "грамотных разработчиков на битриксе, которые знают неймспейсы". Особенно порадовал css-класс rsNoDrag, хотя по большому счету надо было бы данный класс назвать "NoDrugs" и взять на вооружение данным "пейсателям".

    sturm, 26 Декабря 2013

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