Войти
ФлеймФорумПрограммирование

Общие вопросы по программированию (314 стр)

Страницы: 1313 314 315 316318 Следующая »
#4695
(Правка: 21:36) 21:18, 19 июня 2021

Ну что, писатели нейросетей и нечёткой логики, решите проблему вагонетки? Дано: по рельсам несётся тяжёлая и неуправляемая вагонетка, на пути которой находятся привязанными к рельсам пять форумных троллей с gamedev.ru и есть некая стрелка, возле которой вы стоите и можете переключив стрелку направить вагонетку на другой путь, на котором привязан к рельсам один модератор форума gamedev.ru, неважно какой. Что вы будете в такой ситуации делать? И как будете программировать управляющий стрелкой искусственный интеллект?


#4696
21:21, 19 июня 2021

после стрелки закольцовано?

#4697
21:24, 19 июня 2021

clc
> после стрелки закольцовано?
В конце стрелок тупики, а то решать было бы неинтересно.

#4698
(Правка: 21:28) 21:28, 19 июня 2021

тогда задача не имеет решения - один выживет и распочкуется

#4699
21:48, 19 июня 2021

Алексей Патрашов
> Что вы будете в такой ситуации делать? И как будете программировать управляющий
> стрелкой искусственный интеллект?
я бы сделал так:
1) давим 5 форумных троллей, далее задний ход до стрелки
2) переключение стрелки на другой путь
3) давим модератора форума, неважно какого.

#4700
(Правка: 22:12) 22:11, 19 июня 2021

1:0 в пользу интеллекта
6:0, конечно же
в любом случае справа не более единицы, так что кпд только увеличивается

#4701
1:59, 20 июня 2021

Почему я всё ещё люблю C, но при этом терпеть не могу C++?: https://habr.com/ru/company/ruvds/blog/562530/

#4702
6:15, 20 июня 2021

Алексей Патрашов
Закрыть рельсы в один ящик с радиоактивным ураном. Получится трамвай Шрёдингера - задавлены сразу все одновременно, главное, ящик надо закопать подальше и больше никогда не открывать.

#4703
(Правка: 7:15) 6:57, 20 июня 2021

Алексей Патрашов
Если задача ставится в Визуальной новелле. Такой, чтобы не нубской, то там явно будет больше 2х решений, тк уже принято реализовывать "путешествия во времени" для удержания пользователей игре. т.е. вполне можно допустить, что и пути окажутся заколькованными, да 18+ концовку тоже никто не отменял! (7 участников! шутка ли). Т.е. правильно выбирать, первый, второй, а затем и дополнительные варианты.

Если действие происходит в каком-нить ААА шутере, то решение простое. Переключать стрелку нужно когда вагонетка вышла на развилку, естественно в результате чего она сходит с рельс! Обычно, это обставляется этаким слоу-мо с обязательным требованием от игрока нажать во вовремя кнопку действия несколько раз!

+ Показать

Если это хоррор, то можно вообще ничего не делать. Потому что, если "спасти" троллей, то они окажутся зомби и, естественно, сразу нападут на ГГ, как только он к ним подойдёт. Если "спасти" модератора, то он окажется, что уже давно мёртв, но на нём хороший лут, или подсказка к следующему пазлу.

Если это сурвайвал, то, скорее всего, вагонетку придётся разобрать на запчасти, из запчастей склепать холодное оружие. (топор, или заточки). Прибить привязанных к рельсам, чтобы было мясцо и лут.... а кому сейчас легко?

Если это акшен-сурвайвал (типа Tomb Raider-а), то нужно срочно прыгнуть в вагнетке, выстрелом из лука/огнестрела перевести стрелку, не важно на какой путь, в момент проезда по жертвам, срочно выпрыгнуть на открывшийся проход наверх, потому что вагонетка итак несётся в тупик, и если этого не сделать, то придётся начинать сначала! и вообще всё вокруг итак рушится и горит, и погибнут все, кроме ГГ.

Если это sci-fi или fantasy, то создаём/кастуем телепорт, который был любезно оставлен дизайнером карты, непосредственно перед входом в залу с вагонеткой. И самое интересное, что даже спидранеры не могут попасть в залу не взяв это телепорт.

#4704
12:05, 20 июня 2021

Алексей Патрашов
> Ну что, писатели нейросетей и нечёткой логики, решите проблему вагонетки?
Какая ещё нечёткая логика? Тут нужна банальная функция оценки жизней людей на разных путях.

#4705
(Правка: 12:33) 12:10, 20 июня 2021

KPG
> Почему я всё ещё люблю C, но при этом терпеть не могу C++?
Притенении в духе, C++ имеет много полезного, но из-за огромного богатства возможностей я им пользоваться не буду и буду страдать с Си.

В комментариях подняли тему UB и привели пример.
Забавно, что в C++ с древних времён позволен aliasing изменяемых ссылок и указателей и с этим ничего поделать нельзя.
Такой C++ код:

void Print( int x, int y );
void SetAndPrint( int& x, int& y )
{
  x= 1;
  y= 2;
  Print( x, y );
} 
Выдаёт следующий асмовыхлоп:
_Z11SetAndPrintRiS_:
  movl $1, (%rdi)
  movl $2, (%rsi)
  movl (%rdi), %edi
  movl $2, %esi
  jmp _Z5Printii
Как видно, компилятор считает, что две ссылки потенциально могут указывать в одно и то же место, а значит после записи в y надо вычитывать заново x.

Для примера, Ü, где aliasing не позволен для изменяемых ссылок, такой фигни нету.
Код

fn Print( i32 x, i32 y );
fn SetAndPrint( i32 &mut x,i32& mut y )
{
  x= 1;
  y= 2;
  Print( x, y );
} 
Выдаёт
_Z11SetAndPrintRiS_:
  movl  $1, (%rdi)
  movl  $2, (%rsi)
  movl  $1, %edi
  movl  $2, %esi
  jmp  _Z5Printii@PLT

Здесь же ситуация лучше, компилятор знает, что x и y всегда разные, ибо в языке запрещено иметь две изменяемые ссылки на одну переменную. Соответственно, он не вычитывает значение x, зная, что запись в y его не затрёт.

#4706
12:24, 20 июня 2021

Panzerschrek[CN]
> Притензии в духе, C++ имеет много полезного, но из-за огромного богатства
> возможностей я им пользоваться не буду и буду страдать с Си.
Здесь автор не страдает, а вспоминает и улучшает свои навыки С++ :) 
Разработка стековой виртуальной машины и компилятора под неё (часть III)

P.S. Советы, вроде, тоже принимает по грамотному использованию C++ в рамках реализации поставленной задачи для себя.

#4707
(Правка: 12:28) 12:26, 20 июня 2021

Panzerschrek[CN]
> имеет много полезного
Не увидел в статье слова "полезного", только "много".

KPG
> по грамотному использованию C++
Нереально. Т.к. он перегружен "возможностями", то любая реальная программа устаревает до того, как начинает работать. На Форуме - до того, как закончится обсуждение "можно ли так сделать?".

#4708
(Правка: 18:09) 12:52, 20 июня 2021

gudleifr
> Нереально. Т.к. он перегружен "возможностями", то любая реальная программа
> устаревает до того, как начинает работать. На Форуме - до того, как закончится
> обсуждение "можно ли так сделать?".
99 bottles of beer - В особо извращённых"гибких" вариантах решения на  C++ :)
http://rosettacode.org/wiki/99_bottles_of_beer#C.2B.2B

P.S. Один из приведённых вариантов даже не проходит тест на работоспособность на  https://www.tutorialspoint.com/compile_cpp_online.php (хотя в коде ошибок нет)

Хотя и другие какие то примеры на языке С++ (и вероятно каких то других)
не завершаются успешно в сервисах Online проверки кода на "произвольном" языке.

Смотря на зоопарк представленных языков на rosettacode.org и решений одних и тех же задач на них, можно сделать вывод, что нет абсолютно понимаемых решений на произвольном (или предпочтительном) языке программирования как бы апологеты их не хотели доказать обратное. :)

В итоге, выигрывает в понимании языки, которые не стараются очень абстрагироваться от интуитивно понятнго пути  решения предоставленной задачи. (Imho).

Любители, например, C++  трезво должны это понимать и если это  не так, то изучить решения примеров на других языках и их парадигмической основе. :)

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

#4709
18:14, 20 июня 2021

Производительность компилятора при работе с концептами в C++20

Страницы: 1313 314 315 316318 Следующая »
ФлеймФорумПрограммирование