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

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    // пример использования Exaro в своей программе
    // http://www.wiki.crossplatform.ru/index.php/Qt/FAQ/Exaro
    int personId = QString(argv[1]).toInt();
    QString query(QString("SELECT person.id, person.name, city.title " \
    		" FROM person, city " \
    		" WHERE person.city = city.id and person.id = %1").arg(personId));

    OlegUP, 17 Августа 2015

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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    // Не очень красивое решение. Но зато можно не выставлять в паблик всякие кишочки
    	private void SetValueToPrivateField<Type>(Type instance, string field, object value) {
    		if (instance != null) {
    			FieldInfo fieldInfo = typeof(Type).GetField(
    				field,
    				BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic
    			);
    				if (fieldInfo != null) {
    				fieldInfo.SetValue(instance, value);
    			}
    		}
    	}

    Публичный сеттер нарушит инкапсуляцию, поэтому будем использовать рефлексию

    "Мне нельзя ничего есть, поэтому я вставлю себе трубку прямо в живот и буду при необходимости заливать прямо туда. Но есть не буду"

    Caritas, 11 Марта 2015

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if (bonusA is RuneBonusLine && bonusB is RuneBonusLine) {
        Mix(bonusA as RuneBonusLine, bonusB as RuneBonusLine);
       } else if (bonusA is RuneBonusBomb && bonusB is RuneBonusBomb) {
        Mix(bonusA as RuneBonusBomb, bonusB as RuneBonusBomb);
       } else if (bonusA is RuneBonusBomb && bonusB is RuneBonusLine) {
        Mix(bonusA as RuneBonusBomb, bonusB as RuneBonusLine);
       } else if (bonusB is RuneBonusBomb && bonusA is RuneBonusLine) {
        Mix(bonusB as RuneBonusBomb, bonusA as RuneBonusLine);
       }

    Is/As Oriented Programming

    Caritas, 11 Марта 2015

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

    +1

    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
    public enum AdjacentCell {
       /// <summary>
       /// Сверху.
       /// </summary>
       Above = ABOVE,
       /// <summary>
       /// Снизу.
       /// </summary>
       Below = BELOW,
       /// <summary>
       /// Слева.
       /// </summary>
       Left = LEFT,
       /// <summary>
       /// Справа.
       /// </summary>
       Right = RIGHT
      }
    
      private const int ABOVE = 0;
      private const int BELOW = 1;
      private const int LEFT = 2;
      private const int RIGHT = 3;

    Мы добавили немного констант в твой енам, чтобы ты мог использовать константы, пока используешь енам

    Caritas, 10 Марта 2015

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    int i=1;
    Console.WriteLine((i+null)==null); //True			
    Console.WriteLine(1+null);             //1
    Console.WriteLine(null+1);             //1
    Console.WriteLine((1+null).GetType()); //System.Int32

    http://ideone.com/LomfRC

    3.14159265, 07 Ноября 2014

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    for (conn_vector::iterator i = m_connections.begin(); i != m_connections.end(); ++i) {
        if (*i == conn) {
            m_connections.erase(i);
            toDelete = *i;
            break;
        }
    }

    Да, С++98. Да, в std::find не умеем. Да, сегфолт. Да, моё.

    Elvenfighter, 27 Августа 2014

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

    +1

    1. 1
    chunksLst.erase(++it1);

    laMer007, 16 Июня 2014

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

    +1

    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
    struct Vector2f{float x, y;};
    struct Vector3f{float x, y, z;};
    struct Tensor3f{float xx, xy, xz, yy, yz, zz;};
    struct Matrix3x3f{float data[9];};
    struct Space2
    {
      typedef Vector2f Vector;
    };
    struct Space3
    {
      typedef Vector3f Vector;
    };
    
    
    template<typename Space>
    struct ParticleSystem
    {
      template<typename T>
      struct ParticleData{};
    
      template<> 
      struct ParticleData<Space2>
      {
        float orientation;
        float invInertia;
      };
    
      template<> 
      struct ParticleData<Space3>
      {
        typename Matrix3x3f orientation;
        typename Tensor3f inertiaTensor;
      };
    
      struct Particle : public ParticleData<Space>
      {
        typename Space::Vector pos, velocity;
      };
    
      template<typename T>
      void DumpParticle(){}
    
      template<>
      void DumpParticle<Space2>()
      {
        printf("%f %f", particles[0].orientation, particles[0].invInertia);
      }
    
      template<>
      void DumpParticle<Space3>()
      {
        printf("%f %f", particles[0].orientation.data[0], particles[0].inertia.xx);
      }
      
      void DumpParticles()
      {
        DumpParticle<Space>();
      }
      std::vector<Particle> particles;
    };

    Хочу объединить трехмерный и двухмерный движок.

    LispGovno, 26 Января 2014

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

    +1

    1. 1
    std::AIDS

    an0nym, 04 Октября 2013

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

    +1

    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
    void gte::loadProps(const char* fileName){
        
    	propMap.clear();
    	s3eFile* g_FileHandle = s3eFileOpen(fileName, "rb");
    	while (!s3eFileEOF(g_FileHandle)) {
    		char c1=0;
    		char c2=0;
    		s3eFileRead(&c1, 1, 1, g_FileHandle);
    		s3eFileRead(&c2, 1, 1, g_FileHandle);
    		int len = 0;
    		len = (c2 & 0xFF) | ( (c1  & 0xff) << 8);
    		if (len==0) continue;
    		char* textData = new char[len+1];
    		textData[len] = 0;
    		s3eFileRead(textData, sizeof(char), len, g_FileHandle);
    		char* pos = strchr(textData, ':');
    		string key(textData, pos - textData);
    		string value(pos + 2, textData + len - pos - 2);//(textData,
    		propMap[key] = value;
    	}
    
    	s3eFileClose(g_FileHandle);
    }

    Чтение строки, первые 2 байта - длинна.
    Проект использует Marmalade SDK.

    krypt, 27 Сентября 2013

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