- 1
- 2
- 3
- 4
- 5
function main() {
(function () {
print("Hello World!");
})();
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
function main() {
(function () {
print("Hello World!");
})();
}
а ваш С компилятор может так говнокодить? а мой компилятор может :)
+1
var proto = $new(null);
proto.foo = function() {
$print(this.msg)
}
var o = $new(null);
o.msg = "hello";
$objsetproto(o,proto);
o.foo(); // print "hello"
$objsetproto(o,null); // remove proto
o.foo(); // exception
Давайте писать ня Neko!
https://nekovm.org
+1
// Заполняет документ заказ данными с сайта.
//
// Параметры:
// ДокументОбъект - ДокументОбъект - объект документа Заказ покупателя.
// РеквизитыЗаказа - Структура - содержит значения реквизитов заказа, загруженных с сайта:
// * Ид - Идентификатор заказа, очень часто тоже что и номер.
// * Дата - дата создания заказа на сайте.
// * Номер - номер заказа на сайте.
// * ДатаОтгрузки - дата отгрузки товара по заказу.
// * ВалютаДокументаКод - трехзначный идентификатор валюты.
// * ВидЦенНаименование - наименование вида цены.
// * СуммаВключаетНДС - признак включения НДС.
// * НаименованиеСкидки - наименование скидки.
// * ПроцентСкидки - процент скидки.
// * СуммаСкидки - сумма скидки по заказу.
// * СкладНаименование - наименование склада, точки самовывоза.
// * ПодразделениеНаименование - наименование подразделения.
// * Контрагент - ссылка на контрагента, который уже был идентифицирован в базе.
// * АдресДоставки - строка адреса доставки.
// * ТочкаСамовывоза - ссылка на элемент справочника, который в прикладном решении является справочником точек самовывоза или Неопределено.
// * Товары - табличная часть документа.
// * Комментарий - текстовый комментарий.
// СвойстваЗаказа - Соответствие - содержит строковое представления свойств (ключ) и значений (значение) заказа.
// ПрикладныеПараметры - Структура - содержит параметры прикладного решения, добавленные на форму узла плана обмена.
// ОписаниеОшибки - Строка - текстовое представление ошибки.
// Успешно - Булево - признак заполнения документа.
//
Процедура ЗаполнитьЗаказ(ДокументОбъект, РеквизитыЗаказа, СвойстваЗаказа,
ПрикладныеПараметры, ОписаниеОшибки, Успешно) Экспорт
//++ НЕ ГОСИС
Валюта = Неопределено;
ОбменССайтамиУТ.ОбработатьВалютуXML(Валюта, РеквизитыЗаказа.ВалютаДокументаКод);
ДокументОбъект.Дата = РеквизитыЗаказа.Дата;
ДокументОбъект.Валюта = Валюта;
ДокументОбъект.Соглашение = ПрикладныеПараметры.Соглашение;
ДокументОбъект.Организация = ПрикладныеПараметры.Организация;
ДокументОбъект.Менеджер = ПрикладныеПараметры.Менеджер;
ДокументОбъект.Контрагент = РеквизитыЗаказа.Контрагент;
ДокументОбъект.Партнер = РеквизитыЗаказа.Партнер;
ДокументОбъект.ЦенаВключаетНДС = РеквизитыЗаказа.СуммаВключаетНДС;
ДокументОбъект.Склад = ?(ЗначениеЗаполнено(РеквизитыЗаказа.ТочкаСамовывоза),
РеквизитыЗаказа.ТочкаСамовывоза,
ПрикладныеПараметры.Склад);
УсловияПродаж = ПродажиСервер.ПолучитьУсловияПродаж(ПрикладныеПараметры.Соглашение);
Если НЕ ЗначениеЗаполнено(УсловияПродаж.ИспользуютсяДоговорыКонтрагентов)
ИЛИ НЕ УсловияПродаж.ИспользуютсяДоговорыКонтрагентов Тогда
ДокументОбъект.ПорядокОплаты = УсловияПродаж.ПорядокОплаты;
Иначе
ДокументОбъект.ПорядокОплаты = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОбъект.Договор, "ПорядокОплаты");
КонецЕсли;
ДокументОбъект.ВернутьМногооборотнуюТару = УсловияПродаж.ВозвращатьМногооборотнуюТару;
ЗаполнитьЗначенияСвойств(ДокументОбъект,
УсловияПродаж,
"ХозяйственнаяОперация, ГруппаФинансовогоУчета,
|ТребуетсяЗалогЗаТару, ФормаОплаты, ГрафикОплаты");
Если ЗначениеЗаполнено(ДокументОбъект.ГрафикОплаты) Тогда
ДокументОбъект.ФормаОплаты = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОбъект.ГрафикОплаты, "ФормаОплаты");
КонецЕсли;
ДокументОбъект.ВернутьМногооборотнуюТару = УсловияПродаж.ВозвращатьМногооборотнуюТару;
ДокументОбъект.Приоритет = Справочники.Приоритеты.ПолучитьПриоритетПоУмолчанию(ДокументОбъект.Приоритет);
Если УсловияПродаж.ИспользуютсяДоговорыКонтрагентов Тогда
ДокументОбъект.Договор = ПродажиСервер.ПолучитьДоговорПоУмолчанию(ДокументОбъект,
УсловияПродаж.ХозяйственнаяОперация,
Валюта);
Если ЗначениеЗаполнено(ДокументОбъект.Договор) Тогда
ДокументОбъект.НалогообложениеНДС = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОбъект.Договор,
"НалогообложениеНДС");
КонецЕсли;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ДокументОбъект.НалогообложениеНДС) Тогда
ДокументОбъект.НалогообложениеНДС = Справочники.Организации.НалогообложениеНДС(
ДокументОбъект.Организация,
ДокументОбъект.Склад,
ДокументОбъект.Дата);
КонецЕсли;
Комментарий = "";
Если Не ПустаяСтрока(РеквизитыЗаказа.Комментарий) Тогда
Комментарий = Комментарий + НСтр("ru = 'Комментарий менеджера на сайте'") + ": " +РеквизитыЗаказа.Комментарий;
КонецЕсли;
КомментарийПокупателя = СвойстваЗаказа.Получить("Комментарии покупателя");
Если Не КомментарийПокупателя = Неопределено И Не ПустаяСтрока(КомментарийПокупателя) Тогда
Комментарий = Комментарий + ?(ПустаяСтрока(Комментарий),"",Символы.ПС) + НСтр("ru = 'Комментарий покупателя на сайте'") + ": " + КомментарийПокупателя;
КонецЕсли;
ДокументОбъект.Комментарий = Комментарий;
СтатусЗаказа = СвойстваЗаказа.Получить("Статус заказа");
+1
IT Оффтоп #85
#55: https://govnokod.ru/26844 https://govnokod.xyz/_26844
#56: https://govnokod.ru/26862 https://govnokod.xyz/_26862
#57: https://govnokod.ru/26890 https://govnokod.xyz/_26890
#58: https://govnokod.ru/26916 https://govnokod.xyz/_26916
#59: https://govnokod.ru/26934 https://govnokod.xyz/_26934
#60: https://govnokod.ru/26949 https://govnokod.xyz/_26949
#61: https://govnokod.ru/26980 https://govnokod.xyz/_26980
#62: https://govnokod.ru/26999 https://govnokod.xyz/_26999
#63: https://govnokod.ru/27004 https://govnokod.xyz/_27004
#64: https://govnokod.ru/27020 https://govnokod.xyz/_27020
#65: https://govnokod.ru/27027 https://govnokod.xyz/_27027
#66: https://govnokod.ru/27040 https://govnokod.xyz/_27040
#67: https://govnokod.ru/27049 https://govnokod.xyz/_27049
#68: https://govnokod.ru/27061 https://govnokod.xyz/_27061
#69: https://govnokod.ru/27071 https://govnokod.xyz/_27071
#70: https://govnokod.ru/27097 https://govnokod.xyz/_27097
#71: https://govnokod.ru/27115 https://govnokod.xyz/_27115
#72: https://govnokod.ru/27120 https://govnokod.xyz/_27120
#73: https://govnokod.ru/27136 https://govnokod.xyz/_27136
#74: https://govnokod.ru/27160 https://govnokod.xyz/_27160
#75: https://govnokod.ru/27166 https://govnokod.xyz/_27166
#76: https://govnokod.ru/27168 https://govnokod.xyz/_27168
#77: https://govnokod.ru/27186 https://govnokod.xyz/_27186
#78: https://govnokod.ru/27219 https://govnokod.xyz/_27219
#79: https://govnokod.ru/27254 https://govnokod.xyz/_27254
#80: https://govnokod.ru/27270 https://govnokod.xyz/_27270
#81: https://govnokod.ru/27280 https://govnokod.xyz/_27280
#82: https://govnokod.ru/27284 https://govnokod.xyz/_27284
#83: https://govnokod.ru/27296 https://govnokod.xyz/_27296
#84: https://govnokod.ru/27336 https://govnokod.xyz/_27336
+1
Просто оффтоп #18
#1: https://govnokod.ru/20162 https://govnokod.xyz/_20162
#2: https://govnokod.ru/25329 https://govnokod.xyz/_25329
#3: https://govnokod.ru/25415 https://govnokod.xyz/_25415
#4: (vanished) https://govnokod.xyz/_25472
#5: https://govnokod.ru/25693 https://govnokod.xyz/_25693
#6: (vanished) https://govnokod.xyz/_26649
#7: https://govnokod.ru/26672 https://govnokod.xyz/_26672
#8: https://govnokod.ru/26924 https://govnokod.xyz/_26924
#9: https://govnokod.ru/27072 https://govnokod.xyz/_27072
#10: https://govnokod.ru/27086 https://govnokod.xyz/_27086
#11: https://govnokod.ru/27122 https://govnokod.xyz/_27122
#12: https://govnokod.ru/27153 https://govnokod.xyz/_27153
#13: https://govnokod.ru/27159 https://govnokod.xyz/_27159
#14: https://govnokod.ru/27200 https://govnokod.xyz/_27200
#15: https://govnokod.ru/27237 https://govnokod.xyz/_27237
#16: https://govnokod.ru/27282 https://govnokod.xyz/_27282
#17: https://govnokod.ru/27319 https://govnokod.xyz/_27319
+1
(set-logic UF)
; https://smtlib.cs.uiowa.edu/logics.shtml
; UF for the extension allowing free sort and function symbols
(set-option :produce-proofs true)
(declare-sort M_wff)
; AND2
(declare-fun M_a2 (M_wff M_wff) M_wff)
; AND3
(declare-fun M_a3 (M_wff M_wff M_wff) M_wff)
; (AND2 a b) <=> (AND2 b a)
(assert
(forall ( (a M_wff) (b M_wff) )
(=
(M_a2 a b)
(M_a2 b a)
)
)
)
; (AND2 a a) <=> a
(assert
(forall ( (a M_wff) )
(=
(M_a2 a a)
a
)
)
)
; (AND2 a (AND2 b c)) <=> (AND3 a b c)
(assert
(forall ( (a M_wff) (b M_wff) (c M_wff) )
(=
(M_a2 a (M_a2 b c))
(M_a3 a b c)
)
)
)
; (AND3 a b c) <=> (AND3 b a c)
(assert
(forall ( (a M_wff) (b M_wff) (c M_wff) )
(=
(M_a3 a b c)
(M_a3 b a c)
)
)
)
; IMPL - implication
(declare-fun M_impl (M_wff M_wff) M_wff)
; http://us.metamath.org/ileuni/ax-1.html
; Axiom Simp
; (IMPL a (IMPL b a)) <=> (AND2 a b)
(assert
(forall ( (a M_wff) (b M_wff) )
(=
(M_impl a (M_impl b a))
(M_a2 a b)
)
)
)
...
Весь код не влазит.
https://rise4fun.com/Z3/GnfIH
https://paste.debian.net/hidden/38ef8493/ (запасная ссылка)
Переписывал Metamath на язык из SMT солверов https://smtlib.cs.uiowa.edu/language.shtml
Z3 даже умеет доказывать какую-то питушню там.
+1
%% This function is needed as a hack to guide dialyzer into inferring
%% the correct types.
-spec id(A) -> A.
id(A) ->
A.
%% Где-то в header'е....
-define(deftarget(RECIPE), {RECIPE, fun my_module:id/1}).
%% A horrible, horrible hack to make Dialyzer infer right type of the promise return value
-define(want(TARGET),
(fun() ->
case TARGET of
{_, ___IAmSorryYouHaveToSeeThisWorkaroundForDialyzer} ->
___IAmSorryYouHaveToSeeThisWorkaroundForDialyzer(my_module:want(TARGET))
end
end)()).
Пути статический типизации в Erlang неисповедимы.
+1
// Update is called once per frame
void Update () {
if (!isWin && !isFail && !isPaused)
{
if (timeForUnhit > 0) //Для состояния восстановления игрока
{
timeForUnhit -= Time.deltaTime;
//LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = hitPlayer;
}
else if (timeForInvc > 0)
//Для состояния непобедимости игрока
{
timeForInvc -= Time.deltaTime;
//LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = invcPlayer;
}
else
{
//LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = player;
LevelGenerate.Instance.player.GetComponent<Animator>().CrossFade(animNames[0], 0);
if (invc)
{
MusicManager.Instance.gameObject.GetComponent<AudioSource>().clip = MusicManager.Instance.music[1];
MusicManager.Instance.gameObject.GetComponent<AudioSource>().Play();
}
invc = false;
}
}
i = LevelGenerate.Instance.playerY;
j = LevelGenerate.Instance.playerX;
if (!isWin && !isFail) //Если уровень не завершен
{
collideEnemy(); //Обнаружение столкновения с врагом
collectItem(); //Обнаружения столкновения с собираемым предметом
genNthOrdColls(2); //Генерация предметов n-ого порядка после сбора предметов (n-1)-ого
genNthOrdColls(3);
genNthOrdColls(4);
if (colls[0] == 0 && colls[1] == 0 && colls[2] == 0 && colls[3] == 0 && LevelGenerate.Instance.resLoaded) isWin = true; //Если все предметы собраны, то уровень завершен с прохождением
}
if (isWin && animationSet == 0) //Меняем спрайт игрока при завершении уровня
{
//LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = winPlayer;
LevelGenerate.Instance.player.GetComponent<Animator>().CrossFade(animNames[1], 0);
animationSet++;
delayTime = 1.5f;
MusicManager.Instance.gameObject.GetComponent<AudioSource>().mute = true;
SoundManager.Instance.gameObject.GetComponent<AudioSource>().clip = SoundManager.Instance.sounds[0];
SoundManager.Instance.gameObject.GetComponent<AudioSource>().Play();
}
if (isWin && delayTime <= 0)
{
//path = Application.dataPath + "\\Levels\\SaveData1";
/*if (Application.platform == RuntimePlatform.WindowsEditor)
{
path = Application.dataPath;
path = Path.Combine(path, "Levels");
}
else if (Application.platform == RuntimePlatform.Android)
path = Application.persistentDataPath;
path = Path.Combine(path, "SaveData1");
fs = new FileStream(path, FileMode.Open);
bw = new BinaryWriter(fs);*/
levelNum = (byte)(Convert.ToByte(LevelGenerate.Instance.levelFile.Substring(5)) - 1);
levelNum++;
if (PlayerPrefs.GetInt("maxLevel") == levelNum)
{
PlayerPrefs.SetInt("maxLevel", (int)levelNum);
PlayerPrefs.Save();
}
PlayerPrefs.SetInt("level", (int)levelNum);
/*bw.Write(levelNum);
bw.Write("Level" + (levelNum+1).ToString());
bw.Close();
fs.Close();*/
SceneManager.LoadScene("Win");
} else if (delayTime > 0)
{
delayTime -= Time.deltaTime;
}
if (isFail && delayTime <= 0)
{
//path = Application.dataPath + "\\Levels\\SaveData1";
/*if (Application.platform == RuntimePlatform.WindowsEditor)
{
path = Application.dataPath;
path = Path.Combine(path, "Levels");
```
}
else if (Application.platform == RuntimePlatform.Android)
path = Application.persistentDataPath;
path = Path.Combine(path, "SaveData1");
fs = new FileStream(path, FileMode.Open);
bw = new BinaryWriter(fs);
fs.Seek(1, SeekOrigin.Begin);
bw.Write(LevelGenerate.Instance.levelFil e);
bw.Close();
fs.Close();*/
PlayerPrefs.SetString("levelFile", LevelGenerate.Instance.levelFile);
PlayerPrefs.Save();
SceneManager.LoadScene("Fail");
} else if (delayTime > 0)
{
delayTime -= Time.deltaTime;
}
}
```
Самый страшный метод из EventManager-а (модуль который отвечал за все события в игре - коллизию с врагом, таймаут непобедимости и пр.).
+1
//Генерация уровня из файла
void mapGenerate()
{
float x = 0.72f, y = -0.72f; //Координаты игрового объекта
byte i = 0, j = 0; //Цифровые координаты игрвоого объекта
while (y >= -5.76f)
{
while (x <= 5.76f)
{
if (map[i, j] % 8 == 1) //Если игровой объект - точка спавна игрока
{
player.transform.position = new Vector3(x, y, 0);
playerX = j;
playerY = i;
}
else if (map[i, j] % 8 == 5) //Если игровой объект - точка спавна врага
{
enemy.transform.position = new Vector3(x, y, 0);
enemyX = j;
enemyY = i;
//print("Enemy: " + enemyX + " " + enemyY);
} else if(map[i, j] % 8 == 6) //Если игровой объект - собираемый предмет
{
EventManager.Instance.colls[0]++; //Увеличивается количество собираемых монет на уровне
mapObj[i, j] = Instantiate(entities[map[i, j] % 8], new Vector3(x, y, 0), Quaternion.identity);
}
else if (map[i,j] % 8 != 0) { //Для остальных игровых объектов
mapObj[i,j] = Instantiate(entities[map[i, j] % 8], new Vector3(x, y, 0), Quaternion.identity);
}
x += 0.72f;
j++;
}
y -= 0.72f;
x = 0.72f;
j = 0;
i++;
}
}
//Считывание данных об уровне
void readLevelFile()
{
string path = "";
FileStream fs = null;
BinaryReader br = null;
if (Application.platform == RuntimePlatform.WindowsEditor)
{
path = Application.dataPath;
path = Path.Combine(path, "Levels");
path = Path.Combine(path, levelFile);
fs = new FileStream(path, FileMode.Open);
br = new BinaryReader(fs);
head = br.ReadBytes(8); //Чтение заголовка файла
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
map[i, j] = br.ReadByte(); //Чтение кода игрового объекта
}
}
br.Close();
fs.Close();
} else if (Application.platform == RuntimePlatform.Android)
{
byte[] file = null;
path = "jar:file://"+ Application.dataPath + "!/assets/Levels/"+levelFile;
www = new WWW(path);
while (!www.isDone) { }
if (!string.IsNullOrEmpty(www.error))
{
Debug.LogError("Can't read");
}
file = www.bytes;
for (int i = 0; i < 8; i++)
{
head[i] = file[i];
}
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
map[i, j] = file[j + i * 8 + 8]; //Чтение кода игрового объекта
}
}
www.Dispose();
}
Из кода собственной аркады на Unity 2017-ого года. Неоправданные байто*бские оптимизации, взаимодействие между модулями через десяток глобалов, магические константы не зафиксированные в именах кода, куча хардкода. И ето из модуля для генерации уровня. В модуле для управления событиями код страшнее.
+1
there are java.io.FileNotFoundException and java.nio.file.NoSuchFileException . Both are subclasses of IOException, neither of them is a subclass of the opposite.