1. Список говнокодов пользователя A1mighty

    Всего: 9

  2. C# / Говнокод #19430

    0

    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
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    class Program
        {
            static void Main(string[] args)
            {
                Cell[] cells = new Cell[15];
                cells[1] = new Cell(); //и ещё 14 подобных строк
                cells[1].AddAdjacentCell(cells[2], 1);
                cells[1].AddAdjacentCell(cells[5], 2); //и так для всех 15 ячеек
                Spore spore01 = new Spore(true, false, true, true, false, true);
                Spore spore02 = new Spore(true, true, true, true, true, true);
                for(Int16 i = 1; i <= 14; i++)
                    for (Int16 k = 1; k <= 14; k++)
                    {
                        if (i != k)
                        {
                            Console.Write("Trying " + i + " " + k + "... ");
                            cells[i].AddSpore(spore01);
                            cells[k].AddSpore(spore02);
                            bool badAttempt = false;
                            for(Int16 c = 1; c <= 14; c++)
                            {
                                if (cells[c].state == CellState.Empty)
                                {
                                    badAttempt = true;
                                    break;
                                }
                            }
                            Console.WriteLine(badAttempt.ToString());
                        }
                    }
    Console.ReadLine();
            }
        }
        class Cell
        {
            public CellState state;
            private Cell[] adjacentCells = new Cell[6];
            private Spore currentSpore = null;
            public Cell()
            {
                this.state = CellState.Empty;
                for (Int16 i = 0; i <= 5; i++)
                {
                    this.adjacentCells[i] = null;
                }
            }
            public void AddAdjacentCell(Cell cell, Int16 direction)
            {
                if (direction >= 6)
                    return;
    
                this.adjacentCells[direction] = cell;
            }
            public void Ray(Int16 direction)
            {
                if (this.adjacentCells[direction] == null)
                    return;
                if (this.adjacentCells[direction].state == CellState.Spore)
                    return;
                this.state = CellState.Light;
                this.adjacentCells[direction].Ray(direction);
            }
            public void AddSpore(Spore spore)
            {
                this.state = CellState.Spore;
                this.currentSpore = spore;
                for (Int16 i = 0; i <= 5; i++)
                {
                    if (this.currentSpore.directions[i] == true)
                        this.Ray(i);
                }
            }
            public void Reset()
            {
                this.state = CellState.Empty;
                this.currentSpore = null;
                for (Int16 i = 0; i <= 5; i++)
                {
                    this.adjacentCells[i] = null;
                }
            }
        }
        enum CellState
        {
            Empty,
            Light,
            Spore
        }
        class Spore
        {
            public bool[] directions = new bool[6];
            public Spore(params bool[] rays)
            {
                for (Int16 i = 0; i <= 5; i++)
                    this.directions[i] = rays[i];
            }
        }
    }

    (обсуждение программы для поиска решений для одной головоломки под Андроид)
    - Да щас напишем, хуль там делать то?
    (через 5 минут)
    - Ой, переполнение стека...
    - ...

    A1mighty, 11 Февраля 2016

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

    +110

    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
    private void Save(string ThreadID, string Board)
            {
                string pathL;
                if (cbGIF.Checked)
                {
                    pathL = String.Format(path, Board, ThreadID, "-gif");
                }
                else
                {
                    pathL = String.Format(path, Board, ThreadID, "");
                }
                string htmlPath = String.Format(threadPath, Board, ThreadID);
    
                WebClient wcli = new GZipWebClient();
                string cThread = wcli.DownloadString(htmlPath);
                
                var rx = new Regex(cbGIF.Checked ? regExGif : regEx);
                var ms = rx.Matches(cThread);
                imgSaved = 0;
                imgCount = ms.Count;
                saveProgress.Minimum = 0;
                saveProgress.Maximum = imgCount;
                saveProgress.Value = 0;
                if (!Directory.Exists(pathL))
                {
                    Directory.CreateDirectory(pathL);
                }
                try
                {
                    foreach (Match m in ms)
                    {
                        WebClient ccl = new WebClient();
                        ccl.DownloadFileCompleted += new AsyncCompletedEventHandler(ccl_DownloadFileCompleted);
                        string[] v = m.Value.Split('"');
                        string sd = v[1].Split('/').Last();
                        string a = url + v[1];
                        string b = pathL + sd;
                        if (File.Exists(b))
                        {
                            imgSaved++;
                            saveProgress.Value = imgSaved;
                            lblSaveProgress.Text = imgSaved.ToString() + "/" + imgCount.ToString();
                            if (imgSaved == imgCount)
                            {
                                btnSave.Enabled = true;
                                lblSaveProgress.Text = "FUKKEN SAVED!";
                            }
                        }
                        else ccl.DownloadFileAsync(new Uri(a),b);
                    }
                }
                catch (WebException e)
                {
                    MessageBox.Show(e.Message + e.StackTrace);
                }          
            }

    В пределах одного метода бросаемся из крайности в крайность в именовании переменных.

    A1mighty, 26 Июля 2013

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

    +142

    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
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    class SMSSender
        {
            const string API_URL = "http://api.sms****.ru/?";
            string base_URL = "";
            private string _email;
            private string _password;
            XmlDocument doc = new XmlDocument();
            Dictionary<string,string> parameters;
    
            public SMSSender(string email, string password)
            {
                _email = email;
                _password = password;
                base_URL = API_URL + "email=" + _email + "&password=" + _password + "&";
            }
    
            public bool LoginAttempt()
            {
                parameters = new Dictionary<string, string>();
                parameters.Add("method", "login");
                return APIRequest(parameters);
            }
    
            public KeyValuePair<int,object> GetCreditsLeft()
            {
                parameters = new Dictionary<string, string>();
                parameters.Add("method", "get_profie");
                APIRequest(parameters);
                return new KeyValuePair<int, object>(0, int.Parse(GetValueByName("credits")));
            }
    
            public int SendSMS(string senderName, string internationalNumber, string text)
            {
                parameters = new Dictionary<string, string>();
                parameters.Add("method", "push_msg");
                parameters.Add("text", text);
                parameters.Add("phone", internationalNumber);
                parameters.Add("sender_name", senderName);
                APIRequest(parameters);
                return int.Parse(GetValueByName("n_raw_sms"));
            }
    
            public KeyValuePair<int, object> GetLastError()
            {
                return new KeyValuePair<int, object>(int.Parse(doc.GetElementsByTagName("err_code")[0].InnerText), doc.GetElementsByTagName("text")[0].InnerText);
            }
    
            private string GetValueByName(string keyToReturn)
            {
                return doc.GetElementsByTagName(keyToReturn)[0].InnerText;
            }
    
            private bool APIRequest(Dictionary<string, string> param)
            {
                string URL = base_URL;
                foreach (KeyValuePair<string, string> p in param)
                    URL = URL + p.Key + "=" + p.Value + "&";
                doc.Load(URL);
                if (GetLastError().Key == 0) return true;
                else throw new SMSSenderException(GetLastError().Key, GetLastError().Value.ToString());
            }
        }
    
        class SMSSenderException : Exception
        {
            int _errorCode;
            string _Message;
            public SMSSenderException(int errorCode, string Message)
            {
                _errorCode = errorCode;
                _Message = Message;
            }
    
            public int ErrorCode
            {
                get { return _errorCode; }
            }
    
            override public string Message
            {
                get { return _Message; }
            }
        }
    }

    API сервер отправки принимает запросы вида http://api.****sms.ru?method=send_msg&phone=+79 123456789&text=abcdef, возвращает простейший XML с err_code и результатом выполнения запроса.
    Казалось бы, 20 строчек кода и проблема решена? Нифига, без специального класса для этого не обойтись. Совсем никак. И уж совсем ничего нельзя делать без специального Exception для этого дела.

    A1mighty, 16 Января 2012

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

    +1020

    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
    #include <stdio.h>
    #define _0000 0
    #define _0001 int
    #define _0010 a
    #define _0011 16
    #define _0100 b
    #define _0101 c
    #define _0110 printf
    #define _0111 "%d"
    #define _1000 d
    #define _1001 (
    #define _1010 )
    #define _1011 =
    
    int main()
    {
    	_0001 _1000 _1011 _0011;
    	_0001 _0010 _1011 _1000;
    	_0001 _0100 _1011 _1001--_1000 _1010+++_1001++_1000 _1010;
    	_0001 _0101 _1011 _0010>_0100?_0010:_0100>_0010?_0100:_0000;
    	_0110 _1001 _0111, _0101 _1010;
    	getchar();
    }

    Показал первому курсу define, на дом задал простейшую задачу. На следующий день увидел это.

    A1mighty, 01 Декабря 2011

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

    +79

    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
    public boolean ComparePassword(String userName, String ComparablePassword) throws SQLException
        {
            try{
            if(c == null) Connect();
            /*PreparedStatement stmt = c.prepareStatement("SELECT * FROM users WHERE name = ?");*/
            PreparedStatement stmt = c.prepareStatement("SELECT 1 FROM users WHERE name = ? AND password = ?");
    	stmt.setString(1, userName);
            stmt.setString(2, ComparablePassword);
            ResultSet rs = stmt.executeQuery();
            /*String a = rs.getString(3);
            if(ComparablePassword.compareTo(a) == 0) //бл**ь, ну почему в этой *** джаве это не работает? придется как обычно делать через *опу:(
                return true;
            else
            {
                return false;
            }
            */
            if(!rs.next())
                return false;
            else return true;
            }
            catch(SQLException e)
            {
                return false;
            }
        }

    Найдено в недрах исходников одного сайта на Java :)

    A1mighty, 02 Июня 2011

    Комментарии (40)
  7. ActionScript / Говнокод #5423

    −115

    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
    stop();
    subt.textColor = 0xFF0000;
    subt.text = "Good afternoon!";
    sunmain.addEventListener(MouseEvent.CLICK, play_next_afternoon);
    sunmain.addEventListener(MouseEvent.MOUSE_OUT, stop_afternoon);
    sunmain.addEventListener(MouseEvent.MOUSE_OVER, over_afternoon);
    
    function play_next_afternoon(evt:Event)
    {
    	sunmain.removeEventListener(MouseEvent.CLICK, play_next_afternoon);
    	sunmain.removeEventListener(MouseEvent.MOUSE_OUT, stop_afternoon);
    	sunmain.removeEventListener(MouseEvent.MOUSE_OVER, over_afternoon);
    	sunmain.stop();
    	subt.textColor = 0xCCCCCC;
    	subt.text = "";
    	
    	gotoAndPlay(21);
    }
    
    function stop_afternoon(evt:Event)
    {
    	sunmain.stop();
    }
    
    function over_afternoon(evt:Event)
    {
    	aft.play();
    	sunmain.play();
    }

    Мое, годовой давности. А можно ли было написать это как-то менее говнокодисто?

    A1mighty, 28 Января 2011

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

    +120

    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
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    static void processCmd(string command) {
    	string[] c_args = command.Split(" ".ToCharArray());
    	switch (c_args[0]) {
    		case "beep":
    			nbr.PlayTone(4096, 500);
    			break;
    		case "exit":
    			exit_op();
    			break;
    		case "info":
    			log_ca("Info:");
    			log_ca(Application.ProductName + " " + Application.ProductVersion);
    			log_ca("listener is " + ((services_running[0]) ? "running" : "down"));
    			log_ca("updater is " + ((services_running[1]) ? "running" : "down"));
    			break;
    		case "start":
    			try {
    				switch (c_args[1]) {
    					case "updater":
    						break;
    					case "listener":
    						if (services_running[0])
    							log_ca("listener is already running");
    						else
    							start_listener();
    						break;
    					default:
    						throw new ArgumentException();
    						break;
    				}
    			}
    			catch {
    				log_ca("Usage: start <service>. Available services: listener, updater.");
    			}
    			break;
    		case "help":
    			foreach (string hs in System.IO.File.ReadAllLines("help.txt")) {
    				log_ca(hs);
    			}
    			break;
    		default:
    			log_ca("\"help\" will display all available commands");
    			break;
    		case "stop":
    			try {
    				nbr.MotorA.Brake();
    				nbr.MotorB.Brake();
    				nbr.MotorC.Brake();
    			}
    			catch { }
    			break;
    		case "run":
    			try {
    				switch(c_args[1]) {
    					case "a":
    						if(arr_motor[0]=="none")
    							log_e("Motor not found or config error");
    						else {
    							if (c_args[4] == "false")
    								nbr.MotorA = new NxtMotor(false);
    							else
    								nbr.MotorA = new NxtMotor(true);
    							nbr.MotorA.Run(Convert.ToSByte(c_args[2]), Convert.ToUInt32(c_args[3]));
    						}
    						break;
    					case "b":
    						if(arr_motor[1]=="none")
    							log_e("Motor not found or config error");
    						else {
    							if (c_args[4] == "false")
    								nbr.MotorB = new NxtMotor(false);
    							else
    								nbr.MotorB = new NxtMotor(true);
    							nbr.MotorB.Run(Convert.ToSByte(c_args[2]), Convert.ToUInt32(c_args[3]));
    						}
    						break;
    					case "c":
    						if(arr_motor[2]=="none")
    							log_e("Motor not found or config error");
    						else {
    							if (c_args[4] == "false")
    								nbr.MotorC = new NxtMotor(false);
    							else
    								nbr.MotorC = new NxtMotor(true);
    							nbr.MotorC.Run(Convert.ToSByte(c_args[2]), Convert.ToUInt32(c_args[3]));
    						}
    						break;
    					default:
    						throw new Exception();
    						break;
    				}
    			}
    			catch (Exception ex) {
    				log_ca("Usage: run <motor> <speed> <tacho> <reverse>. Example: run a 100 0 false.");
    			}
    		break;
    	}
    }

    Мой код, написано 3 года назад.

    A1mighty, 27 Января 2011

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

    +113

    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
    static void mysql_update_values(string sensorname, string sensorvalue)
            {
                MySql.Data.MySqlClient.MySqlConnection conn;
                MySqlCommand cmd = new MySqlCommand();
                MySqlDataReader mysqlr;
                string myConnectionString;
    
                myConnectionString = "server=" + mysql_server + ";uid=" + mysql_login + ";pwd=" + mysql_password + ";database=" + mysql_db + ";";
                
                try
                {
                    conn = new MySql.Data.MySqlClient.MySqlConnection();
                    conn.ConnectionString = myConnectionString;
                    conn.Open();
                    if (conn.State == System.Data.ConnectionState.Open)
                    {
                        cmd.CommandText = "SELECT * FROM sensordata WHERE sensorname = '" + sensorname + "'";
                        log("DEBUG: mysqlcommand: " + cmd.CommandText);
                        cmd.Connection = conn;
                        cmd.Prepare();
                        mysqlr = cmd.ExecuteReader();
                        if (mysqlr.HasRows)
                        {
                            mysqlr.Close();
                            cmd.CommandText = "DELETE FROM sensordata WHERE sensorname = '" + sensorname + "'";
                            log("DEBUG: mysqlcommand: " + cmd.CommandText);
                            cmd.Connection = conn;
                            cmd.Prepare();
                            cmd.ExecuteNonQuery();
    
                            System.DateTime.Now.ToString() + "' WHERE sensorname = '" + sensorname + "'";
                            cmd.CommandText = "INSERT INTO sensordata VALUES('" + sensorname + "','" + sensorvalue + "','" + System.DateTime.Now.ToString() + "')";
                            log("DEBUG: mysqlcommand: " + cmd.CommandText);
                            cmd.Connection = conn;
                            cmd.Prepare();
                            cmd.ExecuteNonQuery();
                        }
                        else
                        {
    
                            
                            mysqlr.Close();
                            cmd.CommandText = "INSERT INTO sensordata VALUES('" + sensorname + "','" + sensorvalue + "','" + System.DateTime.Now.ToString() + "')";
                            log("DEBUG: mysqlcommand: " + cmd.CommandText);
                            cmd.Connection = conn;
                            cmd.Prepare();
                            cmd.ExecuteNonQuery();
                        }
                    }
                    log("mysql_update_values(" + sensorname + "," + sensorvalue + ")");
    
                }
                catch (MySql.Data.MySqlClient.MySqlException ex)
                {
                    log_e(ex.Message + ex.StackTrace);
                }
    
            }

    MySQL ждет!

    A1mighty, 10 Октября 2010

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

    +120

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    string makesig(string mid, string apiid, string method, string secret, string[] param)
            {
                string[] fullparams = new string[] { "api_id=" + apiid, "method=" + method, "v=3.0", "format=JSON" };
                string methodparams = String.Join("©", param);
                string fullparams_j = String.Join("©", fullparams);
                string fpr = String.Join("©", new string[] { fullparams_j, methodparams });
                string[] fpr_s = fpr.Split(new char[] { Convert.ToChar("©") });
                Array.Sort(fpr_s);
                fpr = String.Join("", fpr_s);
                string last = String.Concat(mid, fpr, secret);
                return getMd5Hash(last);
            }

    Так люди делают подпись для запроса к API ВКонтакте

    A1mighty, 19 Августа 2010

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