LINUX.ORG.RU

Что не так, или всё так?

 


0

2

Как то давно я задумал проект и реализовал его. Назвал его jcp. jcp - это программа, которая может по записям японского кроссворда определить рисунок. Но вот проблема, которую я давно уже не могу исправить. Эта программа не может найти большой рисунок, и я незнаю точно в чём проблема. И за всё время я не нашёл решения. На github есть файлы для примера. Например

./jcp heart
Выведет текстовые символы рисунка. Этот рисунок можно посмотреть с помощью другой программы show_jcp, пример
./show_jcp ren
Пробел меняет цвет, для удобства просмотра.
Вот ссылки на проекты. https://github.com/xverizex/jcp https://github.com/xverizex/show_jcp Может кто подскажет чего хорошего. Как решить проблему, может есть где ошибка?

Ответ на: комментарий от zhekas

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

u0atgKIRznY5
() автор топика
Ответ на: комментарий от u0atgKIRznY5

Моих рук.

Костяк программы писался ещё в студенчиские годы больше 10 лет назад (кстати тоже на паскале). Так что с точки зрения оформления (но не алгоритма) говнокод дичайший. Переписать руки не доходят

zhekas
()
Ответ на: комментарий от Jopich1

Могу, а стоит ли? Маленькие картинки показывает. Неохото, но не ужели придётся проверять, я делал с выводом вариантов и всё работало.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от zhekas

А как вы представляете решение японского кроссворда в программе. У меня уже понятно, перебирает все варианты.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от u0atgKIRznY5

Если вкратце, то решение состоит из двух этапов.

1) Логический анализ строк (колонок). Берем строку и анализируем, есть в ней клетки, которые точно можно закрасить (черным или белым). Так бежим по всем строкам, затем по всем колонкам. И повторяем до тех пор, пока у нас закрашиваются клетки.

2)После того, как 1 этап закончили, а незакрашенные клетки остались. Находим незакрашенную клетку и красим в белый цвет и выполняем этап 1. Если выявилось несоответствие, то перекрашиваем в черный и снова выпоняем этап 1. Если остались незакрашенные клетки, то снова выполняем этап 2. И т.д.

zhekas
()
Ответ на: комментарий от zhekas

Ну на самом деле мне завидно. Чтобы написать столько кода, причём работающего, нужно обладать недюжинными внимательностью и терпением. Мне такого не хватает.

i-rinat ★★★★★
()
Ответ на: комментарий от zhekas

Находим незакрашенную клетку и красим в белый цвет и выполняем этап 1.

Кстати вот про это я и говорил. Ты же делаешь гипотезу, а потом её проверяешь. В твоих терминах я остановился на этапе 1.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Да ладно, не так там уж и много кода.. Когда я себе подобный решатель писал лет 13 назад было ещё хуже.. борланд паскаль, только-только длинную арифметику освоил, ноль понятий о структурном программировании, не говоря уже об объектном... Жаль код утерян навсегда. Хотя формула количества вариантов линий в голове осталась навсегда, не смотря на то что пользы от неё ноль :)

FeyFre ★★★★
()
Ответ на: комментарий от u0atgKIRznY5

Ты как до этого додумался?

Всё также

Порешай вручную. Выработай свою технику. И попытайся перевести её в алгоритм для компьютера.

Но при этом, первый этап (логический анализ) написался за две недели и остаётся практически неизменным. А вот второй этап (гипотезы) всё ещё развивается.

zhekas
()
Последнее исправление: zhekas (всего исправлений: 1)

Ура! Получил письмо от xakep, что я занял третье место в конкурсе хакерский лайфхаков, с материалом о своей программе rfcreader! В подарок подписка на месяц.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от XMs

Может, на неделе гляну, если не забуду

Ну что посмотрел, или мне удалять из репозитория. Ты будешь смотреть или нет?

u0atgKIRznY5
() автор топика

Ну перл же ...ну или край Го...

anonymous
()
Ответ на: комментарий от XMs

Я убрал с репозитория. Упс. Я нигде не оставил код, его теперь нет.

u0atgKIRznY5
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.