?

Log in

No account? Create an account

Предыдущий пост поделиться Следующий пост
Реализация (NM – 1)-нашек
lex_kravetski
Для интересующихся выкладываю реализацию (NM – 1)-нашек на языке Wolfram. Сама постановка задачи описана вот тут.

До строки, начинающейся с «pos» — инициализация. Со строки «click» — интерфейс. Между ними «движок». Проверка выигрыша вписана в «интерфейсную часть» — в конец длинного «win».

Да, вся логика возможных перемещений и их реализация содержится в шести выражениях.

Примерно вот этим годные современные языки программирования отличаются от негодных и от несовременных: они позволяют сосредоточится на решении задачи, а не на соблюдении всех программистских ритуалов.



(NM-1)-нашки.png



  • 1
Вообще-то из приведенного текста программы неискушенному читателю совершенно невозможно понять что он делает. Что никак не является признаком годного языка. Кроме того там куча каких-то загадочных функций. Они библиотечные? Тогда, прежде чем написать несколько строк программы, надо потратить гораздо больше времени на разобрательство в этих библиотеках и функциях. Или это самописные функции, текст которых ты не считаешь нужным приводить?

> Вообще-то из приведенного текста программы неискушенному читателю совершенно невозможно понять что он делает. Что никак не является признаком годного языка.

А на годном языке, типа, незнающие его всё равно всё поймут?

Не надо строить иллюзий: кому-то что-то понятно, потому что он эту часть знает. Если человек, например, не в курсе, что такое «циклы», то ему точно так же будет непонятно, если в коде будет какой-то там «for».

И если даже на картинке нарисовать какой-то прямоугольник со скошенными углами или типа того, то всё равно непонятно будет.

Но цикл for объяснять незнающему — особенно в плане того, как им вообще пользоваться — ощутимо дольше, чем все эти функции вместе взятые.


> Кроме того там куча каких-то загадочных функций. Они библиотечные?

Да.


> Тогда, прежде чем написать несколько строк программы, надо потратить гораздо больше времени на разобрательство в этих библиотеках и функциях.

Это быстрее, чем по сути их реализацию вручную писать. Ты понимаешь, что надо сделать, пишешь в гугле запрос и находишь, как эта функция называется. Я, собственно, так и сделал.

Если же ты, наоборот, читатель, то ставишь курсор на функцию, нажимаешь F1 и читаешь в справке, что она делает.

Edited at 2017-07-06 07:50 (UTC)

  • 1