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

    +177

    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
    // Задача "Сложный XOR", олимпиада ACM контестер Украина.
    // Есть множество натуральных чисел от 0 до N. Играют двое игроков. Сначала один убирает из множества число,
    // потом второй. Если в множестве есть (осталось) число, равное побитовому XOR двух выбранных чисел, убирают
    // и его (в условии задачи битность числа не указана, но сказано, что 1 <= N <= 32). Играют пока в множестве
    // есть числа. Проигрывает тот, который не может совершить ход (на ком кончились числа).
    // Ввод - число N, вывод - игрок, который выиграл (оба игрока придерживаются выгодной стратегии).
    
    #include <iostream>
    #include <time.h>
    
    using namespace std;
    
    int main() {
    
    	int n;
    	cin >> n;
    
    	// Это очевидно
    	if (n==1) {
    		cout << "First";
    		return 0;
    	}
    	if (n==2) {
    		cout << "Second";
    		return 0;
    	}
    
    	// Это было в примере
    	if (n==3) {
    		cout << "First";
    		return 0;
    	}
    
    	int s = clock() % 2;		// rand() не работал чето :)
    
    	if (s==0) {
    		cout << "First";
    	} else {
    		cout << "Second";
    	}
    
    	return 0;
    }

    Говноолимпиадам - говнорешения!
    Скажете, зачем такое постить, это не говнокод... Фишка в том, что это незамысловатое решение *правильно прошло все тесты с первого раза!* :D

    Actine, 16 Апреля 2011

    Комментарии (70)
  2. ActionScript / Говнокод #6380

    −112

    1. 1
    this.iconSrc = iconSrc != '' ? iconSrc : iconSrc;

    Очевидно, когда-то это было проверкой на пустую ссылку на картинку.

    Flashist, 16 Апреля 2011

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

    +126

    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
    g.Graphics.DrawLine( p, this.pb.Width / 2 + 126, this.pb.Height / 2 + 176, this.pb.Width / 2 + 126, this.pb.Height / 2 + 176 + 20 );
                        g.Graphics.DrawLine( p, this.pb.Width / 2 - 126, this.pb.Height / 2 + 176, this.pb.Width / 2 - 126, this.pb.Height / 2 + 176 + 20 );
                        g.Graphics.DrawLine( new Pen( Color.Black ), this.pb.Width / 2 - 126, this.pb.Height / 2 + 176 + 20, this.pb.Width / 2 + 126, this.pb.Height / 2 + 176 + 20 );
                        g.Graphics.DrawLine( new Pen( Color.Black ), this.pb.Width / 2 - 126, this.pb.Height / 2 + 176 + 20, this.pb.Width / 2 - 126 + 8, this.pb.Height / 2 + 176 + 15 );
                        g.Graphics.DrawLine( new Pen( Color.Black ), this.pb.Width / 2 - 126, this.pb.Height / 2 + 176 + 20, this.pb.Width / 2 - 126 + 8, this.pb.Height / 2 + 176 + 25 );
                        g.Graphics.DrawLine( new Pen( Color.Black ), this.pb.Width / 2 + 126, this.pb.Height / 2 + 176 + 20, this.pb.Width / 2 + 126 - 8, this.pb.Height / 2 + 176 + 15 );
                        g.Graphics.DrawLine( new Pen( Color.Black ), this.pb.Width / 2 + 126, this.pb.Height / 2 + 176 + 20, this.pb.Width / 2 + 126 - 8, this.pb.Height / 2 + 176 + 25 );
                        g.Graphics.FillRectangle( Brushes.White, this.pb.Width / 2 - 25, this.pb.Height / 2 + 176 + 10, 50, 20 );
                        g.Graphics.DrawString( this.textBox1.Text + " mm", new Font( "Arial", 8 ), new SolidBrush( Color.Black ), this.pb.Width / 2 - 21, this.pb.Height / 2 + 176 + 12 );
    
                        g.Graphics.DrawLine( new Pen( Color.Black ), this.pb.Width / 2 - (int)paint_nozh_fill / 2, this.pb.Height / 2, this.pb.Width / 2 + (int)paint_nozh_fill / 2, this.pb.Height / 2 );
                        g.Graphics.DrawLine( new Pen( Color.Black ), this.pb.Width / 2 - (int)paint_nozh_fill / 2, this.pb.Height / 2, this.pb.Width / 2 - (int)paint_nozh_fill / 2 + 8, this.pb.Height / 2 - 5 );
                        g.Graphics.DrawLine( new Pen( Color.Black ), this.pb.Width / 2 - (int)paint_nozh_fill / 2, this.pb.Height / 2, this.pb.Width / 2 - (int)paint_nozh_fill / 2 + 8, this.pb.Height / 2 + 5 );
                        g.Graphics.DrawLine( new Pen( Color.Black ), this.pb.Width / 2 + (int)paint_nozh_fill / 2, this.pb.Height / 2, this.pb.Width / 2 + (int)paint_nozh_fill / 2 - 8, this.pb.Height / 2 - 5 );
                        g.Graphics.DrawLine( new Pen( Color.Black ), this.pb.Width / 2 + (int)paint_nozh_fill / 2, this.pb.Height / 2, this.pb.Width / 2 + (int)paint_nozh_fill / 2 - 8, this.pb.Height / 2 + 5 );
                        g.Graphics.FillRectangle( Brushes.White, this.pb.Width / 2 - 25, this.pb.Height / 2 - 10, 50, 20 );
                        g.Graphics.DrawString( this.getNozhFill( ).ToString( ) + " mm", new Font( "Arial", 8 ), new SolidBrush( Color.Black ), this.pb.Width / 2 - 21, this.pb.Height / 2 - 8 );

    Человек похоже перепутал визул студию с фотошопом, но закрывать не стал )) Этот код рисует чертеж - примем со стрелочками, с откосами и даже(!) с отбрасывает тень. Понятия не имею как преписывать

    glilya, 16 Апреля 2011

    Комментарии (20)
  4. Си / Говнокод #6378

    +145

    1. 1
    2. 2
    3. 3
    //Determine padding for use in allocating new memory
    int padding = 0;
    while ( (width * 3 + padding) % 4 != 0) padding++;

    http://www.cplusplus.com/forum/windows/6353/
    Ещё одна история о том, как людям не дано запомнить двоичную природу данных.
    Если что, вот корректный шаблон на D:

    int packed(int alignment)(int location) {
    static assert(alignment == 2 | alignment == 4 | alignment == 8);
    const badEnd = alignment - 1; //0b11, 0b111, 0b1111
    return location & badEnd ? (location & ~badEnd) + alignment : location;
    }

    denis-sh, 16 Апреля 2011

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

    +161

    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
    function is_url($url) { 
    if(preg_match("/\./", $url) && preg_match("/http:\/\//i", $url) && preg_match("/.txt$/i", $url) && preg_match("/\//", str_replace("http://" , "", $url))) return 1;   
    else return 0; }
    function check_value($value) {
    if (!is_numeric($value) || $value>20 || $value<1) die ('Количество не число или число учеток превышает 20. Ну, или меньше 1.<br><a href="' . $_SERVER['PHP_SELF'] . '?act=mass">Назад</a>'); }
    function regnloc() {
    $get = reg();
    header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?" . $get); }
    
    switch ($_GET['act']) { 
    case 'reg':
    regnloc();
    break; 
    
    case 'mass':
    // http://govnokod.ru/6376
    break;
    
    case 'file':
    if (!$_POST['get']) die ('Отсутствуют данные для записи'.$href);
    $content = "Сгенерировано ".date("d.m.y H:i:s")."\n";
    if ($_POST['link']) $content .= "Логины взяты по ссылке: ".$_POST['link']."\n";
    $content .= $_POST['get'];
    file_put_contents('download.txt', $content);
    header("Location: download.txt");
    break;
    
    default:
    if (($_GET['login']) && ($_GET['pass'])) echo $_GET['login'].' - '.$_GET["pass"].'<br><a href="http://сайт.ru/user/search/?a='.rand(1000, 9999).'&age0=&age1=&sex=0&ll=0&online=0&sort=0&login='.$_GET['login'].'" target="_blank">Полюбоваться</a><br><br>';
    view_form("?act=reg");
    echo '</form><a href="' . $_SERVER['PHP_SELF'] . '?act=mass">Массовая рега</a>'; }

    Вариации на тему http://www.snippy.ru/snippet/213/ (http://govnokod.ru/5597)
    Вдогонку к предыдущему.
    Это - регистратор учетных записей на одной известной мобильной социальность сети.
    Что поразительно - спустя полтора года это до сих пор работает.

    Бонусом еще немного содомии.

    И, да-да, внимательные читатели могли заметить еще в 6376 parse_str(reg()).
    reg() возвращает результаты строкой вида return "login=$login&pass=$pass";

    7ion, 15 Апреля 2011

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

    +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
    case 'mass':
    $href = '<br><a href="' . $_SERVER['PHP_SELF'] . '?act=mass">Назад</a>';
    if ($_GET['step']) {
    if (($_POST['step']) && ($_POST['link'])) die ('Пожалуйста, введите только что-то одно - кол-во или ссылку'.$href);
    if ((!$_POST['step']) && (!$_POST['link']) && ($_GET['step'] == 1)) {
    if ($_POST['code']) regnloc();
    die ('Пожалуйста, введите что-нибудь - кол-во или ссылку'.$href);}
    if ($_POST['step']) $mode = 'steps';
    if ($_POST['link']) $mode = 'link';
    if ($_GET['mode']) $mode = $_GET['mode'];
    if (!$mode) die ('Привет юным хакерам!'.$href);
    check_value($_GET['step']);
    $step = $_GET['step'];
    if ($mode == 'steps') {
    if ($_POST['step']) {
    check_value($_POST['step']);
    $end = $_POST['step']; } 
    else {
    check_value($_GET['end']);
    $end = $_GET['end'];}
    parse_str(reg()); 
    $get = "$login - $pass\n".$_POST['get']; }
    if ($mode == 'link') {
    if (is_url($_POST['link'])) {
    $strings = file($_POST['link']);
    $end = count($strings);
    check_value($end);
    $arrstep = $step - 1;
    if (strlen(trim($strings[$arrstep])) <= 15) { parse_str(reg(trim($strings[$arrstep])));
    $get = "$login - $pass\n".$_POST['get']; }
    else { $error = 1; $get = $_POST['get']; }}
    else { die ('Ссылка неверна или указывает не на .txt файл'.$href);} }
    $step++;
    if ($step <= $end) {
    if ($error) echo '<div style="color:red;">Предыдущая учетка не была зарегана - ник более 15-ти символов</div><br>';
    echo "Учетка $step из $end<br>";
    view_form("?act=mass&mode=$mode&step=$step&end=$end"); }
    else { 
    echo '<b>Завершено!</b><br><a href="' . $_SERVER['PHP_SELF'] . '?act=mass">Повторить</a><br><br><form action="?act=file" method="post">Ваши учетки:<br><input type="submit" value="Скачать файлом">'; }
    echo '<br><textarea name="get" rows="10" cols="33">'.$get.'</textarea><input type="hidden" name="link" value="'.$_POST['link'].'"></form>';} 
    else {
    view_form("?act=mass&step=1");
    echo '<br><br><b>Опции массреги</b><br>Введите кол-во учеток: <input type="text" name="step" size="2" maxlength="2"><br>или ссылку на txt-файл с никами:<br><input type="text" name="link"><br><br><a href="' . $_SERVER['PHP_SELF'] . '">Обычная рега</a></form>'; }
    break;

    7ion. Начало.
    Написано примерно летом 2009 года.
    Помнится, я еще недоумевал - почему мой код называют страшным.

    7ion, 15 Апреля 2011

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

    +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
    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
    <?php
    /* ...какой-то код... */
    
    /* Как бы та самая с**ная "многозадачность" */
    	$proc = popen("/var/www/test PARAMS", "r");
    
    /* ...какой-то код... */
    ?>
    -----------------------------------------------------------------------------
    #!/bin/sh
    # Содержание /var/www/test
    
    STRING="/usr/bin/php -q /var/www/my/test.php"
    
    	if [ -n "$1" ]
    		then
    			VAR1=$1
    		else
    			VAR1='0'
    	fi
    
    `$STRING $VAR1`&
    
    --------------------------------------------------------------
    <?php
    /* ...какой-то код... */
    	/* 
    	файл /var/www/my/test.php 
    	содержит кой-чего на выполнение...
    	*/
    /* ...какой-то код... */
    ?>

    Кажется это достойно этого сайта...

    istem, 15 Апреля 2011

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

    +146

    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
    <?php
    /* ...какой-то код... */
    
    /* Как бы та самая с**ная "многозадачность" */
    	$proc = popen("/var/www/test PARAMS", "r");
    
    /* ...какой-то код... */
    ?>
    -----------------------------------------------------------------------------
    #!/bin/sh
    # Содержание /var/www/test
    
    STRING="/usr/bin/php -q /var/www/my/test.php"
    
    	if [ -n "$1" ]
    		then
    			VAR1=$1
    		else
    			VAR1='0'
    	fi
    
    `$STRING $VAR1`&
    
    --------------------------------------------------------------
    <?php
    /* ...какой-то код... */
    	/* 
    	файл /var/www/my/test.php 
    	содержит кой-чего на выполнение...
    	*/
    /* ...какой-то код... */
    ?>

    Кажется это достойно этого сайта...

    istem, 15 Апреля 2011

    Комментарии (1)
  9. PHP / Говнокод #6373

    +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
    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
    /* 
      где-то в 
      /includes.php
    */
    
    function __autoload($class_name) {
        if ($class_name[0] == 'm'){
            $m = DOCROOT . APPBASE . 'Models/' . substr($class_name,1) . '.php';
            if(defined('DEBUG')) echo 'autoload model class'.$m.'<br/>';
            require_once $m;
        } elseif ($class_name[0] == 'c'){
            $c=DOCROOT . APPBASE . 'Controllers/' . substr($class_name,1) . '.php';
            if(defined('DEBUG')) echo 'autoload controller class'.$c.'<br/>';
            require_once $c;
        }
    }
    
    /* 
      где-то в 
      /Controllers/Data.php
    */
    class cData extends controller {
    /* ... */
    }
    
    
    /* 
      где-то в 
      /Models/Data.php
    */
    class mData extends model {
    /* ... */
    }

    каждый программист обязан написать свой MVC и свой ActiveRecord

    RomaShka, 15 Апреля 2011

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

    +111

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for (int i = 0; i < 10; i++)
                      {
                             Console.Write(";x=" + h * i * dn + ",U=" + res[i * dn, j * dm]);
                      }
                      Console.Write(";x=" + h * 10 * dn + ",U=" + res[10 * dn, j * dm]);

    No comments

    mstyura, 15 Апреля 2011

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