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

    +58

    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
    if(is_ai_on && !white_move)
    			{
    				int tries;
    			start:
    					srand (time(NULL));
    				select_figure:
    					int figure = rand() % (game_field.figures.size() - 1) + 0;
    					if(game_field.figures[figure]->IsWhiteFigure()) goto select_figure;
    					int pos_x;
    					int pos_y;
    					tries = 0;
    				try_move:
    				try
    				{
    					switch(game_field.figures[figure]->GetType())
    					{
    						case PawnType:
    						{
    							pos_x = rand() % (game_field.figures[figure]->GetPositionX() + 2) + (game_field.figures[figure]->GetPositionX() - 2);
    							if(pos_x < 0) pos_x = 0;
    							if(pos_x >= game_field.size) pos_x = game_field.size - 1;
    							pos_y = game_field.figures[figure]->GetPositionY() + 1;
    							if(pos_x == game_field.figures[figure]->GetPositionX() &&
    							   pos_y == game_field.figures[figure]->GetPositionY())
    							   {
    									if(tries < 6)
    									{
    										tries++;
    										goto try_move;
    									}
    									else
    									{
    										goto select_figure;
    									}
    							   }
    						}break;
    						default:
    						{
    							pos_x = rand() % (game_field.figures[figure]->GetPositionX() + 5) + (game_field.figures[figure]->GetPositionX() - 5);
    							pos_y = rand() % (game_field.figures[figure]->GetPositionY() + 5) + (game_field.figures[figure]->GetPositionY() - 5);
    							if(pos_x < 0) pos_x = 0;
    							if(pos_x >= game_field.size) pos_x = game_field.size - 1;
    							if(pos_y < 0) pos_y = 0;
    							if(pos_y >= game_field.size) pos_y= game_field.size - 1;
    							if(pos_x == game_field.figures[figure]->GetPositionX() &&
    							   pos_y == game_field.figures[figure]->GetPositionY())
    							   {
    									if(tries < 6)
    									{
    										tries++;
    										goto try_move;
    									}
    									else
    									{
    										goto select_figure;
    									}
    							   }
    						}break;
    					}
    					game_field.DoMove(figure, pos_x, pos_y, this->white_move);
    				}
    				catch(...)
    				{
    					if(tries < 6)
    					{
    						tries++;
    						goto try_move;
    					}
    					else
    					{
    						goto select_figure;
    					}
    				}
    				this->white_move = true;
    			}

    Скайнет - версия 0.0000000000000000000000000000000001

    GreatMASTERcpp, 12 Декабря 2014

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

    +56

    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
    if(i%2==0)
    		{
    			for(j=int (l);j<n+int (l);j++)
    			{
    				A[i][j]=B1[k];
    				k++;
    			}	
    		}
    		else if(i%2!=0)
    		{
    			for(j=int (l);j<n+int (l);j++)
    			{
    				A[i][j]=B2[k];
    				k++;
    			}
    		}

    Когда-то один однокурсник спросил у препода:
    - А как добавить код в ИНАЧЕ от ИНАЧЕ.
    Что-то подобное увидел и в этом коде.

    FalseCoder, 11 Декабря 2014

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

    +57

    1. 1
    http://pastebin.ru/IvyLrrEr

    так и живём, реализация "зоопарка" на С++ после прочтения "банды четырёх"

    bitchboy, 10 Декабря 2014

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

    +68

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    // Возвращает квадрат натурального числа
    // 4^2 = 1 + 3 + 5 + 7
    int sqr(int n) {
    	int result = 0;
    	for(int i = 1, a = 1; i <= n; i++, a = a + 2) result += a;
    	return result;
    }

    Нестандартные решения - залог успешности проекта.

    Gouvere, 08 Декабря 2014

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

    +49

    1. 1
    //без комментариев

    pewppy, 07 Декабря 2014

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

    +49

    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
    #include <stdio.h>
    #include <math.h>
    #include "determinant.h"
    
    double det(double **matrix, int size)
    {
        if(size==2)
        {
            return matrix[0][0]*matrix[1][1]-matrix[0][1]*matrix[1][0];
        }
        else if(size==1)
            {
                return matrix[0][0];
            }
        int result = 0;
        for(int j=0; j<size; j++)
        {
            if(matrix[0][j]!=0)
            {
                result+=matrix[0][j]*(unsigned)pow(-1.f,(unsigned)j)*det(minor(matrix, size, 0, j), size-1);
            }
        }
        return result;
    }
    
    double **minor(double **matrix, int size, int str, int col)
    {
        double **minor=new double *[size-1];
        int m_str = 0;
        int m_col;
        for(int i=0; i<size; i++)
        {
            if(i!=str)
            {
                m_col = 0;
                minor[m_str]=new double[size-1];
                for(int j=0; j<size; j++)
                {
                    if(j!=col)
                    {
                        minor[m_str][m_col]=matrix[i][j];
                        m_col++;
                    }
                }
                m_col++;
            }
        }
        return minor;
    }

    Считаю определитель рекурсией, во время теста в этом сорце вылетает ошибка EXC_BAD_ACCESS(code=1, access=0x8),
    после одного прохода рекурсии, с чем это связано? Помогите разобраться :)

    aesc_smirnov, 07 Декабря 2014

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

    +53

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    class ParseError : public std::exception{
        string s;
        explicit ParseError(const std::string& s) : s(s) {}
        const char* what() const throw() { return s.c_str(); }
      };

    Это мне нужно в своём исключении-потомке обязательно перегрузить what и добавить свою строку для хранения, чтобы данные, переданные в конструктор s по указателю обязательно выжили после размотки стека.

    LispGovno, 06 Декабря 2014

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

    +53

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    //
    // 'compare_keywords()' - Compare two keywords...
    //
    
    extern "C" {
      int
      compare_keywords(const void *a,
                       const void *b) {
        return (strcmp(*((const char **)a), *((const char **)b)));
      }
    }

    govnokod3r, 04 Декабря 2014

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

    +53

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    void MainWindow::on_actionHelp_triggered()
    {
        bool helpNoWritten = 0;
        QDir d(QCoreApplication::applicationDirPath()+QDir::separator()+"help");
        d.makeAbsolute();
        if (d.exists() && d.entryList(QDir::Files).size())
            helpNoWritten = !QDesktopServices::openUrl(QUrl::fromUserInput(QFileInfo(d.entryList(QDir::Files).at(0)).absoluteFilePath()));
        else
            helpNoWritten++;
        if (helpNoWritten)
            QMessageBox::warning(0,"Warning",QString::fromUtf8("Похоже документацию так никто и не написал... можете почитать исходники.\nЕсли напишете положите в папку help рядом с программой"), QString::fromUtf8("Okay..."));
    }

    Код вроде бы хороший, читается не очень да не суть... дело тут не в коде.

    kin63camapa, 03 Декабря 2014

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

    +58

    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
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    struct t_point {
        int i,j;
    };
    #define stack_len 50000000
    long int head, tail;
    t_point *steck;
    
    // long int take_border( short int*arr, int h1, int w1, int deep ){
    long int take_border( short int*arr, int h1, int w1 ){
        long int k=0;
        //int i,j,m,n,ii,jj;
        int i,j,m,ii,n,jj;
        steck = (t_point*) malloc(tail*sizeof(t_point));
        if(! steck ){
            //ui->teDebug->setText("out of Memory");
            return 0;
        }
        {
           QFile file("buffer.dat");
           file.open(QIODevice::ReadOnly);
           unsigned int size = sizeof(t_point)* tail;
           QDataStream in(&file);   // we will serialize the data into the file
           in.readRawData((char*) steck, size );
        }
    // <...>
    }

    Это чувство когда сишник взялся писать на Qt.

    overloop, 02 Декабря 2014

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