Программирование

Ответить в тред Ответить в тред
Битва языков и парадигм Аноним 06/06/20 Суб 22:19:34 17152341
rd.jpg 33Кб, 608x511
608x511
В одном треде тут мной был предложен челлендж - реализовать игру в шашки на выбранном вами языке и парадигме. Я свою часть выполнил, написал шашки на процессинге. Всем желающим предлагается проделать то же самое на своем любимом языке, тем самым продемонстрировав его красоту, изящество, удобство. Обратите внимание, от вас требуется не сделать какую-то более продвинутую версию по функционалу, а максимально близко портировать эти шашки (в идеале, чтобы отличий вообще не было видно)

Подробнее о программе (основные требования):
- игра по правилам русских шашек
- программа контролирует и обозначает допустимые ходы
- движение шашек должно быть анимировано (шашки не должны двигаться скачками)
- можно играть вдвоем, можно против ИИ, или ИИ против ИИ
- ИИ просто делает случайный допустимый ход
- есть редактор, где можно расставить шашки как угодно (для тестирования)
- снизить зависимость от тяжелых фреймворков (лучше использовать простые библиотеки для вывода графики и обработки ввода)

Код: https://pastebin.com/R0a4Fy4E
Запустить можно в редакторе процессинга: https://processing.org/

Я в данном случае не отстаивал какую-то конкретную парадигму, эта версия пусть будет ориентиром для соревнующихся. Мой код написан по сути на Java, но ООП на всю катушку не используется, хотя классы есть. Весь код в одном файле на 900+ строк.
Аноним 06/06/20 Суб 22:27:12 17152382
>>1715234 (OP)
Этот тред утонет раньше, чем кто-то еще эти шашки запрогает, имхо.
Аноним 06/06/20 Суб 22:30:31 17152393
>>1715238
Ну пока люди пилят можете покритиковать мой код или задать вопросы.
Аноним 06/06/20 Суб 22:42:21 17152474
>>1715234 (OP)
Решение на любом популярном языке будет выглядеть примерно так же. Да и у борщехлёбов, в принципе, тоже, но содержимое функций будет вывернуто наизнанку.
Аноним 06/06/20 Суб 22:48:19 17152605
>>1715247
Я думаю решения могут получиться разные, потому что я сам размышлял о разных вариантах, пока писал. Но даже если в целом структура будет похожей, то детали тоже интересны.
Аноним 06/06/20 Суб 22:51:10 17152666
>>1715234 (OP)
Имхо, челлендж некорректен.
Во-первых, процессинг это не язык.
Во-вторых, язык и парадигма не имеют никакого отношения к графическому интерфейсу. Это всегда работа библиотек.
А так как библиотек существует крайне ограниченное число, то и челлендж такой не уместен.
Аноним 06/06/20 Суб 22:55:09 17152697
Аноним 06/06/20 Суб 22:57:22 17152728
>>1715266
>Во-первых, процессинг это не язык.
Процессинг - это упрощенная версия джявы, который компелируется в джаву. Это делает его не языком?

>Во-вторых, язык и парадигма не имеют никакого отношения к графическому интерфейсу
Ну так работа с графическим интерфейсом должна быть сведена к минимуму. У меня весь интерфейс рисуется квадратами и кружочками.
Аноним 06/06/20 Суб 23:05:15 17152829
435px-Draughtko[...].jpg 42Кб, 435x414
435x414
>>1715269
Когда дамка бьет, то она не может встать на любую клетку после битой, если на перпендикулярных диагоналях есть еще шашки, которые можно бить. Она обязана встать так, чтобы продолжать бить. Это анализ тех позиций, с которых бить можно повторно.
Аноним 06/06/20 Суб 23:05:46 171528310
>>1715272
>>движение шашек должно быть анимировано (шашки не должны двигаться скачками)
>>есть редактор, где можно расставить шашки как угодно (для тестирования)
>>снизить зависимость от тяжелых фреймворков
1. Условия челленджа заранее подогнаны под твою среду разработки
2. Предъявляются конкретные требования по графике. Это уже никак не "сведена к минимуму"

Аноним 06/06/20 Суб 23:17:46 171529211
>>1715283
Моя среда разработки умеет рисовать круги, квадраты, линии, выводить текст. Примитивная обработка ввода и метод draw(), который вызывается 30 раз в секунду. Это много, это где-то очень сложно реализуется? Требование снизить зависимость от сложных фреймворков нужно для того, чтобы изучающему код не было нужды разбираться в этом фреймворке.
Аноним 07/06/20 Вск 02:09:33 171537512
1591484969021.webm 13936Кб, 1920x1080, 00:03:35
1920x1080
>>1715234 (OP)
О, ок, я в деле. Моя парадигма вкратце на видео, но я возьму ассемблер.
Аноним 07/06/20 Вск 02:46:24 171539613
>>1715375
О, ты умеешь сразу писать обфусцированный код?
Аноним 07/06/20 Вск 03:37:04 171540814
>>1715396
Увы, нет. Только чистый и понятный, как в видосе.
Аноним 07/06/20 Вск 06:20:41 171541915
>>1715234 (OP)
>Битва тележек и парадигм
>В одном треде тут мной был предложен челлендж - сложить из ящиков пирамиду с любой выбранной вами тележкой и парадигмой.
>Я свою часть выполнил, навозил ящики тачкой. Всем желающим предлагается проделать то же самое на своей любимой тележке, тем самым продемонстрировав её красоту, изящество, удобство. Обратите внимание, от вас требуется не сделать какую-то более продвинутую версию по функционалу, а максимально близко портировать эти ящики (в идеале, чтобы отличий вообще не было видно)

>Я в данном случае не отстаивал какую-то конкретную парадигму, эта версия пусть будет ориентиром для соревнующихся.

>Ну что грузчики, где ваш энтузиазм?!

Ну блядь даже незнаю. Может лучше пивка выпьем, за аниме перетрем? А ящики на работе потаскаем?
Аноним 07/06/20 Вск 09:49:13 171543716
>>1715234 (OP)
Неохота вникать.

Но ты, судя по всему, пишешь какое-то десктопное приложение. Причём по твоему ТЗ ИИ что-то примитивное.

То есть твоя программа не работает по сети и у неё нет интеллекта. Ну и кому это нужно вообще? Под ДОС в прошлом веке писали лучше и красивее. И влезали в 640 килобайт памяти.

Сейчас такое на JS лучше делать. И легко добавить поддержку сети.

Аноним 07/06/20 Вск 10:38:04 171545617
>>1715437
>Ну и кому это нужно вообще?
Смысл в том, чтобы посмотреть, как одну программу можно реализовать в разных парадигмах. Такой уровень сложности выбран намеренно, реализация не должна затягиваться надолго, но в то же время код не должен быть однострочником.
Аноним 07/06/20 Вск 10:41:47 171545718
>>1715419
Если тут есть тред, в котором роллят пет проджекты, то может и эта тема кого-то заинтересует.
Аноним 07/06/20 Вск 11:05:15 171546219
>>1715456
Это не пет-прожект, это синтетическая бессмысленная задача по забиванию шурупа в доску микроскопом.

Ты предлагаешь сделать GUI, оторванное от реальной задачи, то есть без игры с компьютером и с другим человеком. При этом предлагаешь не пользоваться специальными инструментами для серьёзного GUI.

Вот реально зачем? И уж какой смысл тут мериться?

Аноним 07/06/20 Вск 11:13:03 171546620
>>1715462
Предложи вариант не бессмысленной задачи.
Аноним 07/06/20 Вск 11:46:40 171548521
>>1715462
Он играется с говноскриптотой с уклоном в графон, какие ещё могут задачи быть, лол.
Аноним 07/06/20 Вск 12:14:56 171549022
>>1715485
> Квадратики и кружочки
> графон
Аноним 07/06/20 Вск 12:35:17 171549823
>>1715490
всякие демосценеры там обкатывают свои штучки, как я слыхал.
Аноним 07/06/20 Вск 13:25:15 171553924
>>1715419
Забавно что в /pr не любят обсуждать собственно программирование, а только зарплату.
Аноним 07/06/20 Вск 13:30:43 171554225
>>1715498
Ну да, можно там и 3д графоний запилить, и шейдеры написать. Только тут все это не используется. Можно было на чистой яве писать с гуем из стандартной библиотеки, там тоже можно квадраты рисовать. Так что не понимаю предъяв к процессингу.
Аноним 07/06/20 Вск 15:11:08 171569426
>>1715539
Тут много кто выгорел, работу воспринимают как скучную и рутинную, да и программируют только там.
07/06/20 Вск 15:15:28 171570227
>>1715539
Если бы было бы что обсуждать, особенно в ключе этой конкретной говно задачи.

А индустрия в глобокой жопе. Захвачена СВЖ.
Аноним 07/06/20 Вск 15:21:16 171570928
>>1715694
Начинающие, учащиеся, стремящиеся здесь тоже есть.
Аноним 07/06/20 Вск 15:22:59 171571229
>>1715702
Это обычная учебно-тренировочная задача. Чем она хуже очередной реализации алгоритма сортировки?
Аноним 07/06/20 Вск 17:45:32 171584730
>>1715712
Для себя - может быть. Обычно такие концепты пишешь и кладёшь навечно в архив или просто стираешь. Но конкурсы на такой задаче устраивать?

Ну реально, сама программа смысла не имеет, без логики и сети. Тренировка на графику, визуально графика никакая, прошлый век. И это 900 строк кода.
Аноним 07/06/20 Вск 18:52:57 171590131
>>1715712
>Это обычная учебно-тренировочная задача. Чем она хуже очередной реализации алгоритма сортировки?
Граф интерфейс отдельная нудная тема. Предлагается кучу усилий потратить на бессмысленную графику. Да и отличий никаких не будет.

На сортировке хотя-бы есть место для демонстрации "языка" и "парадигмы".

Предложил бы лучше ИИ писать к шашкам. Предварительно высрав например шашечный сервер с какимнить жесон интерфейсом.
Аноним 07/06/20 Вск 19:13:24 171592332
>>1715847
>>1715901
Графика тут вообще не при чем, она второстепенна. Тренировка в структурировании кода, ведь для этого парадигмы придумывали. Смотреть на сортировку на разных языках не особо интересно, там нечего структурировать. Сам алгоритм может быть сложный, но структурно такая программа примитивна, получает входные данные, обрабатывает их и выдает результат. А 1000 строк это тот объем, который безструктурно уже лучше не писать. Намного больше брать наверно смысла нет, потому что точно никто не возьмется.

Шашечный ИИ тоже не очень тема, потому что специфична. А для моей задачи нужны только базовые навыки программирования.
Аноним 07/06/20 Вск 19:16:41 171592733
>>1715923
>А для моей задачи нужны только базовые навыки программирования.
Ну и как только с базовыми знаниями что-то там демонстрировать и структурировать?
Хватит бредить.
Аноним 07/06/20 Вск 19:18:02 171592934
Лучше напишите какой-нибудь рейтрейсер, у которого на выходе будет какой-нибудь png.
Аноним 07/06/20 Вск 19:21:43 171593535
>>1715927
Под базовыми знаниями я имею в виду знание своего языка и его парадигмы. Ии, сети, моделирование физических процессов - это не базовые знания, они изучаются отдельными курсами.
Аноним 07/06/20 Вск 19:22:11 171593736
В моем любимом языке (кложа) графику можно реализовывать либо через кложаскрипт (что уже вроде как другой язык все таки, другая среда исполнения, свои библиотеки и тд т тп), либо тащить гуишные либы из жабы, что впизду по очевидным причинам. Короче, челендж говно.
Аноним 07/06/20 Вск 19:24:55 171594037
>>1715937
Реализуй без графики.
Аноним 07/06/20 Вск 19:26:11 171594238
>>1715929
Твое предложение, значит с тебя начальная реализация.
Аноним 07/06/20 Вск 19:26:59 171594339
>>1715937
Перечисли очевидные причины.
Аноним 07/06/20 Вск 19:29:19 171594440
>>1715935
С чего ты взял, что гуй чем-то проще и относится к базовым знаниям? По количеству концепций, которые придётся изучить, гуй сравним с написанием простой нейросети.

> ИИ
Простейшая нейронка с нуля пишется в 100 строчек. Если юзать сторонние либы - в 5-10 строчек.

> Сети
Импортировал либу с сокетами, написал 5 строчкек - и уже подключился к серверу и отправил ему данные.

> Гуй
Нужно изучить пару десятков классов, подход и общую структуру, рекомендуемую конкретной гуёвой либой. В других либах всё учить с нуля.
.
Аноним 07/06/20 Вск 19:29:55 171594541
>>1715943
> реализовать игру в шашки на выбранном вами языке и парадигме
>В моем любимом языке (кложа)
>либо тащить гуишные либы из жабы
Уай ар ю гей?
Аноним 07/06/20 Вск 19:41:02 171595142
>>1715944
Я уже устал повторять, у меня весь гуй это квадраты и круги. Мы их учились еще в школе рисовать на бейсике. Круг рисуется методом ellipse(), квадрат - методом rect(). Так что не надо сравнивать с сетями и ии в сотню строк.
Аноним 07/06/20 Вск 19:43:15 171595443
>>1715945
Почему их нельзя притащить?
Аноним 07/06/20 Вск 19:44:27 171595644
>>1715954
Фейспалм. Давай я тебе помогу.
>на выбранном вами языке
>кложа
>джава

Ну? Смекаешь?
Аноним 07/06/20 Вск 19:46:00 171595745
Аноним 07/06/20 Вск 19:52:33 171596646
Написал за один вечер в качестве лабы в универе. Для запуска нужна RStudio. Не обосритесь.

https://pastebin.com/1SrN86Hk
Аноним 07/06/20 Вск 19:57:49 171596947
2020-06-0719-56.png 271Кб, 1995x1193
1995x1193
>>1715966
Обосрался, работает, ещё и на R.
>There are checker, which able to eat!
Аноним 07/06/20 Вск 20:00:53 171597348
>>1715966
>>1715969
Да, кстати, по-моему, я проигрываю ИИ, лол.
Аноним 07/06/20 Вск 20:07:39 171598249
>>1715944
>Простейшая нейронка с нуля пишется в 100 строчек.
Меньше.

>>1715935
Тебе ничего о ИИ ненужно знать чтобы конкретный алгоритм реализовать на языкнейм.
Аноним 07/06/20 Вск 21:08:33 171604850
>>1715966
1000 строк за вечер это мощно. Сколько часов в твоем вечере?
Аноним 07/06/20 Вск 21:29:31 171606551
почему в треде 50 постов пердежа и только два линка на код? это что, пр в 2020?
Аноним 07/06/20 Вск 21:35:46 171607852
>>1716065
А где твой линк на код?
Аноним 08/06/20 Пнд 16:52:55 171688553
>>1715966
Рассказал бы хоть, как работает. Ни строчки комментариев же нет.
Аноним 08/06/20 Пнд 16:58:34 171689154
>>1716885
Хороший код сам себя комментирует!
Аноним 08/06/20 Пнд 20:17:16 171705455
А искуственный интеллект противника тоже писать? Шашки то я могу хоть на джаваскрипте хоть на си с sdl чисто логически реализовать и нарисовать с музыкальными треками в фоне, анимацией и оформлением, но вот интеллект противника я не смогу, небыло такого опыта не представляю даже как это в коде выглядит.
Аноним 08/06/20 Пнд 20:19:58 171705556
>>1717054
У него ж написано просто рандомный разрешённый ход делать.
Аноним 08/06/20 Пнд 20:57:15 171709957
>>1717054
>но вот интеллект противника я не смогу, небыло такого опыта не представляю даже как это в коде выглядит.
Там простейший минмакс алгоритм с отсечениями. Я в универе на шарпе лабал эти ебучие шашки.
Второй раз лениво до жути.
Аноним 08/06/20 Пнд 21:57:34 171714058
>>1717099
Так яж в универе то не обучался
Аноним 08/06/20 Пнд 22:19:11 171716059
Почему еще не запилили шашки на html?
Аноним 09/06/20 Втр 03:12:28 171725260
>>1717140
Меня это ебать должно? Посмотри в Википедии, что такое минмакс алгоритм, это, блядь, не тензорный анализ, разберёшься без преподавателя.
Аноним 09/06/20 Втр 07:30:05 171729661
>>1717252
Человек без образования не способен понять минимакс.
Мимо-препод
Аноним 09/06/20 Втр 08:06:28 171730162
>>1717296
Ебани-ка мне толковую эвристику для шашек.
Аноним 09/06/20 Втр 09:16:56 171732663
>>1717301
Разница в количестве шашек, дамки умножать на два.
Это если английские шашки, в русских наверное дамкам больше коэффициент надо давать.
Аноним 09/06/20 Втр 13:16:21 171749264
>>1717296
Будто образование - это магическая сила, передающаяся только от учителя к ученику.
Аноним 09/06/20 Втр 14:12:43 171755365
>>1717296
>Мимо-препод
Современные преподы в Рашке это белёсый гной, необучаемый скот, опустившиеся мрази.
мимо-учёный
Аноним 10/06/20 Срд 10:11:40 171845066
>>1717553
>мимо-учёный
В рашке?
Аноним 10/06/20 Срд 15:33:50 171872967
>>1717553
Ученые это грантопилы, шарлатаны, черви, пидоры.
Аноним 12/06/20 Птн 19:57:26 172070768
>>1717553
Соси хуй, я не в Рашке. Я даже ученый, только настоящий, а не как ты, с публикациями в Вестнике РАН, лол.
Аноним 12/06/20 Птн 19:58:43 172070969
>>1717492
В теории нет, на практике да.
Аноним 13/06/20 Суб 07:28:44 172116670
image.png 89Кб, 1626x574
1626x574
>>1720707
>а не как ты, с публикациями в Вестнике РАН
Сам хуй соси, перхоть
Аноним 13/06/20 Суб 09:12:17 172119471
>>1715969
ебать, там же поле кривое
Аноним 13/06/20 Суб 11:50:53 172129372
Это конечно круто, но тут на днях вышел полноценный контр-страйк, который работает прямо в браузере. После такого как-то руки опускаются всякие говношашки писать.
Аноним 13/06/20 Суб 13:43:41 172136273
Аноним 13/06/20 Суб 23:03:17 172197374
>>1721293
Странная логика, а сортировку после контр страйка руки не опускаются писать?
Аноним 15/06/20 Пнд 21:00:02 172407475
Аноним 16/06/20 Втр 18:20:20 172498076
Аноним 16/06/20 Втр 18:57:46 172503277
>>1721973
Я эти сортировки лет 15-20 назад писал, когда тебя ещё в планах не было.
Аноним 16/06/20 Втр 19:54:08 172511378
>>1725032
И к чему ты с тех пор пришел?
Аноним 22/06/20 Пнд 15:25:47 173064679
general-boat.gif 1689Кб, 200x150
200x150
>>1721166
> Publications: 11
> Total times cites: 8
Аноним 23/06/20 Втр 11:59:38 173130880
>>1730646
А теперь ты показываешь свои публикации из Web Of Science. Сколько у тебя?
Аноним 23/06/20 Втр 14:15:04 173145281
Мне зашла идея, но просто хуярить для хуесосящих все борщехлебов, без пользы для себя не особо хочу. Попробую реализовать на всех либах, фреймворках и платформах, которые хотел поворочать + добавлю пару мокрописек от себя, так что будет не по оповскому тз.

Через пару дней скину вариант на iOS(UIKit + swift).
Аноним 23/06/20 Втр 15:58:12 173163982
>>1730646
Ну правильно, они там пишут заборостроительные курсачи и потом ссылаются друг на друга и потом научрук еше на этот ботнет ссылается, профит.
Аноним 23/06/20 Втр 17:32:56 173179983
>>1731452
Они будут объектно ориентированными?
Аноним 23/06/20 Втр 18:29:04 173186984
>>1715234 (OP)
>реализовать игру в шашки на выбранном вами языке и парадигме.
Годная идея была бы - каждый пишет ИИ на своем языке и эти ИИ потом где-нибудь рубятся, выясняя кто лучше.

А картинки рисовать, я прям хз.
Аноним 23/06/20 Втр 18:42:21 173188685
>>1731869
Смысл писать шашечный ИИ? Все равно ты сам не придумаешь лучше того, что уже придумано. В чем соревнование то, кто сумеет выбрать самый эффективный метод из известных?
Аноним 23/06/20 Втр 19:05:27 173192386
>>1731886
Хотя бы что то. А у опа что, инкрементировать sprite.x и sprite.y в цикле.
Аноним 23/06/20 Втр 19:19:13 173194587
>>1731923
Ты думаешь 1000 строк ушло на перемещение шашки по диагонали?
Аноним 23/06/20 Втр 19:49:19 173200688
>>1731869
>Годная идея была бы - каждый пишет ИИ на своем языке и эти ИИ потом где-нибудь рубятся
Джва года такое хочу, какую-нибудь rts вроде total annihiation было бы вообще топ, а не три в ряд или убогий тетрис
Аноним 23/06/20 Втр 20:13:54 173203189
Аноним 23/06/20 Втр 20:22:38 173203790
>>1731945
Блин, не хотел открывать портянку опа, ты заставил меня грустить. Ну даже комментировать не хочется, это какой-то 2005 год.
Аноним 23/06/20 Втр 21:15:34 173207691
>>1732037
Твоих шашек итт что-то не видно.
Аноним 23/06/20 Втр 21:29:10 173209392
>>1732037
Ну так напиши обзор, что там из 2005-го, и как сейчас пишут.
Аноним 23/06/20 Втр 21:35:34 173210293
>>1732076
Да придется засучить рукава
Аноним 23/06/20 Втр 21:36:24 173210394
>>1732093
Я просто процитирую void draw() {
if (!enabled) return;
noStroke();
if (mouseOver()) {
fill(200);
} else {
fill(150);
}
rect(x, y, w, h, 5);
fill(0);
textSize(16);
textAlign(CENTER, CENTER);
text(text, x + w / 2, y + h / 2);
}
Аноним 23/06/20 Втр 21:37:50 173210595
>>1732103
Или вот этот чудесный обработчик
if (playWhiteBtn.mouseOver()) {
whitePlayerT = PlayerT.Person;
blackPlayerT = PlayerT.Bot;
loadScene(game);
} else if (playBlackBtn.mouseOver()) {
whitePlayerT = PlayerT.Bot;
blackPlayerT = PlayerT.Person;
loadScene(game);
} else if (twoPersonsBtn.mouseOver()) {
whitePlayerT = PlayerT.Person;
blackPlayerT = PlayerT.Person;
loadScene(game);
} else if (twoBotsBtn.mouseOver()) {
whitePlayerT = PlayerT.Bot;
blackPlayerT = PlayerT.Bot;
loadScene(game);
} else if (editorBtn.mouseOver()) {
loadScene(editor);
}
Аноним 23/06/20 Втр 21:38:40 173210996
>>1732105
А конструктор меню, я думаю, вообще из 90-х к нам пожаловал, так вроде в винде MFC было принято
int bX = 20;
int bW = 180;
playWhiteBtn = new Button(bX, 100, bW, "Играть за белых");
playBlackBtn = new Button(bX, 140, bW, "Играть за черных");
twoPersonsBtn = new Button(bX, 180, bW, "Играть вдвоем");
twoBotsBtn = new Button(bX, 220, bW, "Игра ботов");
editorBtn = new Button(bX, 260, bW, "Редактор");
buttons.add(playWhiteBtn);
buttons.add(playBlackBtn);
buttons.add(twoPersonsBtn);
buttons.add(twoBotsBtn);
buttons.add(editorBtn);
}
Аноним 23/06/20 Втр 21:56:25 173213397
>>1732103
>>1732105
>>1732109
Это все код, связанный с кнопками. В тз не сказано, что надо полноценную гуи библиотеку написать. Все реализовано простейшим способом.
Аноним 23/06/20 Втр 22:11:05 173214698
>>1732031
Я участвовал, не понравилось.
Визуализатор вырвиглазный, правила меняются в процессе конкурса.
Аноним 23/06/20 Втр 22:18:49 173216099
>>1732133
Ну даже если так, глаза не режет дублирование кода и императивщина не к месту? Ну вот почему не записать второй фрагмент как
whitePlayerT = (playWhiteBtn.mouseOver() || twoPersonsBtn.mouseOver()) ? PlayerT.Person : PlayerT.Bot;
blackPlayerT = (playBlackBtn.mouseOver() || twoPersonsBtn.mouseOver()) ? PlayerT.Bot : PlayerT.Person;
loadScene(editorBtn.mouseOver() ? editor : game);

А третий - каким нибудь
int bY = 100;
for (String btnText : {"Играть за белых", "Играть за черных", "Играть вдвоем", "Игра ботов", "Редактор"})
buttons.add(new Button(bX, bY, bW, btnText));
bY += 40;

С другой стороны, если Button все равно new, почему он не сам занимается обработкой кликов?

Аноним 23/06/20 Втр 23:09:00 1732206100
>>1732160
Это же далеко не самое значимое место программы. 10 строчек там или 20, какая разница? Работает и ладно.
Аноним 26/06/20 Птн 18:57:46 1734717101
cites.png 19Кб, 618x322
618x322
>>1731308
Не пользуюсь этой парашей, вот тебе из гугла.
Но я ушел из науки, меня публикации никогда особо не интересовали.
Аноним 26/06/20 Птн 18:59:32 1734718102
Аноним 26/06/20 Птн 19:25:11 1734741103
Аноним 26/06/20 Птн 19:59:30 1734760104
>>1734717
Шлеп оф саенс уважаемый источник, там публикация 1800$ стоит.

>ушел из науки
А сколько годиков?
Аноним 27/06/20 Суб 07:37:07 1735034105
>>1734717
>Не пользуюсь этой парашей
Ну у меня в гугл школар тоже дохуя, там любое говно светится. Всё с тобой ясно-понятно.
Аноним 27/06/20 Суб 20:04:10 1735405106
>>1734741
В индустрию погромировать.

>>1734760
Публикации за бабло это жуткий зашквар, кстате, после такого ни в один уважаемый универ не возьмут.
> А сколько годиков?
За 40.

>>1735034
Где пруфы, Билли?
Аноним 28/06/20 Вск 01:14:44 1735606107
Пытаюсь написать на крестах в том стиле, каком я хочу, и как же язык упирается, вот просто не дает реализовывать, все время какие-то коряги на пути подставляет. Более-менее моему видениб соответствует то, что получается на шаблонах, но это вводит ограничения - нельзя в рантайме задавать размер поля, количество цветов играющих и т.д.
Аноним 28/06/20 Вск 01:33:08 1735614108
>>1735606
Пытаться использовать темплейты для чего-то ещё, кроме кодогенерации в компайлтайме - это как с помощью эксепшенов брейкать цикл и возвращать значения из функций.
Аноним 28/06/20 Вск 02:37:56 1735641109
>>1735614
Тут ты неправ, темплейты в моем случае дают определенные ништяки. Например, у меня есть enum class PieceColor { WHITE, BLACKᴸⁱᵛᵉˢᴹᵃᵗᵗᵉʳ }; Шаблонами можно автоматически определить в компайл тайме количество вариантов в перечислении, не извращаясь как обычно с заведением третьего элемента ENUM_SIZE. Просто написав EnumCounter<PieceColor>::count к сожалению, используя расширение компилятора, и, как я сейчас выяснил, с C++17 там еще и UB, печаль
Описание поля, на шаблонах заняло в 2 раза меньше места, как в строчках, так и символах, т.е. сами строчки понятнее и меньше бойлерплейта конструкторов. Еще отдельно пригорело с невозможности писать constexpr virtual до c++20, который у меня на компе пока не завелся.
>это как с помощью эксепшенов брейкать цикл и возвращать значения из функций.
Ну и тут мы вспоминаем checked/unchecked исключения, а так же всякие рантайм исключения, и понимаем что примерно в 50% случаях в реальном мире это приемлимо. Алсо, если ты захочешь возвращать значения из функций по-современному, через Maybe<T>, std::optional или через туплы std::tie(err, value)=func() поздравляю, это все работает на темплейтах.
Аноним 28/06/20 Вск 02:39:28 1735642110
>>1735641
>Описание поля
*игрового поля
Аноним 28/06/20 Вск 02:59:01 1735651111
>>1735641
Из примера мало что понял, но складывается ощущение, будто тебе хочется, чтобы темплейты брали какие-то внешние данные в райнтайме и что-то догенерировали на лету.

> checked исключения
Ничего хорошего. Постоянно в джава-проекте на работе натыкаюсь на то, что их просто оборачивают в рантайм-исключения и кидают дальше, потому что красивая на бумаге идея оказалась полным пиздецом на практике.

> Алсо, если ты захочешь возвращать значения из функций по-современному, через Maybe<T>, std::optional или через туплы std::tie(err, value)=func() поздравляю, это все работает на темплейтах.
Ага, это правильно, потому что это и есть непосредственно кодогенерация в компайлтайме.
Аноним 28/06/20 Вск 03:19:07 1735653112
>>1735651
Речь скорее про то, что во первых в крестах два языка на самом деле больше, и на шаблонах писать логику получается красивее и выразительнее (сами шаблоны при этом могут быть всратыми), но это прибьет настройки программы гвоздями. И во вторых, даже при всем этом многие казалось бы базовые вещи приходится костылить чуть ли не макросами. Пример - количество значений в enum-е. И так во многом. Ну или например хочется написать цикл, в духе for(int i=0, p : pieces; ; i++) но конечно я не могу совместить цикл foreach и обычный с переменной в одно выражение.
Аноним 28/06/20 Вск 03:21:17 1735654113
>>1735653
Во, еше вспомнил - размер std::array тоже прибит гвоздями в компайл тайме. Хотите массивы - пользуйтесь дырявыми [ ] как диды.
Аноним 28/06/20 Вск 03:28:34 1735656114
>>1735653
Жду, когда в кресты завезут новый препроцессор с возможностью получить текст всего файла в виде байтиков, сгенерировать на их основе любые дргуие байтики и передать компилятору (как source filters в Perl). И языков в крестах будет уже не два, а бесконечно много.
Аноним 28/06/20 Вск 03:34:12 1735658115
>>1735653
По последнему пункту, нагуглил вот такое, так что хотя бы в теории можно
for(auto &&[i, idx]: zip(storedValues, ints(0u))){
Но это ranges v3, а когда я последний раз смотрел ее выхлоп меня смутил оверхед. Хотя может и не такой страшный. Дело в том что я считаю что такая простая игра как шашки должна укладываться примерно в 100 строк логики и в 100 байт.
Аноним 28/06/20 Вск 03:47:35 1735660116
>>1735658
Вообще, очень похоже на питоний enumerate().
Аноним 28/06/20 Вск 03:53:52 1735662117
>>1735660
Видимо, да. Думаю видел в каком то питоньем коде, вот и запомнилось.
Вот такой вариант похоже окончательный
for (auto&& [index, value] : vector | ranges::views::enumerate) {
Почему первый аргумент попадает во второй, а второй в первый, оставим на совести разработчиков библиотеки. Возможно, только так получилось написать пайп оператор.
Аноним 28/06/20 Вск 04:08:31 1735663118
>>1735656
Ну, это довольно банально. Вот если бы над AST можно было работать, но в плюсах он какой то совсем неподъемный давно. Вот в расте макросы вроде крутые. Но я на него только в полглаза глядел, может выучить?
Аноним 28/06/20 Вск 04:37:25 1735668119
>>1735663
С одним только AST ничего толком не сделать. Синтаксис сильно не переделаешь, использовать можно только существующие структуры языка. А с фильтрами пиши хоть компилятор из хаскелля в кресты. Правда, синтаксис самих крестов охуеешь парсить. Короче, нужно и то, и то.

В Nim макросы, вроде, тоже навороченные, но он никому не интересен.
Аноним 28/06/20 Вск 22:12:18 1736341120
>>1731452
>Через пару дней скину вариант на iOS(UIKit + swift).
Прошло 5 дней
Аноним 28/06/20 Вск 22:47:56 1736394121
>>1736341
Соснул с самим описанием шашек(допустимые ходы и т.д.)
Я специально не заглядывал в реализацию опа чтобы потом сравнить.
Аноним 28/06/20 Вск 22:50:16 1736399122
>>1736341
Не трави... Половину уже написал, но хочется все переписать (другой анон)
Аноним 28/06/20 Вск 22:50:46 1736401123
>>1736394
Не забудь про турецкий удар. Интересно у ОП-а он проверяется?
Аноним 29/06/20 Пнд 08:17:05 1736605124
>>1736401
Шашка у меня обязана бить, пока есть возможность, через битых не прыгает. А с дамкой сложнее. Она, как я понял, после взятия шашки не может встать куда угодно, а должна проверить, нельзя ли еще кого на перпендикулярных диагоналях бить.
Аноним 09/07/20 Чтв 21:38:14 1746360125
1499976273256.png 74Кб, 1620x526
1620x526
>>1736399
Все еще не написал вторую половину, вот же прокрастинатор. Бампану самописным ранжем.
Аноним 10/07/20 Птн 01:41:52 1746520126
Simulator Scree[...].png 64Кб, 750x1334
750x1334
>>1746360
Я сами шашки осилил, но там такая процедурная параша получилась, что не хочется сразу под струю подставляться. Плюс всякие мелочки пока не доделал типа анимаций.

Еще вопрос по UI, если шашка по результату становиться на то же место как вы это обозначаете? У опа по скрину я не особо понял что это, промежуточное состояние хода когда одну шашку побил, а вторую еще нет?
Аноним 12/07/20 Вск 23:13:13 1749768127
rd.gif 80Кб, 378x385
378x385
Аноним 13/07/20 Пнд 12:38:26 1750078128
image.png 428Кб, 488x488
488x488
Аноним 18/07/20 Суб 01:27:45 1754341129
>>1750078
Я и не говорил, что это рокет саенс.
Сколько из написавших без образования? И они тупо реализовали алгоритм, или поняли его? Если попросить что-то изменить там, они смогут, или будут смотреть и хлопать глазами? Скажем, всунуть баг в альфа-бету, и попросить пофиксить.
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов