- 1
- 2
- 3
Сайт оптимизирован под
браузер GooGle Chrome
Разрешение: 1280х1024
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+125
Сайт оптимизирован под
браузер GooGle Chrome
Разрешение: 1280х1024
http://anidream.net/
+158
<?php
function bracket_checker($input_string)
{
$checked = true;
$bracket1_open = "(";
$bracket1_close = ")";
$bracket2_open = "[";
$bracket2_close = "]";
$bracket3_open = "{";
$bracket3_close = "}";
If (strlen($input_string)> 30)
die("Wrong length of the input string!");
$bracket1_count= substr_count($input_string,$bracket1_open);
$bracket2_count= substr_count($input_string,$bracket1_close);
If ($bracket1_count != $bracket2_count)
$checked = false;
$bracket1_count= substr_count($input_string,$bracket2_open);
$bracket2_count= substr_count($input_string,$bracket3_close);
If ($bracket1_count != $bracket2_count)
$checked = false;
$bracket1_count= substr_count($input_string,$bracket3_open);
$bracket2_count= substr_count($input_string,$bracket3_close);
If ($bracket1_count != $bracket2_count)
$checked = false;
If ($checked)
print("Check passed!");
else
print("Check failed!");
}
echo "ab ( cd ()[]) ef{5} - "; bracket_checker("ab ( cd ()[]) ef{5}"); echo "\n";
echo "ab ( cd { ef ) gh } ij - "; bracket_checker("ab ( cd { ef ) gh } ij"); echo "\n";
?>
Прямо с собеседования пишу
+136
eax = esp;
if (gB(eax + 0x19) == 0) {
uint edx = gD(eax + 8);
if (gB(edx + 0x19) == 0) {
eax = gD(edx);
if (gB(eax + 0x19) == 0) {
do {
edx = eax;
eax = gD(edx);
}
while (gB(eax + 0x19) == 0);
}
esp = edx;
//ret
}
else {
eax = gD(eax + 4);
if (gB(eax + 0x19) == 0) {
do {
edx = esp;
if (edx != gD(eax + 8)) break;
esp = eax;
eax = gD(eax + 4);
}
while (gB(eax + 0x19) == 0);
}
esp = eax;
}
}
eax = esp;
X: я занялся написанием научной фантастики)
Y: АИ? ИИ?
X: /*код!!!111*/
Y: декомпилятор пишешь?
X: декомпилятор это не фантастика
это реальность
Y: А что пишешь?
X: а это я сам не знаю что это)
вообщем, в игре на земле валяются предметы
нужно найти как они расположены в памяти
Y: Это результат декомпиляции или что это?
X: обычно это либо eax, [eax + idi * 4]
или что то в этом духе
просто постраничное считывание
типа eax, [eax]
eax, [eax]
eax, [eax]
а тут ни то ни другое)
сама игра ищет предметы по какой то безумной логике
Y: Это ты написал программы и обозвал так свои переменные?
X: да)
вообщем
мне стало лень разбираться
что и как делает игрушка
и я просто скопировал код
из дизасма
в С№
и перебил под синтаксис)
на удивление четко работает)
+964
using System;
using System.Reflection;
using System.Reflection.Emit;
namespace DynUnloop
{ // Суммирование в цикле
class SumLooping
{ public int Summ(int valMax)
{ int result = 0;
for (int i = 0; i <= valMax; i++)
result += i;
return result;
}
}
// Плоское суммирование
class SumFlat
{ interface ISumCode
{ int ComputeSumm(int valMax);
}
void WriteCode(int valMax)
{ AssemblyName assemblyName = new AssemblyName();
assemblyName.Name = "SumFlatAssembly";
AssemblyBuilder assemblyBuilder =
AppDomain.CurrentDomain.DefineDynamicAssembly(
assemblyName, AssemblyBuilderAccess.Run);
ModuleBuilder moduleBuilder =
assemblyBuilder.DefineDynamicModule("SumFlatModule");
TypeBuilder typeBuilder =
moduleBuilder.DefineType("SumFlatClass"
, TypeAttributes.Public);
typeBuilder.AddInterfaceImplementation(typeof(ISumCode));
/// Задаём возвращаемое зачение и параметр
Type[] paramTypes = { typeof(int) };
Type returnType = typeof(int);
MethodBuilder methodBuilder =
typeBuilder.DefineMethod("ComputeSumm"
, MethodAttributes.Public
| MethodAttributes.Virtual
, returnType, paramTypes);
ILGenerator il = methodBuilder.GetILGenerator();
// Генерируем плоский код.
il.Emit(OpCodes.Ldc_I4, 0);
for (int i = 1; i <= valMax; i++)
{ il.Emit(OpCodes.Ldc_I4, i);
il.Emit(OpCodes.Add);
}
il.Emit(OpCodes.Ret);
// Перекрываем метод ComputeSumm и создаём тип SumFlatClass.
MethodInfo methodInfo =
typeof(ISumCode).GetMethod("ComputeSumm");
typeBuilder.DefineMethodOverride(methodBuilder, methodInfo);
typeBuilder.CreateType();
/// Код готов, создаём объект и берем его интерфейс.
code = (ISumCode)assemblyBuilder.CreateInstance("SumFlatClass");
}
public int Summ(int val)
{ if (this.code == null)
WriteCode(val);
return this.code.ComputeSumm(val);
}
ISumCode code;
}
Оригинальный стиль кода и комментарии сохранёны. (с), или как там.
В коде - разворачивание цикла в "плоский" IL код, который, как доказывается должен выигрывать по производительности.
+85
String methodName = (new Exception()).getStackTrace()[1].getMethodName();
Вот как надо получать имя метода. Это вам не __func__ ...
−118
xxx: Знакомый попал в дтп, спорная ситуация, отдал гайцам флешку из регистратора, опечатали в конверт.
xxx: Гайцы внимательно изучили - признали невиновность по ДТП, и за одно наштрафовали на много тысяч по 4 случаям записанным на флешке и в конце концов лишили прав за встречку, записанную в начале дня.
+107
procedure proc(a, b: integer);
begin
end;
proc(1, 2,); // лишняя запятая после 2 !!!!11
на Delphi7 компилится и работает!!! Я в шокенах, 8 лет на Делфи и не знал...
+154
$src = fopen("0.txt", 'r');
while(!feof($src))
{
$line[] = fgets($src);
$line++;
}
Интересно чему в конце будет равно $line? :)
+145
/*----------------------------------------------------------------------------*/
double XzMinSec( double XBOCT, unsigned int OKP){ /*Gr(Ch).dG(dC)->Gr(Ch)MS.dS*/
signed int min, xz = XBOCT; XBOCT-=xz; min=60*XBOCT; XBOCT=(XBOCT*60-min)*60;
if (XBOCT>=59.5) { unsigned char teg[32]; double n = pow(10,OKP) * (XBOCT-min);
signed int z=n;n-=z; if(n>=0.5||n<=-0.5){ signed int x,y=0; sprintf(teg,"%d",z);
while(teg[y]!='\0') y++; z=1; for( x=0; x<OKP; x++ ) if ( teg[--y]!='9' ) z=0;
if(z==1) if(abs(min)==59) if(min<0) XBOCT=-4100; else XBOCT=4100; else if(min<0)
XBOCT=-100; else XBOCT=100; }} return xz * 10000 + min * 100 + XBOCT; }
/*----------------------------------------------------------------------------*/
гм... работает...
+144
switch ($mode) {
default:
<не интересный код пропущен>
break;
}
Догайтесь с какого это проекта?
Я бы не запостил, если бы не увидел на хабре сообщение от некоторого striker_vlad:
"буду рад, если найдете там что-то, что можно будет напостить на сам сайт ;)"