Ежедневник 19Т
Автор: Владимир РуммоПоказать вам сложность программирования? Реальную! Всем кажется, что программирование это придумывания какого алгоритма. Типа три подскока, три прихлопа - и конкретный(желанный) результат на выходе. Хочу вас огорчить. Это так не работает и вообще-то это скатывание в кодирование. А шифровка и дешифровка является частным случаем "программирование" - это вот так полноценный алгоритм.
Поэтому я тяну так долго с программой Шашек на троих. Весь алгоритм их заключается в том... И я долго не мог найти нужную бесплатную функции в "программировании". Знаете она только практически звучит. Мне нужно было всего лишь возможность перемещать с помощью курсора или сенсоров на экранов фишечку шашек в производное место экрана. Это было в самом деле сложно!!!!! Обычные языки программирования(я учился программист в 90-х) это называли - ПОДКЛЮЧИТЬ БИБЛИОТЕКУ или графический модуль. Ну, типа рисование на мониторе векторное или растровое? Пиксельное не пиксельное... Но потом произошел хайп вокруг Инстаграм... Майнкрафт... И завершилось мессенджерами, где смс не отличима от... От чего? Кстати, да? От чего не отличимо? И там и там электронные сообщения написанные на мониторах технических устройств. И все как-то забыли что поверпойнт от фотошопа отличается только платностью и бесплатностью. Ну ладно моя статья не о том.
Но мой ежедневник именно о программировании. Короче в Скретче этот вопрос решен. Там объектно-ориентированное программирование и сцена с пикселями в декартовых координатах. Действие Скретч-программы происходит на сцене (англ. stage) размером 480×360 (условных) пикселей с центром координат в середине сцены.
А там прямой угол прямее некуда - только 90 градусов и всё. А для шашек на троих нужна "линия" в 1/3. В общем я программил ступеньками... Ни какой плавности и аналоговости(закруглённости, скруглённости).
В принципе прога Шашки на троих работала на 100% и ...При первом пункте... Ну вместо того что бы поле чертить на бумаге ... Оно всегда сохранено в проге. И если ты в живую с людьми... просто включаешь монитор и перемещаешь шашечки. правда мобильники узковаты. И прога, отточка проги под разный масштаб мониторов мобильников - вызывает глюки. И не очень кросиво. НО ЭТО ВСЁ же легче чем чертить поле для шашек на троих заново.
В общем. Второй пункт по шашкам на троих - это нотация. У меня в планах оставить возможность свободного перемещения фишек по полю, но что бы при попадании на чёрную ячейку всплывала подсказка - номер этой клеточки. Это в самом деле нужно, когда первый раз играешь шашки на троих идёт слом стереотипа и если не присматриваться, наплевать на нумерации столбов и ячеек, то ты собьётся! Шашки-шахматы на троих -это кривой столбец и строчка. Это основа. Столбец со строчкой переплетаются.
Я лет 5 пишу эту прогу. Это всё намного проще чем кажется. короче я хотел посчитать количество общих строчек... На тройной шахматной доске. Проще практически гляну. Ссылка туть - ссылка вот. так вот! Сколько у меня строчек? А? из скалки пикселей состоит доска? Не, если в классике 8х8 - стандартные 64 клеточки. То в шашках-шахматах на троих 32х3. Ну да, половина шахматной доски каждому игроку -96 ячеек. загвоздка в том что они косые-кривые и для этого их нужно на ещё более количество ячеек разбить.
Масштаб. От 138 до -156 по вертикали - ось тугрика обычно. От -204 до 74 по горизонтали - оська икса.
138-(-156)=294 и 74-(-204)=278 перемножаем? 81732 квадратиков всего. МАСШТАБ. И эти пиксели нужно подогнать по 96 клеточек. Ну, чёрно-белое шахматное... Ага, типа примерно 850 клеточек на шахматную ячейку? но это площадь. Извлечём квадратик? И добавим кружочек? примерно 30х30 пикселе в среднем одна ячейка. Почему в среднем. Потому что в шашках на троих клеточки могут меняться от квадратика до ромба... Я в проге вообще поиздевался и пару клеточек совсем изогнул и скривил.
Я ориентировался на клеточку со сторонами от 3х3 до 5х5. От 9 до 25 пикселей площадь. ОБРАТНЫЙ расчёт. А таких клеточек 96 и не больше, не меньше. От 9*96=864 до 25*96=2400 - вот такая разбежка площади черно-белого "квадратика" в пикселях. Напомню стартовое поле было 480х360, а мне нужен с него прямоугольный кусочек - 278х294. Остальное место для поясниловки и поля куда складывать съеденные шашки.
В 294 строчках от 8 до 16 ч/б клеточек. На практике вышло максимум 12!!! ПОТОМУ ЧТО ОСТАЛЬНЫЕ 4 КЛЕТОЧКИ НА ГРАНИЦЕ МЕЖДУ НОВОЙ И СТАРОЙ СТРОЧКОЙ ЗАВИСЛИ. короче я не знаю как эьл посчитать. в программе это просто строчки и в ней бы их нумеровать. Но зачем?
Если в квадратном шахматной ячейки нужно всего две координаты: нижний левый и верхний правый; то в ромбовидной ячейки: 5 прямоугольников с темеже нижние-левыми-верхние-правыми координатами. Сколько всего координат я записал? я не считал! и это только при игре по чёрным. Я же шашки на трои делаю,а они только по одному цвету ходят.
96 умножу-ка я в среднем на 5... Или ещё более округло 96=100 и это минимум 5 раз, потому что есть клеточка и в 9 строчек. Это максимум. Короче, примерно 500 пар координат ниж.лев-верх.прав указал. и это надо будет в один блок собрать. Плюс... перепроверка. я уже вижу кучу ошибок...
в общем вот такой был вчерашний день. но теперь будет легче. у меня есть шаблончик... а его подправлять легче чем с нуля создавать. Ну и первый пункт программирования ни кто не отменял - перетаскивать мышкой(пальцем) любую шашку на любом мониторе можно...