PA3UJIb писал(а):
Есть предложение (может оно и запоздалое, но я только вот буквально сейчас донес архив с ЖапанКроссвордс до Виндовой машины) - сделать так, чтобы при нажатии на цифру в стоблце или строке при условии, что нужное кол-во клеток там [в строке/столбце] уже закрашено, точки ставились сами.
Распиши поподробнее, плиз - я заинтересовалсё.
Но если я всё правильно понял, то ты предлагаешь читерство. Аль нет?
PA3UJIb писал(а):
Да и на нажатие Clear All надо бы чтоб все очищалось, а не только поле
Стоп, а ЧТО не очищается?
Микс писал(а):
Научите их разгадывать, плз. Давно хотел научиться.
Как решать японские кроссворды
Для начала расскажу, что из себя представляет японский кроссворд.
Обычный японский кроссворд - это чёрно-белая картинка, состоящая из клеточек (чёрных или белых). К примеру:
На данном рисунке изображён гриб, если не понятно.
Это изображение зашифровано особым образом: слева от рисунка и над ним находятся области (обведены красным) с информацией о рисунке:
Информация о рисунке представлена в виде чисел,
показывающих длины непрерывных полосок из чёрных квадратиков.
Посмотрите на условие: та её часть, что расположена
над кроссвордом, показывает информацию о полосках из чёрных квадратиков, идущих
по вертикали. А в той части области информации, что находится слева от рисунка – информация о длине
горизонтальных чёрных полосок. Логично, правда?
Поясню. Рассмотрим два вышеизложенных рисунка. Даю маячок: гриб на самой верхней картинке и есть ответ на вышепоказанный кроссворд.
Таким образом, сверху – ответ, т.е. то, что в конечном итоге получится при разгадывании, а снизу – условие.
Взгляните в область информации о второй по счёту горизонтальной строчке рисунка. Там стоит лишь одно число – «11». Это значит, что где-то в этой строчке кроссворда находятся одиннадцать подряд идущих закрашенных квадратиков. Посмотрите на картинку с ответом и убедитесь – так оно и есть.
Но не зная ответа (ну, «если бы мы играли не по-нарошку»
), мы не можем сказать, где именно, в строчке из 20-ти клеток, расположены эти 11 закрашенных квадратов – они могут быть и в начале строки, и в конце, а может и где-то в середине.
Что же делать?
Включить моск!
Попробуем располагать эти 11 квадратиков в строчке из 20-ти клеток разными способами.
Поставим их в начало строки:
Или в конец строки:
Таких двух «крайних» подстановок достаточно, чтобы увидеть, что во всех случаях, как бы мы не расположили эту полоску из 11 закрашенных квадратиков, есть две клеточки посередине строки, которые
в любом случае будут закрашенными.
Вот их и надо без сомнений зарисовать:
Если попробовать применить тот же метод к первой строчке кроссворда, где, судя по условию, находится полоска лишь из 5-ти квадратиков, то располагая их по-разному, легко убедиться, что 100%-но закрашенных клеток тут уже не будет, как в случае с более длинной 11-тиквадратиковой полоской. Так что не везде такой метод прокатит.
Идём дальше. Рассмотрим 3-ю строчку. Там должно быть уже 2 полоски – одна длиной в 9 квадратиков, и другая, в 4. Та, что длиной в 9, находится левее той, что в 4 (в условии цифры стоят в том же порядке, что и полоски на рисунке
). Но вот сколько расположено незакрашенных клеток между ними – неизвестно.
Как минимум одна пустая клетка должна разделять эти полоски закрашенных квадратиков, иначе в условии было бы не два числа «9» и «4», а одно – «13».
Попробуем по аналогии применить тот же метод, что и с полоской в 11 клеточек.
Расположим две полоски максимально левее:
А теперь - максимально правее:
Тут уже нужно быть особо внимательным – нельзя бездумно закрашивать все те клетки, что чёрные в обоих случаях! Нужно запомнить, какие клетки какой полоске (9-ке или 4-ке) принадлежат. Если в обоих случаях некоторые клетки
одной и той же полоски закрашены – только тогда можно их смело зарисовывать! Вот, к примеру, 4-ка в обоих случаях не имеет «клеток пересечения», в то время как для 9-ки можно смело закрасить аж 3 клетки:
Если так Вам кажется сложно, рассматривайте обе полоски по отдельности. К примеру, возьмите в рассмотрение полоску из 9-ти квадратиков. Для этого расположите 4-ку так, чтобы для 9-ки было как можно больше пространства на «болтания в стороны». Т.е. 4-ку надо запихнуть в конец строки. Учитывая, что между ней и 9-кой должна быть как минимум одна отделяющая их пустая клетка, отметим и 4-ку, и эту клетку:
Ну вот. В оставшемся свободном пространстве будем «болтать» нашу полоску из 9-ти квадратиков:
Поскольку таким способом мы рассмотрели отдельно лишь 9-ку, то и закрашивать нужно совпавшие
для 9-ки в обоих случаях квадратики.
Это будут те же 3 клетки, что и в предыдущем способе:
Раз уж мы начали рассматривать по отдельности каждую полоску, то теперь, когда с 9-кой решили, надо рассмотреть аналогичным образом и 4-ку. Т.е. теперь мы должны запихнуть девятку максимально
влево, пропустить после неё одну клетку, и в оставшемся пространстве располагать разными способами уже
4-ку. Ну, я этого делать не буду, посикоку этот процесс аналогичен только что рассмотренному, но заранее скажу, что клеток пересечения для 4-ки, в отличие от 9-ки, не будет.
Итак, как начать разгадывать японский кроссворд, я рассказал. Для начала этого достаточно.
Что такое японский кроссворд и как он устроен, что значат волшебные циферки на полях – надеюсь, стало понятно. Это главное. Остальное Вы способны
логически решить сами.
Так что удачи!
З.Ы.: рассмотренный кроссворд – это кроссворд «№1» в моей программе. Он самый простой, так что можете поучиться на этом примере.