1. Лучший говнокод

    В номинации:
    За время:
  2. PHP / Говнокод #9273

    +148

    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
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    <?php
    function demotivator($image, $wheresave, $slogan1, $slogan2, $copyright) {
    $ext = getimagesize($image);
    // Открываем изображение
    switch($ext[2]) {
    
    	case 2: {$img = ImageCreateFromJPEG($image); break;}
    	case 1: {$img = ImageCreateFromGIF($image); break; }
    	case 3: {$img = ImageCreateFromPNG($image); break;}
    	case 6: {$img = ImageCreateFromBMP($image); break;}
    	default : {
    		unlink ($image);
    		return 2;
    	}
    }
    // Получение размеров изображения
    $x = ImageSX($img); // X
    $y = ImageSY($img); // Y
    // Размер черного прямоугольника, который будем рисовать
    $tx = $x * 0.1;
    $ty = $x * 0.1;
    $bx = $x + $tx;
    $by = $y + $ty;
    $dx= $x * 0.01; // Смещение. Необходимо для рисования рамки
    $dy= $x * 0.01;
    // Черный фон
    $black = ImageColorAllocate($img, 0, 0, 0);
    // Создаем новое изображение
    $img2 = ImageCreateTrueColor($bx + $tx, $by + $tx * 2.6);
    $black = ImageColorAllocate($img2, 0, 0, 0);
    // Масштабирование
    ImageCopyResized($img2, $img, $tx, $ty, 0, 0, $bx-$tx, $y, $x, $y);
    // Расчет смещений для рисования рамки
    $x1 = $tx;
    $y1 = $ty;
    $x2 = $bx;
    $y2 = $y + $ty;
    // Цвета рамки, слоганов и копирайта
    $col = ImageColorAllocate($img2, 255, 255, 255); // Цвет слоганов
    $col2 = ImageColorAllocate($img2, 255, 255, 255); // Цвет копирайта
    $col3 = ImageColorAllocate($img2, 255, 255, 255); // Цвет рамки
    // Рамки на изображении
    ImageRectangle($img2, $x1 - 5, $y1 - 5, $x2 + 4, $y2 + 4, $col3);
    ImageRectangle($img2, $x1 - 6, $y1 - 6, $x2 + 5, $y2 + 5, $col3);
    // Пишем слоганы, сначала с X=0, чтобы получить линейные размеры текста
    $s1 = ImageTTFText($img2, 0.06 * $bx, 0, $dx, $by + $ty, $col, "/times.ttf", $slogan1);
    $s2 = ImageTTFText($img2, 0.035 * $bx, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    // 1-й слоган не помещается в картинку - ошибка!
    if (($s1[2] - $s1[0]) > $bx + $tx) $sl1 = 1;
    $dx = (($bx + $tx) - ($s1[2] - $s1[0]))/2; // Смещение. Эта величина определяет центровку текста для 1-го слогана
    // Непосредственно текст. 1-й слоган
    ImageFilledRectangle($img2, 0, $y2 + 10, $bx + $tx, $by + $tx * 2.8, $black);
    ImageTTFText($img2, 0.06 * $bx, 0, $dx, $by + 1.1*$ty, $col, "/times.ttf", $slogan1);
    $dx = (($bx + $tx) - ($s2[2] - $s2[0]))/2; // Смещение. Эта величина определяет центровку текста для 2-го слогана
    // Непосредственно текст. 2-й слоган (таглайн)
    if ($dx < 0)  {
    	// Текст не умещается в картинку, масштабируем.
    	$s = $s2[2] - $s2[0];
    	$size = (0.035 * $bx * $bx) /$s;
    	$s2 = ImageTTFText($img2, $size, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    	$dx = (($bx + $tx) - ($s2[2] - $s2[0]))/2;
    	ImageFilledRectangle($img2, 0, $by + 1.2* $tx, $bx + $tx, $by + $tx * 2.6, $black);
    	ImageTTFText($img2, $size, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    } else  {
    	$size = 0.035 * $bx;
    	ImageFilledRectangle($img2, 0, $by + 1.4*$tx, $bx + $tx, $by + $tx * 2.3, $black);
    	ImageTTFText($img2, $size, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    }
    // Copyright
    ImageTTFText($img2, $size/1.7, 0, 10, $by + $tx * 2.5, $col2, "/arial.ttf", $copyright);
    ImageJpeg($img2, $wheresave);
    ImageDestroy($img2);
    return 0;
    }
    ?>

    Код не мой, я просто разместил объяву.

    varg242, 31 Января 2012

    Комментарии (6)
  3. PHP / Говнокод #9271

    +148

    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
    /*
     @param array $menu_array Array of pages
     @param string $current Current page
     @return string $menu Menu.
    */
    function CreateMenu($menu_array, $current)
    {
        foreach($menu_array as $key => $value)
        {
            if($key == $current) $active = " class=\"active\"";
            
            $menu .= "<li$active><a href=\"$key\">$value</a></li>\n";
            unset($active);
        }
        
        return $menu;
    }

    varg242, 31 Января 2012

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

    −101

    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
    def actual?
        if self.from <= Date.today
          if self.to
            if self.to >= Date.today
              true
            else
              false
            end
          else
            true
          end
        else
          false
        end
      end

    метод в модели, проверяющий ее актуальность

    MikDiet, 31 Января 2012

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

    +155

    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
    lili at nikha dot org 04-Apr-2011 04:02 
     Keep it simple! 
     For associative arrays, my replacement for list() is this:
    <?php
    foreach ($associative_array as $key => $value) { $$key = $value; }
    ?>
    
     Example:
    <?php
     $petnames = array();
    $petnames['dog'] = 'Paul';
    $petnames['cat'] = 'Lili';
    
     foreach ($petnames as $name => $value) { $$name = $value; }
    
     echo 'my pets are '.$dog.' and '.$cat;
    ?>
    
     Will give you:
     my pets are Paul and Lili

    Коммент к функции list() в мануале. В See Also был extract(), но видимо далбоёбов это не останавливает.

    DrFreez, 30 Января 2012

    Комментарии (6)
  6. PHP / Говнокод #9243

    +167

    1. 1
    $sredn['Итог']['Е']=$sredn['Итог']['Е']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Е'];$sredn['Итог']['Я']=$sredn['Итог']['Я']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Я']; $sredn['Итог']['Яч']=$sredn['Итог']['Яч']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Яч']; $sredn['Итог']['К']=$sredn['Итог']['К']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['К']; $sredn['Итог']['О']=$sredn['Итог']['О']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['О']; $sredn['Итог']['Ж']=$sredn['Итог']['Ж']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Ж']; $sredn['Итог']['Б']=$sredn['Итог']['Б']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Б']; $sredn['Итог']['Р']=$sredn['Итог']['Р']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Р']; $sredn['Итог']['ОЖ']=$sredn['Итог']['ОЖ']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['ОЖ']; $sredn['Итог']['У']=$sredn['Итог']['У']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['У']; $sredn['Итог']['А']=$sredn['Итог']['А']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['А']; $sredn['Итог']['Г']=$sredn['Итог']['Г']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Г']; $sredn['Итог']['ОАД']=$sredn['Итог']['ОАД']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['ОАД']; $sredn['Итог']['ПР']=$sredn['Итог']['ПР']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['ПР']; $sredn['Итог']['В']=$sredn['Итог']['В']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['В']; $sredn['Итог']['дни']=$sredn['Итог']['дни']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['дни']; $sredn['Итог']['днич']=$sredn['Итог']['днич']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['днич']; $sredn['Итог']['srednespisRaschet']=$sredn['Итог']['srednespisRaschet']+round($sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['srednespisRaschet']/$datn,1); $sredn['Итог']['neiavki']=$sredn['Итог']['neiavki']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['neiavki'];

    это только маленькая частичка того поистине огромного наследства, которое досталось мне и моему коллеге.
    человек писавший это отличался полным нехотение использовать хотя бы оператор +=
    и циклы конечно же.

    p.s. да-да это одна строка
    p.p.s. и, как вы понимаете, она там не одна

    drugged_monkey, 28 Января 2012

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

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    .middleWrapper .countryPreviewWrapper .countryPreviewContainer {}
    .middleWrapper .countryPreviewWrapper .countryPreviewContainer .item {}
    .middleWrapper .countryPreviewWrapper .countryPreviewContainer .item h2 {}
    .middleWrapper .countryPreviewWrapper .countryPreviewContainer .item hr {}
    .middleWrapper .countryPreviewWrapper .countryPreviewContainer .item span {}

    адовые цепочки

    alex_ok, 23 Января 2012

    Комментарии (6)
  8. Java / Говнокод #9193

    +70

    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
    public class Brakets {
    	public static void main(String args[]) {
    		String sample;
    		if (args.length > 0 && args[0] != "")
    			sample = args[0];
    		else
    			sample = "asdf(sd{sd}sdfgs[sdfg{}]_)){}sdfg[sdfg{sdfg}]";
    		// init handler and add patterns
    		BracketHandler b = new BracketHandler();
    		b.add("[", "]");
    		b.add("{", "}");
    		b.add("[", "]");
    		b.add("(", ")");
    
    		// init input stack
    		CommonStack<BracketTemplate> result = new CommonStack<BracketTemplate>();
    
    		for (int i = 0; i < sample.length(); i++) {
    			// Assert that pattern is one characted length
    			String subString = sample.substring(i, i + 1);
    			BracketTemplate tmp = b.getTemplate(subString);
    			if (tmp != null) {
    				if (tmp.isStartPattern(subString)) {
    					result.push(tmp);
    				} else {
    					BracketTemplate t = result.pop();
    					if (t == null || !t.isEndPAttern(subString)) {
    						System.out.print("Check failed");
    						return;
    					}
    				}
    
    			}
    		}
    		System.out.print("Check passed");
    	}
    }

    Ещё одна реализация Brackets, теперь и на Java (от автора предыдущего класса стека)

    varg242, 21 Января 2012

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

    +76

    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
    package brakets;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class CommonStack<T> {
    	private final List<T> items = new ArrayList<T>();
    	private int position = -1;
    
    	public void push(T newEl) {
    		items.add(newEl);
    		position++;
    	}
    
    	public T pop() {
    		if (position >= 0) {
    			T b = items.get(position);
    			items.remove(position);
    			position--;
    			return b;
    		}
    		return null;
    	}
    
    	@Override
    	public String toString() {
    		return "CommonStack [items=" + items + ", position=" + position + "]";
    	}
    
    	public boolean hasNext() {
    		return position >= 0;
    	}
    }

    Человек написал свою реализацию стека на Java

    varg242, 21 Января 2012

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

    +141

    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
    #include <iostream>
    using namespace std;
    int main()
    {
      for (int i=1; i<=5;i++)
      {
          for (int i2=1;i2<=5;i2++)
          {
              //Левый и правый фланг
              if ((i2==1) || (i2==5)) { cout << "+";}
              //Верхний и нижний
              if ((i==1) || (i==5))
              {cout << "+";} else {cout << "-";}
    
          }
          cout << "\n";
      }
      return 0;
    }

    По идее, программа должна генерировать сетку вида "Квадрат", где "+" покраям, а в середине "-".
    Есть рабочий вариант

    #include <iostream>
    using namespace std;
    int main()
    {
    for (int i=1; i<=5;i++)
    {
    for (int i2=1;i2<=5;i2++)
    {
    //Левый фланг
    if ((i2==1)) { cout << "+";}
    //Верхний и нижний
    if ((i==1) || (i==5)) {cout << "+";} else {cout << "-";}
    //Правый фланг
    if (i2==5) {cout << "+";}

    }
    cout << "\n";
    }
    return 0;
    }
    Но он не подходит, так как в самом квадрате будут генерировать опр. структуры.

    Splice, 21 Января 2012

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

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    string Delimiter(string Text, int Index, const char* Delimiter) {
    	int n = 0, find = 0;
    	for (int i = 0; i <= Index; i++) {
    		find = Text.find(Delimiter, n);
    		if (i == Index) {  
    			return Text.substr(n, find - n);
    		}
    		n = find + 1;
    	}
    	return "";
    }

    FalseCoder, 17 Января 2012

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