- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
procedure Tform1.mix;
begin
randomize;
a[1]:=random(16)+1;
btn[1].Caption:=inttostr(a[1]);
begin
repeat
a[2]:=random(16)+1
until
a[2]<>a[1];
btn[2].Caption:=inttostr(a[2]);
begin
repeat
a[3]:=random(16)+1
until
(a[3]<>a[2]) and (a[3]<>a[1]);
btn[3].Caption:=inttostr(a[3]);
begin
repeat
a[4]:=random(16)+1
until
(a[4]<>a[2]) and (a[4]<>a[1]) and (a[4]<>a[3]);
btn[4].Caption:=inttostr(a[4]);
begin
repeat
a[5]:=random(16)+1
until
(a[5]<>a[2]) and (a[5]<>a[1]) and (a[5]<>a[3]) and (a[5]<>a[4]);
btn[5].Caption:=inttostr(a[5]);
begin
repeat
a[6]:=random(16)+1
until
(a[6]<>a[1]) and (a[6]<>a[2]) and (a[6]<>a[3]) and (a[6]<>a[4])
and (a[6]<>a[5]);
btn[6].Caption:=inttostr(a[6]);
begin
repeat
a[7]:=random(16)+1
until
(a[7]<>a[1]) and (a[7]<>a[2]) and (a[7]<>a[3]) and
(a[7]<>a[4]) and (a[7]<>a[5]) and (a[7]<>a[6]);
btn[7].Caption:=inttostr(a[7]);
begin
repeat
a[8]:=random(16)+1
until
(a[8]<>a[1]) and (a[8]<>a[2]) and (a[8]<>a[3]) and
(a[8]<>a[4]) and (a[8]<>a[5]) and (a[8]<>a[6]) and (a[8]<>a[7]);
btn[8].Caption:=inttostr(a[8]);
begin
repeat
a[9]:=random(16)+1
until
(a[9]<>a[1]) and (a[9]<>a[2]) and (a[9]<>a[3]) and (a[9]<>a[4]) and
(a[9]<>a[5]) and (a[9]<>a[6]) and (a[9]<>a[7]) and (a[9]<>a[8]);
btn[9].Caption:=inttostr(a[9]);
...
...
...
begin
repeat
a[14]:=random(16)+1
until
(a[14]<>a[1]) and (a[14]<>a[2]) and (a[14]<>a[3])
and (a[14]<>a[4]) and (a[14]<>a[6]) and
(a[14]<>a[7]) and (a[14]<>a[5]) and (a[14]<>a[9])
and (a[14]<>a[8]) and (a[14]<>a[10]) and
(a[14]<>a[11]) and (a[14]<>a[12]) and (a[14]<>a[13]);
btn[14].Caption:=inttostr(a[14]);
begin
repeat
a[15]:=random(16)+1
until
(a[15]<>a[1]) and (a[15]<>a[2]) and (a[15]<>a[3]) and
(a[15]<>a[4]) and (a[15]<>a[6]) and (a[15]<>a[7]) and
(a[15]<>a[5]) and (a[15]<>a[9]) and (a[15]<>a[8]) and
(a[15]<>a[10]) and (a[15]<>a[11]) and (a[15]<>a[12])
and (a[15]<>a[13]) and (a[15]<>a[14]);
btn[15].Caption:=inttostr(a[15]);
begin
repeat
a[16]:=random(16)+1
until
(a[16]<>a[1]) and (a[16]<>a[2]) and (a[16]<>a[3]) and
(a[16]<>a[4]) and (a[16]<>a[6]) and (a[16]<>a[7]) and
(a[16]<>a[5]) and (a[16]<>a[9]) and (a[16]<>a[8]) and
(a[16]<>a[10]) and (a[16]<>a[11]) and (a[16]<>a[12])
and (a[16]<>a[13]) and (a[16]<>a[14]) and (a[16]<>a[15]);
btn[16].Caption:=inttostr(a[16]);
timer3.Enabled:=true;
end; end; end; end; end; end; end; end; end;
end; end; end; end; end; end; end;
Это у меня однокурсник писал пятнашки(данная процедура заполняет массив неповторяющимися числами от одного пятнадцати), и не лень же ему было...
да ладно? не проще ли заполнить массив числами от 1 до 15, а затем перемешать?
Я делал как-то так:
for (int i = 0; i < count; i++)
{
r = rand(count);
swap(i, r);
}
Алгоритм, проверенный временем, так сказать. Другой вопрос, что просто чистым рандомом нельзя пятнашки генерить - не все сочитания решаемы.
размищения
И все таки он страшно не читаемый. Скобочки приятней.
end; end; end; end; end; end; end;
На пайтоне в ноль строчек
C говно, потому что на нём можно написать
};};};}; итд
Лисп говно, потому что на нём можно написать
))))))))
Питон говно, потому что на нём можно написать
> ))))))))
fixed
в остальном всё верно
можно
ну типа того
};};};};
}}}}
;;;;
Быдлокодик!
И комитить сразу в репозиторий,
В репозиторий!
Раз словечко, два словечко - будет песенка!
Цикл раз, цикл два - будет лесенка!
В F#/Python и тд нет всяких скобочек или бегин-эндов. Это whitespace язык. То есть вложенность определяется за счет числа табов\пробелов. С использованием скобочек или бегин-эндов можно написать так, как в данном говнокоде - не читаемо. А необходимость для вложенности использовать сдвиги- вайтспейсы - заставляет и дисциплинирует программиста писать правильно. Этакий принудительный сдвигиватель вложений, как в визуал-бейсике, но только на уровне языка. Ну и вообще писать меньше, так что антииндусская технология.
Автор увидел проблему: вложенность глубины порядка 15 не помещается на экране. Его гениальным решением было убрать идентацию вообще. Это же проще, чем придумать нормальный алгоритм.
Следовательно проблема всё-же не в языке, а в авторе.
код говно, автор мудак
спс, кеп.
Только вот этот язык скрыл от говнокодера правду о его способностях к программированию, а вот васпейс язык, когда код ушел бы за пару экранов, недвусмысленно бы намекнул автору кода, что он мудак.
которая, кстати, мне тоже оч не нравится
Ты так говоришь, как-будто все равно не расставляешь все эти вайтспейсы в коде, тк есть всякие "скобочки".
А раз ты их все равно расставляешь их, то нафиг "скобочки" нужны тогда?
Не оправдывайся. Ты всерьёз думаешь, что я тебе поверю?
лесенка на whitespace-языке будет выглядеть не намного лучше.
кстати, конкретно в этом коде эти энды и соответствующие им бегины не нужны.
код очень напоминает индусов - не хватает только a1, a2,... a16 вместо a[...]
перепишите эту кучу на F#/Python...
намного красивее стало?
>намного красивее стало?
Станет намного хуже! Уедет код за пару экранов. В этот момент говнокодера осенит и он поймет, что его код - говно. Как видно на дельфах автора не осенило, тк все выглядит более или менее читаемо. Пописав на вайтспейс-языках - сразу бы перестал говнокодить. Они дисциплинируют.
Сколько табов? Тота. А есть антиговнокодерские языки, что заставят тебя это сделать, например визуалбейсик через автоматику иде (но там это не помогает) или вайтсейс языки, где сам компилятор заставляет ставить вайтспейсы, иначе не заработает или не скомпилируется.
Конечно, не поставленный вайтспейс - не единственное место, где говнокодер может наговнокодить, к сожалению.
Отформатировал твой анус, проверь.
можно и if'ами
надо через впн ходить
Даже холокост заблочили суки...
Если с рандомом не повезёт, то число никогда не выпадет такое, какое надо.
Короче, любой алгоритм, где есть
repeat
r := random;
until f(r);
говно.
другой вопрос, там корректность решения обеспечивается иным способом (от задачи завит), а выход из цикла дополнительно по количеству итераций или таймауту.
ну а тут оно, конечно, не применимо.
Я знаю, сам такие применяю, но сейчас я не о них.
ХУУУУУЛИИИИ!!!11 ему руки не отрубили!