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 ★
()
Ответ на: комментарий от i-rinat

Да. я говно-кодер. И то, с маленьким уточнением: я не кодер.

zhekas ★
()
Последнее исправление: zhekas (всего исправлений: 2)
Ответ на: комментарий от zhekas

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

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

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

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

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

только в том примере у моей программы до второго этапа не дошло, а всё решилось ещё на первом

zhekas ★
()
Последнее исправление: zhekas (всего исправлений: 1)
Ответ на: комментарий от i-rinat

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

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

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

Всё также

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

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

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

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

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

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

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

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

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

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

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

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