04.06.2016, 17:13 | #1 |
2 разряд
Регистрация: 03.06.2016
Сообщений: 441
Сказал(а) спасибо: 534
Поблагодарили 1,949 раз(а) в 431 сообщениях
Репутация: 181
|
Stockfish и его производные
Stockfish 14 Stockfish 14 для Android https://ufile.io/f/8ardx https://pixeldrain.com/l/ndVpnHXc#item=1 Архив предыдущих версий: https://www.dropbox.com/sh/75gzfgu7q...UfHbBr4r_RwhGa Официальный сайт стокфиш Обновления тестовых версий стокфиша: http://abrok.eu/stockfish/ Сборки Stockfish и CorChess от I. Ivec Развитие движка http://tests.stockfishchess.org/tests Stockfish_NNUE https://github.com/nodchip/Stockfish Сети: https://www.comp.nus.edu.sg/~sergio-v/nnue/ AsmFish Сборки от Maratka Компиляции движков от ChessMan Сборка Stockfish от Otodranik Sugar от Marco Zerbinati Shark и Orka О StockfishЦитата:
Авторы движка
Двигатель Stockfish был разработан Tord Romstad, Marco Costalba и Joona Kiiski. В настоящее время он развивается и поддерживается сообществом Stockfish. Авторы приложений Stockfish для Mac был собран Daylen Yang. Stockfish для iOS был собран Tord Romstad. История Проект Stockfish начался с движка Glaurung с открытым исходным кодом, созданного Tord Romstad. В ноябре 2008 года Марко Косталба разветвил код Glaurung 2.1 и представил Stockfish 1.0. Торд и Джоона Кииски присоединились к проекту «Стилфиш», и проект «Гларунг» постепенно исчез. Тем временем, Stockfish быстро поднялся, чтобы стать самым сильным шахматным движком с открытым исходным кодом, с частыми обновлениями каждые несколько месяцев. Сегодня он остается одним из самых сильных двигателей в мире. О GPL Stockfish является бесплатным и распространяется в соответствии с GNU General Public License Version 3 (GPLv3). По сути, это означает, что вы можете делать практически все, что хотите, с программой, включая ее распространение среди своих друзей, делая ее доступной для загрузки с вашего веб-сайта, продавая ее (либо самостоятельно, либо как часть некоторого более крупного программного пакета ) или использовать его в качестве отправной точки для собственного программного проекта. Единственное реальное ограничение заключается в том, что всякий раз, когда вы каким-либо образом распространяете Stockfish, вы всегда должны включать полный исходный код или ссылку на исходный код. Если вы внесете какие-либо изменения в исходный код, эти изменения также должны быть доступны в GPL. Для получения полной информации прочитайте GPL. [свернуть] Последний раз редактировалось ChessMan; 04.07.2021 в 09:38. Причина: Добавил ссылку на Стокфиш 14 + ссылка на пред. версии + Android |
59 пользователя(ей) сказали cпасибо: | ALEKS (05.10.2017), Alexandr_L (07.09.2017), Alex_Lk (28.09.2018), Alex_Zet (04.12.2018), Antuan (01.01.2019), Arikchess (02.03.2018), Benoni (18.05.2020), Borisk (02.12.2018), Chess762 (01.12.2016), ChessMan (30.10.2017), Cr@ck (30.03.2019), Demch (15.07.2018), genadiy (06.12.2018), gens (26.10.2018), Ghppn (31.12.2019), Gigabayt (14.09.2020), GL2016 (04.06.2016), IgorPastukhov (06.02.2018), ivm1995 (03.12.2017), KERCH (04.06.2016), kruzh (08.02.2019), Lawyer (18.09.2018), Maratka (24.05.2018), Michael Strelkov (29.01.2017), Ofiscer (06.06.2016), ogr56 (08.07.2019), Padre (18.11.2020), Psyclone2513 (06.10.2017), Raptor (17.11.2018), Rybka (21.01.2020), SergeyTUR (04.02.2019), Shadow (15.11.2017), SKY (11.05.2020), sovaz1997 (03.10.2017), ssserg (27.06.2020), Stavross (04.06.2016), tt66 (04.06.2016), valery 64 (16.07.2021), ValstepAS (23.12.2018), Vovan (22.03.2019), Александр (30.10.2018), Александр Руденко (26.07.2020), АЛЕКСЕЙ1976 (15.08.2021), Валекс (27.11.2018), Виталий В. (13.07.2016), Владимир Харламов (09.12.2019), Владимир001 (09.08.2020), Гудвин (04.06.2016), Иван (03.07.2021), илья (13.07.2021), Кевин (30.03.2017), Котюргин (12.09.2021), Ларин (09.02.2018), Петригин Олег (04.06.2016), Реналь (18.07.2020), Ренат (17.10.2016), Роман (02.06.2021), Философ (04.06.2016) |
27.04.2020, 21:42 | #7471 |
Эксперт
Регистрация: 31.05.2016
Сообщений: 6,474
Сказал(а) спасибо: 10,473
Поблагодарили 6,624 раз(а) в 3,608 сообщениях
Репутация: 467
|
Re: Stockfish и его производные
SKY,
попробуйте просто запустить на 4х2080ти Винду- не получится... но при половинной точности эти ядра- короли, при двойной точности- пустышки... |
27.04.2020, 21:44 | #7472 |
Эксперт
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
|
Re: Stockfish и его производные
Цитата: Сообщение от SKY
Уж наверно лет как 20 тому слышал о том что вот-вот движки будут играть на видео ядрах и все что-то никак не получается ни у кого.
Вы правы лишь в том, что ни AZ, ни LZ не являются полностью писанными движками под видео. Видеоплаты для них лишь банальные сопроцессоры, базовый код для расчета на видеоплате все одно крутится на обычных x86-64 CPU. |
Пользователь сказал cпасибо: | sergey1963 (27.04.2020) |
27.04.2020, 21:45 | #7473 |
Эксперт
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
|
Re: Stockfish и его производные
Цитата: Сообщение от sergey1963
попробуйте просто запустить на 4х2080ти Винду- не получится... но при половинной точности эти ядра- короли, при двойной точности- пустышки...
|
27.04.2020, 21:47 | #7474 |
Эксперт
Регистрация: 31.05.2016
Сообщений: 6,474
Сказал(а) спасибо: 10,473
Поблагодарили 6,624 раз(а) в 3,608 сообщениях
Репутация: 467
|
Re: Stockfish и его производные
абсолютно точно- всего лишь 2 ядрам добавили 3 тысячи калькуляторов и они одолели 88 ядер, но это не говорит о равенстве 3 тысяч калькуляторов 100 ядрам...
|
27.04.2020, 21:48 | #7475 |
Super Moderator
Регистрация: 30.05.2016
Сообщений: 758
Сказал(а) спасибо: 67
Поблагодарили 1,191 раз(а) в 587 сообщениях
Репутация: 51
|
Re: Stockfish и его производные
Цитата: Сообщение от Maratka
Вообще говоря LZ (а до этого AZ) Вас опровергают.
а LZ это движок с другим алгоритмом, где нейросеть и ее использование как раз хорошо идет на видяхе. |
Пользователь сказал cпасибо: | sergey1963 (27.04.2020) |
27.04.2020, 21:51 | #7476 |
Эксперт
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
|
Re: Stockfish и его производные
Цитата: Сообщение от DEEP_MIND
нет, не опровергают, в те годы была идея хотя бы часть расчета перенести в ядра видяхи - но ничего не вышло, ибо ну ни как они не хотят считать альфа-бету.
Мечтать можно... но нужно и код писать! А вышло так, что с кодом не вышло (возможно "пока не вышло"). ______ Идея APU сама по себе неплоха. Проблема в наличии ПО для нее (и Уже - алгоритмов, которые подходят под это ПО). Цитата: Сообщение от DEEP_MIND
а LZ это движок с другим алгоритмом, где нейросеть и ее использование как раз хорошо идет на видяхе.
|
Пользователь сказал cпасибо: | sergey1963 (27.04.2020) |
27.04.2020, 21:52 | #7477 |
3 разряд
Регистрация: 10.09.2018
Сообщений: 204
Сказал(а) спасибо: 82
Поблагодарили 55 раз(а) в 39 сообщениях
Репутация: 7
|
Re: Stockfish и его производные
Цитата: Сообщение от Maratka
Вообще говоря LZ (а до этого AZ) Вас опровергают.
Автор цитируемый мной говорил о SF то есть АВ движки. |
27.04.2020, 21:57 | #7479 |
Эксперт
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
|
Re: Stockfish и его производные
Цитата: Сообщение от SKY
Автор цитируемый мной говорил о SF то есть АВ движки.
IMHO, это чистой воды развлекуха: для живых мастеров поиграть в реальном режиме, не более того. Практической пользы от портирования SF хоть на видео (без разницы, AMD или nVidia), хоть на ARM, хотя на PS2 никакого - уровень игры на любом порте упадет. |
Пользователь сказал cпасибо: | sergey1963 (27.04.2020) |
27.04.2020, 22:05 | #7481 |
Эксперт
Регистрация: 31.05.2016
Сообщений: 6,474
Сказал(а) спасибо: 10,473
Поблагодарили 6,624 раз(а) в 3,608 сообщениях
Репутация: 467
|
Re: Stockfish и его производные
Тогда как же считать баланс между А и В???
Google Tensor Processing Unit, Google TPU- тензорный процессор класса нейронных процессоров- специализированная интегральная схема, разработанная Google в 2016г. и предназначенная для использования с библиотекой машинного обучения TensorFlow- матричный умножитель для 8-разрядных чисел, управляемый CISC-инструкциями центрального процессора по шине PCIe 3.0. Технология- 28 нм, тактовая частота- 0,7ггц, тепловая мощность- 30вт. Оснащается 28мб встроенной оперативной памяти и 4мб 32-разрядных аккумуляторов, накапливающих результаты в массивах из 8-битных множителей, организованных в матрицу 256×256. Инструкции устройства передают данные на узел или получают их из него, выполняют матричные умножения или свёртки, 65536 умножений в такт на каждой матрице, в секунду- 100трлн... Даже 4 таких штуки - впечатляют, не говоря о 5 тысячах... Последний раз редактировалось sergey1963; 27.04.2020 в 22:40. |
28.04.2020, 00:00 | #7482 |
2 разряд
Регистрация: 14.02.2019
Сообщений: 311
Сказал(а) спасибо: 0
Поблагодарили 149 раз(а) в 107 сообщениях
Репутация: 10
|
Re: Stockfish и его производные
TPU третьего поколения медленее nvidia v100. А первые, на которых игрался тот матч и вовсе черепахи.
|
Пользователь сказал cпасибо: | Владимир001 (28.04.2020) |
28.04.2020, 09:25 | #7483 |
Эксперт
Регистрация: 31.05.2016
Сообщений: 6,474
Сказал(а) спасибо: 10,473
Поблагодарили 6,624 раз(а) в 3,608 сообщениях
Репутация: 467
|
Re: Stockfish и его производные
100 трлн/с- медленно? сегодня значительно лучше? именно поэтому Лиле дали сегодняшние 4 х 2080ти? двумя видеокартами было нельзя обойтись?
|
28.04.2020, 18:00 | #7484 |
Эксперт
Регистрация: 19.12.2019
Сообщений: 7,484
Сказал(а) спасибо: 4,655
Поблагодарили 12,178 раз(а) в 5,475 сообщениях
Репутация: 259
|
Re: Stockfish и его производные
|
Пользователь сказал cпасибо: | Виталий В. (28.04.2020) |
28.04.2020, 18:09 | #7485 |
Эксперт
Регистрация: 19.12.2019
Сообщений: 7,484
Сказал(а) спасибо: 4,655
Поблагодарили 12,178 раз(а) в 5,475 сообщениях
Репутация: 259
|
Re: Stockfish и его производные
https://tcec-chess.coчто это за турнир из 100 партий между стоком и лилой ?
120 +10 и непонятно как они за пару часов наиграли 24 партии с таким контролем времени |
29.04.2020, 02:49 | #7486 |
Гроссмейстер
Регистрация: 02.07.2016
Адрес: Сахалин
Сообщений: 4,792
Сказал(а) спасибо: 5,116
Поблагодарили 14,196 раз(а) в 4,064 сообщениях
Записей в дневнике: 251
|
Re: Stockfish и его производные
__________________
ICCF SIM 2547, International Arbiter, ICCF "Promotional Tournaments - Server" Organiser, RCCA Chess 960 Champion, ICCF 4th Chess 960 World Cup Final Winner. |
29.04.2020, 02:53 | #7487 |
Гроссмейстер
Регистрация: 30.05.2018
Адрес: Севастополь
Сообщений: 4,022
Сказал(а) спасибо: 56
Поблагодарили 5,294 раз(а) в 2,673 сообщениях
Репутация: 216
|
Re: Stockfish и его производные
Я много раз пробовал эту идею, но прошло только сейчас - там много цифр, которые совершенно не очевидно, почему именно такие значения имеют, поэтому крутил-вертел всяко...
Идея простая - если у нас достаточно позднее взятие в дереве поиска без шаха и при этом статическая оценка очень плоха, так что в результате взятия всё равно останется очень сильно меньше alpha, то обычно можно это взятие просто не рассматривать. Собственно, примерно то же самое у нас есть для тихих ходов без шаха, только там другие цифры "насколько хуже alpha", ну и заодно не прибавляется значение материала взятой фигуры, разумеется, потому что её нет
__________________
Развернуть для просмотра[свернуть] |
4 пользователя(ей) сказали cпасибо: |
29.04.2020, 09:20 | #7488 |
Эксперт
Регистрация: 31.05.2016
Сообщений: 6,474
Сказал(а) спасибо: 10,473
Поблагодарили 6,624 раз(а) в 3,608 сообщениях
Репутация: 467
|
Re: Stockfish и его производные
Vizvezdenec,
возвращаясь к обсуждению поиска и оценки - одно без другого не существует, базируясь на оценке поиск расставляет ходы по ранжиру - однако изначально вопрос был поставлен не правильно (а правильно заданный вопрос- половина ответа) - что первично, точнее, важнее для нахождения хода и варианта- поиск или оценка? - опа-на- оказывается совсем уж точная оценка не важна, а вот включение важного хода в расчет- куда важнее - итак- все же поиск, оно и понятно- ходов-то 3-4 десятка, а оценок- пусть даже до +5,55- через сотые- свыше полутысячи - что делают многочисленные клоны Стокфиша?- да ломают традиционный, заложенный в оригинал метод поиска, отсечения - существует неплохо зарекомендовавший себя метод Папенина (вот откуда его "бешенный" рейтинг), метод игры-пондера и другие, которые можно еще и усилить-улучшить... все они, базируясь на одной и той же оценке, нацелены на изменение поиска... получается довольно неплохо - все "особенные" ходы Лилы после такой "обработки" неожиданно находятся и Стокфишем и даже лучше- Стокфиш, благодаря отличной тактике, начинает предлагать другие ходы, уже с другой оценкой - т.о. в поиске появляются ходы первоначально отбрасываемые Стоком из-за изменения-уточнения оценки именно через поиск - ну как бы переход количества в качество с единством и борьбой противоположностей через отрицание отрицания... |
29.04.2020, 09:23 | #7489 |
Гроссмейстер
Регистрация: 30.05.2018
Адрес: Севастополь
Сообщений: 4,022
Сказал(а) спасибо: 56
Поблагодарили 5,294 раз(а) в 2,673 сообщениях
Репутация: 216
|
Re: Stockfish и его производные
Ну это всё замечательно, но, насколько я знаю, моменты, когда надо что-то там с поиском такое учудить, выбираются человеком сами? Вопрос в формализации.
Я тоже могу в многих позициях сказать "стокфиш, что же ты такое пишешь, какие +3, тут же очевидно ничья". Проблема в том, чтобы моё "очевидно" ему донести в виде кода. Пока нерешаемая Ну и я так скажу, я пока что ещё в поиске не слишком хорош. Могу делать эвристики средней сложности, но не более того. Всему своё время, полгода назад я мог только добавлять условия
__________________
Развернуть для просмотра[свернуть] |
3 пользователя(ей) сказали cпасибо: |
29.04.2020, 09:34 | #7490 |
Эксперт
Регистрация: 31.05.2016
Сообщений: 6,474
Сказал(а) спасибо: 10,473
Поблагодарили 6,624 раз(а) в 3,608 сообщениях
Репутация: 467
|
Re: Stockfish и его производные
если вам интересно могу подробнее о методах "слома" поиска Стока без вмешательства в сам код написать вам в личку- может оно и пригодится- там ничего сложного-то и нет...
для примера- вот такая позиция решается Стоком без передвижения фигур (т.е. без разбора вариантов адвансером) за 5-7 минут на 4 ядрах- 4q1kr/p6p/1prQPppB/4n3/4P3/2P5/PP2B2P/R5K1 w - - 0 1 |
29.04.2020, 10:58 | #7491 |
Гроссмейстер
Регистрация: 30.05.2018
Адрес: Севастополь
Сообщений: 4,022
Сказал(а) спасибо: 56
Поблагодарили 5,294 раз(а) в 2,673 сообщениях
Репутация: 216
|
Re: Stockfish и его производные
была, кстати, идея, которая несколько раз прошла короткий временной контроль, но завалила длинный - не делать null move pruning, если есть связанные фигуры.
Может быть какая-то её вариация сейчас и сможет пройти. Я посмотрю, как закончу с futility pruning для взятий
__________________
Развернуть для просмотра[свернуть] |
4 пользователя(ей) сказали cпасибо: |
29.04.2020, 11:49 | #7492 |
Эксперт
Регистрация: 31.05.2016
Сообщений: 6,474
Сказал(а) спасибо: 10,473
Поблагодарили 6,624 раз(а) в 3,608 сообщениях
Репутация: 467
|
Re: Stockfish и его производные
Здесь не только связка короля через пешку е6, но и самое интересное- защищающийся ферзь- всегда хуже атакующего, т.е. если более ценная фигура вынуждена защищать важные поля (здесь- от вторжения и мата) от менее ценной- то логично снизить ее оценку до этой (этих) менее ценных- в данном случае до 8.5 (ладья и слон соперника). Т.о. играют только белопольный слон и 3 пешки ферзевого фланга белых и ладья и 2 пешки там же черных, а если поставим на диагональ связки слона- то он "сравняется" с ладьей- получается 3 пешки против 2 и как обычно... находится прорыв...
|
29.04.2020, 18:57 | #7493 |
Гроссмейстер
Регистрация: 02.07.2016
Адрес: Сахалин
Сообщений: 4,792
Сказал(а) спасибо: 5,116
Поблагодарили 14,196 раз(а) в 4,064 сообщениях
Записей в дневнике: 251
|
Re: Stockfish и его производные
Author: Vizvezdenec
Date: Wed Apr 29 17:35:48 2020 +0200 Timestamp: 1588174548 Introduce futility pruning for captures The idea is somewhat similar to futility pruning for quiet moves - if a late enough capture doesn't give check and the static eval is much lower than alpha we can almost safely assume that this capture wouldn't be a good move. passed STC https://tests.stockfishchess.org/tes...a4548a0348ee5b LLR: 2.95 (-2.94,2.94) {-0.50,1.50} Total: 236040 W: 44420 L: 43894 D: 147726 Elo +0.77 Ptnml(0-2): 3830, 27202, 55496, 27596, 3896 passed LTC https://tests.stockfishchess.org/tes...41237a731f0c7d LLR: 2.95 (-2.94,2.94) {0.25,1.75} Total: 81336 W: 10429 L: 10028 D: 60879 Elo +1.71 Ptnml(0-2): 589, 7356, 24404, 7703, 616 closes https://github.com/official-stockfis...fish/pull/2651 bench 4405247 https://abrok.eu/stockfish/
__________________
ICCF SIM 2547, International Arbiter, ICCF "Promotional Tournaments - Server" Organiser, RCCA Chess 960 Champion, ICCF 4th Chess 960 World Cup Final Winner. |
3 пользователя(ей) сказали cпасибо: |
29.04.2020, 19:00 | #7494 |
Гроссмейстер
Регистрация: 02.07.2016
Адрес: Сахалин
Сообщений: 4,792
Сказал(а) спасибо: 5,116
Поблагодарили 14,196 раз(а) в 4,064 сообщениях
Записей в дневнике: 251
|
Re: Stockfish и его производные
Author: Joost VandeVondele
Date: Wed Apr 29 17:44:24 2020 +0200 Timestamp: 1588175064 Small cleanups closes https://github.com/official-stockfis...fish/pull/2628 No functional change https://abrok.eu/stockfish/
__________________
ICCF SIM 2547, International Arbiter, ICCF "Promotional Tournaments - Server" Organiser, RCCA Chess 960 Champion, ICCF 4th Chess 960 World Cup Final Winner. |
4 пользователя(ей) сказали cпасибо: |
30.04.2020, 08:10 | #7495 |
Гроссмейстер
Регистрация: 02.07.2016
Сообщений: 2,104
Сказал(а) спасибо: 4,488
Поблагодарили 5,221 раз(а) в 1,744 сообщениях
Репутация: 435
|
Re: Stockfish и его производные
Stockfish and CorChess development builds compiled by I. Ivec
April 29, 2020 https://chess.ultimaiq.net/stockfish.html
__________________
"Не-ум - цветы вечности." Ошо |
7 пользователя(ей) сказали cпасибо: | Chess762 (30.04.2020), gens (30.04.2020), Vasilievich (01.05.2020), Валекс (02.05.2020), Виталий В. (01.05.2020), Владимир001 (30.04.2020), Философ (30.04.2020) |
02.05.2020, 10:02 | #7496 |
2 разряд
Регистрация: 22.06.2016
Сообщений: 466
Сказал(а) спасибо: 1,400
Поблагодарили 293 раз(а) в 176 сообщениях
Репутация: 37
|
Re: Stockfish и его производные
Цитата: Сообщение от byan_mivv
Stockfish and CorChess development builds compiled by I. Ivec
April 29, 2020 https://chess.ultimaiq.net/stockfish.html |
Пользователь сказал cпасибо: | Borisk (02.05.2020) |
02.05.2020, 10:49 | #7497 |
Гроссмейстер
Регистрация: 02.07.2016
Сообщений: 2,104
Сказал(а) спасибо: 4,488
Поблагодарили 5,221 раз(а) в 1,744 сообщениях
Репутация: 435
|
Re: Stockfish и его производные
__________________
"Не-ум - цветы вечности." Ошо |
2 пользователя(ей) сказали cпасибо: | Vasilievich (02.05.2020), Владимир001 (02.05.2020) |
02.05.2020, 16:43 | #7498 |
Эксперт
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
|
Re: Stockfish и его производные
Зелененький на оценку:
https://tests.stockfishchess.org/htm...feed51f6e325b0 Vizvezdenec, в очередной раз спасибо! |
02.05.2020, 17:01 | #7499 |
Гроссмейстер
Регистрация: 30.05.2018
Адрес: Севастополь
Сообщений: 4,022
Сказал(а) спасибо: 56
Поблагодарили 5,294 раз(а) в 2,673 сообщениях
Репутация: 216
|
Re: Stockfish и его производные
Круговорот, такой патч уже был, только 16 + 4. Упростили до "плоского" 22.
Правда, после этого много чего поменялось, в том числе и определение того, что такое вообще проходная. Теперь будет 18 + 4.
__________________
Развернуть для просмотра[свернуть] |
02.05.2020, 17:12 | #7500 |
Эксперт
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
|
Re: Stockfish и его производные
;)
А что если если проверить этот патч, и 16 + 4, один против второго, "в лоб"? Возможно упрощение было напрасным? |
Здесь присутствуют: 17 (пользователей: 0 , гостей: 17) | |
|
|