- 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)
Хаскель это вам не математика, тут надо и вычислительную сложность учитывать.