1. PHP / Говнокод #6690

    +169

    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
    const
       ACTON_MAP_DROP = 0,
       ACTON_BOT_DROP = 1,
       ACTON_CHANGE = 2,
       ACTON_USE = 3,
       ACTON_AUTO_USE = 4,
       ACTON_EXPIRE = 5,
       ACTON_MINE_DESTROY = 6,
       ACTON_GET = 0,
       ACTION_OFFLINE = 1,
       ACTION_DIE = 2,
       ACTION_USE = 3,
       ACTON_EXPIRE = 4;

    Радует, что в 3-х константах слово написано правильно. :)

    Запостил: PaintedBlack, 17 Мая 2011

    Комментарии (40) RSS

    • браузерная игра?
      Ответить
    • Думаю, тот, кто дописывал 11 и 12 строчки, тоже нормально поржал с предыдущего "разработчика".
      Ответить
      • рефакторинг в пхп дело больное из-за слабого контроля типов (да и вообще, те, кто осилил исключительно пхп, вряд ли знают про такое слово) поэтому, видимо, оставили старые константы, что бы ничего не поломалось, а ввели более осмысленные и использующиеся.
        Ответить
      • ну как, поржал?
        Ответить
    • int[][] multiply(A:int[][], B:int[][], n:int) {
      	let R:int[][] = new int[m][p], S:int;
      	for (let i:int = 0; i < n; i++) {
      		for (let j:int = 0; i < n; j++) {
      			S = 0;
      			for (let k:int = 0; k < n; k++)
      				S += A[i][k] * B[k][j];
      			R[i][j] = S;
      		}
      	}
      	return R;
      }
      Ответить
      • Идиот.

        int[][] multiply(A:int[][], B:int[][], m:int, n:int, p:int) {
        	let R:int[][] = new int[m][p], S:int;
        	for (let i:int = 0; i < m; i++) {
        		for (let j:int = 0; i < p; j++) {
        			S = 0;
        			for (let k:int = 0; k < n; k++)
        				S += A[i][k] * B[k][j];
        			R[i][j] = S;
        		}
        	}
        	return R;
        }


        Так хотя бы с прямоугольными работает.
        Ответить
      • щито это за езык?
        Ответить
        • Тоже интересно. Не Rust, не Go, не D, не Kotlin, даже не давно забытый Clay, не ActionScript.

          Какие ещё варианты?
          Ответить
          • Clay это который так и остался многообщеающим языком 2011-го года?
            Ответить
    • Разве так можно объявлять константы в php ?
      Ответить
      • по моему внутри класса можно.
        Ответить
        • а по-моему -- нельзя
          Ответить
          • Да, судя по реальным примерам, слово const придётся писать перед каждой константой:

            https://www.php.net/manual/ru/language.oop5.constants.php

            Это не Паскаль, где написал const и перечисляй сколько угодно констант.
            Ответить
            • Кстати, почему в менее пидорских языках типа C++ и C# можно написать public / private один раз, а в более пидорских типа Java/Kotlin надо писать каждый раз?

              А пасклаь вообще охуенено тем, что надо было четко разделять объявление переменных, и их использование, интерфейс модуля, и реализацию. Заставляет структурироватькод
              Ответить
              • С одной стороны, напрягает, что в Паскале нельзя, как в Алголе или в няшной, объявлять переменные в каждом блоке, можно только в начале функции. Но с другой стороны, заставляет задуматься о сложности кода. Если тебе нужно много вложенных блоков с ограниченной видимостью, разбей функцию на подфункции по блокам. Заодно после рефакторинга может появиться возможность переиспользовать код.
                Ответить
                • В C89 тоже нельзя. Мне кажется (хотя я не уверен) что там комплияторы должны были сразу знать размер стека, отсюда и все локалки надо было сразу определять.

                  В пандан к твоему замечанию, так сказать: В С++ ты должен сразу определить все поля объекта в конструкторе, и только поом можешь там чото еще сделать i.e
                  MyClass():petuh(42)

                  в Java/Kotlin это не так: ты можешь Войну и Мир в конструкторе написать, главное до его конца определить все финальные поля (если ты потрогаешь неииницализированое поле, то там будет 0 или нуль итд.)

                  Так вот это позволяет писать километры хуйни в конструкторе, и это плохо, а еще порождает известную пробелму "leak of this"
                  Ответить
                • Так в Паскакале нет блоков, там скопы и составные стейтменты. Соответственно в скопах можно объявлять, а в стейтментах нельзя, всё логично.
                  Ответить
    • guest-ы неадекваты!
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий