- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
// Как Было
if even then
begin
if (GameAreaForm.Area.ColCount mod 2 = 0) then isstandart:=true
else isstandart:=false;
end
else
begin
if (GameAreaForm.Area.ColCount mod 2 = 0) then isstandart:=false
else isstandart:=true;
end;
// Как стало
if (even) then isstandart:=not(GameAreaForm.Area.ColCount mod 2 = 0);
else isstandart:=(GameAreaForm.Area.ColCount mod 2 = 0);
совершенно верно.
но аффтар, ведь сократить кол-во строчек в пять раз - тоже оптимизация )))
[quote=CodeGear]sstandart := not Odd(GameAreaForm.Area.ColCount) xor even;
[/quote]
да уж про функцию Odd совсем забыл.
если ещё правильнее (исходя из начального)
[quote]isstandart := not Odd(GameAreaForm.Area.ColCount) = even;[/quote]
Тогда уж isstandart := Odd(GameAreaForm.Area.ColCount) xor even;
Я понимаю возможность написания второго варианта (все мы учились чему-нибудь и как-нибудь(с)) но первый вариант как мог появиться?!?
разве в делфи можно делать xor с boolean'ом?
[quote=J]разве в делфи можно делать xor с boolean'ом?[/quote]
А разве его можна делать с чем нибуть исчо???
Во втором варианте, кстати, ошибочка вкралась: - ";" перед else
[quote=Qu]разве его можна делать с чем нибуть исчо???[/quote]
можно
isstandart := boolean(byte(GameAreaForm.Area.ColCount) and byte(even));
Все отписавишиеся тупое быдло:
1) isstandart:= (GameAreaForm.Area.ColCount mod 2 = 0) = even
2) Фрагмент "как стало" неправилен, даёт обратные результаты по сравнению с "как было".
Школота