- 1
- 2
- 3
- 4
- 5
- 6
/*
 * rs_task.h
 *
 *  Created on: 21 ���� 2015 �.
 *      Author: Asus
 */Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 10
−16
/*
 * rs_task.h
 *
 *  Created on: 21 ���� 2015 �.
 *      Author: Asus
 */внезапно понял что у меня такая хрень в начале каждого файла в сишных проектах. И ни в одной строчке нет смысла, имя файла я и так знаю когда его открываю, дата (у половины файлов) стала неразборчивой то ли после очередного обновления ide, то ли еще когда-то, а автор вряд ли "Asus".
+3
^[\s\u200c]+|[\s\u200c]+$
            Стековерфло не могут в регулярные выражения или регулярные выражения не могут в простейшую задачу?
http://stackstatus.net/post/147710624694/outage-postmortem-july-20-2016
        
−49
case MarkType of
    mtNormal:
      Normal.FindItem(M, OutV);
    mtUpLimit:
      OutV.Reset(M, rtUpLimit);
    mtDownLimit:
      OutV.Reset(M, rtDownLimit);
    mtStartDefault:
      if Owner.IsMount then
        OutV.Reset(M, rtDefault);
      else if not Owner.Scene.FindPreviousMark(M, OutV) then
        OutV.Reset(M, rtDefault);
  end;ахаха, синтаксисопроблемы.
−47
if not self.squad:
			magus = Magus(0, 0)
			ranger = Ranger(12, 18)
			knight = Knight(32, 11)
			sage = Sage(21, 26)
			self.squad = [magus, ranger, knight, sage]
AttributeError: 'GameWindow' object has no attribute 'squad'
...
    if self.selection.actions < self.active_skill.actions:
AttributeError: 'WardSigil' object has no attribute 'actions'
...
            Посоны, суть такова. На один буржуйский конкурс пришла игра, а я в жюри. Игра вроде бы классная (новый xcom+ascii графон+инквизиция), но есть проблема - автор почему-то считает что питон должен на несуществующие поля возвращать nil\false\0, а у меня python 2.7 просто падает с приведенной ошибкой. Ну а питон 3 ругается на print, т.е. игра явно на питоне 2.х.
В общем может есть какая-нибудь опция, старая версия питона которая так себя вела или какой-нибудь хак, чтоб заставить питон вести себя как у автора? Иначе придется 1 балл ставить, автор на связь не выходит а игр еще сотни.
Да, он еще написал что тестировал только на MacOS - там какая версия по дефолту стоит?
        
+51
int table[4];
bool exists_in_table(int v)
{
    for (int i = 0; i <= 4; i++) {
        if (table[i] == v) return true;
    }
    return false;
}
            C хабра. Возвращает true для любых чисел. http://ideone.com/bL2vGQ
Я конечно знаю что такое UB, но этот пример повеселил.
        
+101
function GetBit(numBit,Val: integer):boolean;
var
  i: integer;
begin
  i := round(power(2,numBit-1));
  result := (i and Val) >0;
end;Суровые и беспощадные битовые операции в дельфи. Причем коллега, у которого я это нашел неплохие программы пишет, во всяком случае по части удобства интерфейса мне до него далеко. Но иногда такие перлы встречаются.
+137
void lcd_goto(unsigned char line, unsigned char pos)
{
	...
	lcd_str_remains = LCD_STR_LEN - pos;
}
void lcd_putch(char c)
{
	lcd_str_remains--;
	...
}
void lcd_fill_str(void)
{
	char i;
	for(i=0; i<lcd_str_remains; i++)
		lcd_putch(' ');
}Паскаль головного мозга. Эх, сколько я этот баг искал.
+100
procedure TDetailForm.GridPanel1Click(Sender: TObject);
var
  i: Integer;
  s: String;
begin
  //set title and subtitle
  if Pos('Item', TControl(Sender).Name) > 0 then begin
    if Sender.ClassName = 'TImage' then begin
      i := Length(TControl(Sender).Name) - Length('ItemImage') - 1;
      s := Copy(TControl(Sender).Name, Length(TControl(Sender).Name) - i, Length(TControl(Sender).Name));
      ItemTitle.Caption := TLabel(DetailForm.FindComponent('ItemTitle' + s)).Caption;
      ItemSubtitle.Caption := TLabel(DetailForm.FindComponent('ItemSubTitle' + s)).Caption;
    end else if Pos('ItemSubTitle', TControl(Sender).Name) > 0 then begin
      ItemSubtitle.Caption := TLabel(Sender).Caption;
      i := Length(TControl(Sender).Name) - Length('ItemSubTitle') - 1;
      s := Copy(TControl(Sender).Name, Length(TControl(Sender).Name) - i, Length(TControl(Sender).Name));
      ItemTitle.Caption := TLabel(DetailForm.FindComponent('ItemTitle' + s)).Caption;
    end else if Pos('ItemDescription', TControl(Sender).Name) > 0 then begin
      i := Length(TControl(Sender).Name) - Length('ItemDescription') - 1;
      s := Copy(TControl(Sender).Name, Length(TControl(Sender).Name) - i, Length(TControl(Sender).Name));
      ItemTitle.Caption := TLabel(DetailForm.FindComponent('ItemTitle' + s)).Caption;
      ItemSubtitle.Caption := TLabel(DetailForm.FindComponent('ItemSubTitle' + s)).Caption;
    end else begin
      ItemTitle.Caption := TLabel(Sender).Caption;
      i := Length(TControl(Sender).Name) - Length('ItemTitle') - 1;
      s := Copy(TControl(Sender).Name, Length(TControl(Sender).Name) - i, Length(TControl(Sender).Name));
      ItemSubTitle.Caption := TLabel(DetailForm.FindComponent('ItemSubTitle' + s)).Caption;
    end;
  end;
end;Код из шаблона New Metropolis UI Application в новом Delphi XE3. Рефлексия так и прет.
+92
function lz_UploadMount:boolean;
var del_l,i,j,k,ng,l,typ:integer;
    pt:array[1..3]of integer;
begin
UpDiag:=0;
result:=true;
if I_AM_EMUL {or not I_AM_MAIN }then exit;
if Pult[1].Count+Pult[2].Count=0 then exit;
lg_UploadMount;
                     //  exit;
UpDiag:=1;
result:=false;
__UPLOADING:=true;
try
if not JustC(21,[])then exit;
sleep(1000);
//if (Pult[1].Count>0)and(Pult[2].Count>0)then ng:=3 else ng:=1;
//if not JustC(25,[ng])then exit;;
if not JustC(22,[])then exit;;
{группы}
if (Pult[1].Count>0)and(Pult[2].Count>0)then ng:=2 else ng:=1;
for i:=1 to 2 do
 begin
 if Pult[i].Count=0 then continue;
 k:=0;
 for j:=1 to 3 do pt[j]:=MainShow.Params[j];
 for j:=0 to Pult[i].Count-1 do
  with TMotor(Pult[i][j])do
   begin
   k:=k+(1 shl (ConvertTP(TP)-1));
   for L:=1 to 3 do if pt[L]>GParam(L)then pt[L]:=GParam(L);
   end;
 //маска
 AddI(k);
 //скорость
 AddSpeed(round(pt[1]*KOREDV));
 //ускорение разгона
 //ускорение торможения
 AddI((pt[2]shl 16)+pt[3]);
 //номер джойстика
 //функциональная клавиша
      {Кнопка}  {Джойстик}{повторы}  {тип группы}
 typ:=2;
 AddI((i shl 6)+(i shl 3)+(1 shl 10)+typ);
 end;
if not lz_Command(26,4,ng,[ng])then exit;;
CheckMountEffect;
{моторы}
lzData.Clear;
for i:=1 to 2 do
 for j:=0 to Pult[i].Count-1 do
  with TMotor(Pult[i][j])do
   begin
   if md_targ<0 then AddI((17 shl 16)+ConvertTP(TP))else AddI((18 shl 16)+ConvertTP(TP));
   if md_targ<GetMotorInfo(TP,1)then del_l:=-1 else del_l:=1;
   if md_targ<0 then
    begin
     AddI(-trunc(GParam(5)/KORED*65536));
     AddI(-trunc(GParam(4)/KORED*65536));
    end
   else
    begin
    AddI(-trunc((md_targ+del_l/2)/KORED*65536));
    AddSpeed(round(md_way*KOREDV));
    end
   end;
if not lz_Command(28,3,Pult[1].Count+Pult[2].Count,[Pult[1].Count+Pult[2].Count])then exit;
UpDiag:=2;
if not JustC(23,[])then exit;
(*EnterCriticalSection(csJoystick);
j_Changed:=true;
{J_Status[1]:=false;
J_Status[2]:=false;}
LastSign[1]:=-1;
LastSign[2]:=-1;
LeaveCriticalSection(csJoystick);*)
{if(Pult[1].Count>0)then if not JustC(36,[1,1])then exit;
if(Pult[2].Count>0)then if not JustC(36,[2,1])then exit;}
UpDiag:=0;
result:=true;
Uploaded:=true;
for i:=1 to 12 do
 FirstGr[i]:=0;
finally
__UPLOADING:=false;
if Uploaded then WaitZero;
end;
end;
            Случайно открыл свою первую рабочую программу. Забавно, как со временем меняется стиль программирования :)
В той что используется сейчас изменился протокол, так что прямого аналога нет, но примерно ту же функцию выполняет такой кусок:
----------------
procedure TMotion.GetTargetForPLC(M: TMotor; Mo: TNormalMotionData);
var
  Conf: TMotorConfig;
  ME: TElementMark;
  I: Integer;
  Ht, SP: Real;
begin
  if not Uploaded then
    exit;
  Conf := PLCConf.Motor(M.MotorNumber);
  ME := Mark.ElementByMotor(M.MotorNumber);
  SP := Panel.GetValue(Speed);
  // Проверка разрешений движения
  if (Panel.GetStatus <> psGo) or (not Condition.CheckMotion) or FailedSafe or
    (SP = 0) or (not ME.CheckMotion) then
    Mo.CommandID := mcStop
  else
    Mo.CommandID := mcGo;
  Mo.Accel := LimitVal(1, Conf.MotorTyp.ProgramToDrive(ktAccel,
    Limits.GetParam(TAccelParam).Minimum));
  Mo.Deccel := LimitVal(1, Conf.MotorTyp.ProgramToDrive(ktAccel,
    Limits.GetParam(TDeccelParam).Minimum));
  if SP >= 0 then
    Ht := Effect.OutputTarget(M)
  else
    Ht := ME.GetTargetForPLC(false);
  // M.StartPos.Value := 0.5;
  if M.PositionType.InheritsFrom(TAngleWithTu  rnsParam) then
    Ht := M.HackCircleTarget(Ht);
  Mo.Target := Conf.MotorTyp.ProgramToDrive(ktTarget, Ht);
  Mo.Speed := Conf.MotorTyp.ProgramToDrive(ktSpeed, abs(SP)); { }{ }{ }
  Mo.Time := 0;
  if SP >= 0 then
    Effect.ProcessCommand(M, Mo);
  Mo.Mask := M.Children + [M.MotorNumber];
  for I in Mo.Mask do
    GetMotor(I).RawCommand := Mo;
end;
----------------
        
+133
fib 1 = 1
fib 2 = 1
fib n = fib(n-1) + fib (n-2)Хаскель это вам не математика, тут надо и вычислительную сложность учитывать.