Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508

Решение японских кросвордов в Excel

17.03.2015, 15:38. Показов 4943. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для решения японских кросcвордов использую два поля.На первом поле располагаю горизонтальные
прямоугольники,а на втором - вертикальные.Поочередно двигая прямоугольниками составляется рисунок.
Хотел составить макрос для первоначальной расстановки прямоугольников на полях,но даже не могу
представить с какой стороны подступиться.
Подскажите пожалуйста
1.Как задать размер прямоугольника,его длину или высоту, согласно цифры в соответствующей ячейке
2.Как расположить прямоугольники на листе согласно таблицы:
в ряду
в столбце
Вложения
Тип файла: xls японский.xls (98.5 Кб, 34 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.03.2015, 15:38
Ответы с готовыми решениями:

Решение японских кроссвордов
Столкнулся с багом в анализе линии, если в ней кроме неизвестных, есть еще пустые значения. #include <conio.h> #include...

Вывод японских иероглифов в консоль
Всем привет! Хотелось бы узнать как выводить в консоль японские символы. Я сделал так: using System; using...

Выгрузка японских свечей на график
Недавно нашел пример на C# NET 4.x WPF, "Выгрузка свечей на График chart Open Source https://smart-lab.ru/blog/225521.php Я немного...

15
496 / 130 / 19
Регистрация: 30.03.2010
Сообщений: 224
17.03.2015, 17:52
это только заготовка
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Option Explicit
Const colFirst As Long = 12   'первый столбец кроссворда
Const rowFirst As Long = 11   'первая строка кроссворда
Const colCount As Long = 25   'кол-во столбцов кроссворда
Const rowCount As Long = 35   'кол-во строк кроссворда
Const dX As Double = <ширина> 'ширина одной клетки
Const dY As Double = <высота> 'высота одной клетки
Const X0 As Double = <число>  'левый верхний угол кроссворда
Const Y0 As Double = <число>  'левый верхний угол кроссворда
 
Sub NN()
Dim I As Long
Dim J As Long
Dim X As Long
Dim Y As Long
With ActiveSheet
Y = Y0
For I = rowFirst To rowFirst + rowCount - 1
    X = X0
    For J = 1 To colFirst - 1
        If .Cells(I, J) <> "" Then
           .Shapes.AddShape msoShapeRectangle, X, Y, dX * .Cells(I, J), dY
           X = X + dX * (.Cells(I, J) + 1)
        End If
    Next
    Y = Y + dY
Next
End With
End Sub
1
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
17.03.2015, 17:57  [ТС]
Спасибо за отклик.Буду разбираться
0
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
23.03.2015, 13:31  [ТС]
petr-sev,спасибо за помощь.Вот что получилось. Вариант с кнопками чуть неудобен,зато движение по прямой.
А можно-ли сделать так,что бы в левом кросворде фигуры перетягивались только по горизонтали,а в правом только по вертикали?
Вложения
Тип файла: zip пример япон сетка.zip (29.8 Кб, 14 просмотров)
0
496 / 130 / 19
Регистрация: 30.03.2010
Сообщений: 224
23.03.2015, 14:23
не представляю, как это сделать
единственно, что могу посоветовать - таскать прямоугольники, удерживая Shift
1
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
23.03.2015, 21:50
OLEGOFF, а вам принципиально прямоугольники таскать? Почему не сделать закрашивание ячеек или диапазонов щелчком мыши или выделением? Посмотрите файл, там на первой странице, рядом с вашим кроссвордом, я сделал такой же упомянутым выше способом. Макрос занимает 5 строк. Щелчок мыши по белой клетке окрашивает ее в синий цвет, по синей - убирает окраску. Выделенный диапазон также окрашивается в синий цвет, повторное его выделение убирает окраску. Единственный, на мой взгляд, недостаток - то, что выделив ячейку (и окрасив ее этим в синий цвет) нельзя, щелкнув по ней сразу, вернуть бесцветность. Поэтому добавил такую возможность двойным щелчком. Макрос работает и на первом, и на втором листе. Так что можете попробовать - вдруг понравится
Вложения
Тип файла: xls японский 2.xls (90.5 Кб, 24 просмотров)
1
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
23.03.2015, 22:21  [ТС]
chumich,спасибо за внимание к моей теме.Над подобным методом раскраски я думал,но так много времени будет уходить на первоначальную расстановку.Желательно,что бы закраска шла автоматически,согласно цифрам.
Во вторых желательно,что бы щелкнув на ячейке рядом с закрашенной группой она синела,а синяя на другом конце этой группы белела.Тогда не надо будет следить за длинной каждой группы. Аналогично,только по вертикали во втором поле.Но увы я не силен в этом. Буду благодарен за любые подсказки.
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
23.03.2015, 22:49
Цитата Сообщение от OLEGOFF Посмотреть сообщение
Желательно,что бы закраска шла автоматически,согласно цифрам
Какова цель?
Вы хотели сделать автоматическую решалку японских кроссвордов или облегчить себе ручное решение?

Делал достаточно давно решалку японских кроссвордов в Excel, может пригодится.
Вложения
Тип файла: rar JCW.rar (111.2 Кб, 40 просмотров)
1
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
24.03.2015, 14:21  [ТС]
Автоматическая решалка у меня есть,там не интересно.Хочу просто облегчить решение.

Добавлено через 15 часов 28 минут
m-ch,протестировал ваши программки(и не только ваши). К сожалению все споткнулись на этом небольшом кроссворде.
А вручную своим способом я его решил.Это не упрек,а просто факт.Может быть подробный "разбор полетов" подскажет в чем причина и толкнет мысль на доработку алгоритма решения. Спасибо за помощь.С уважением,Олег.
Вложения
Тип файла: zip JCW3 big17.zip (47.6 Кб, 16 просмотров)
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
24.03.2015, 18:02
Решил своей программой, см. картинку

Бывают кроссворды, которые либо не имеют единственного решения,
например, кроссворд составленный по маске:

Х_
Может имет 2 верных решения.

Либо кроссворд составлен таким образом, что невозможно найти решение стандартным алгоритмом поиска решения.
В данном случае необходимо использовать метод проб и ошибок, и "откатываться" назад, если выбрана не верная ветка решения.
Миниатюры
Решение японских кросвордов в Excel  
1
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
24.03.2015, 18:06  [ТС]
Да,всё верно. Только на средних лапах не совпадает по краям.
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
24.03.2015, 18:22
Ну тогда так.
Можно будет прикрутить проверку на валидность решения, если используется "подгонка" и автоматизировать данный процесс.
Миниатюры
Решение японских кросвордов в Excel  
1
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
24.03.2015, 22:29
Лучший ответ Сообщение было отмечено OLEGOFF как решение

Решение

Дополнил файл "подбором", это позволяет найти решение подобных кроссвордов (правда времени на решение может быть затрачено очень много)
Вложения
Тип файла: rar JCW4.rar (69.4 Кб, 9 просмотров)
2
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
25.03.2015, 08:08
Лучший ответ Сообщение было отмечено Апострофф как решение

Решение

Немного ускорил решение "подбором"
(Предыдущий файл можно удалить)
Вложения
Тип файла: rar JCW5.rar (69.3 Кб, 185 просмотров)
2
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
26.03.2015, 00:17  [ТС]
chumich я попробовал сделать кроссворд методом закрашивания ячеек.В принципе вроде удобно получается.
Двойным кликом по белому полю справа налево строится фигура. При двойном клике по фигуре она
передвигается вправо или влево в зависимости от того по какой части ее кликнули. Только код корявенький
получился. И нет еще защиты от слияния фигур.
Помогите пожалуйста довести до ума.Буду всем благодарен.
Вложения
Тип файла: xls проба.xls (42.0 Кб, 19 просмотров)
0
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
26.03.2015, 08:30  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 
  n = 25                       'максимальное число перебора ячеек,будет потом зависеть от размера поля
 For i = 1 To n
  If Selection.Interior.ColorIndex = 23 Then
    ActiveCell.Offset(0, 1).Select
    r = i
  End If
 Next i
  
    ActiveCell.Offset(0, -1).Select
 For i = 1 To n
  If Selection.Interior.ColorIndex = 23 Then
    ActiveCell.Offset(0, -1).Select
    l = i
  End If
 Next i
  
  If r > l - r Then
   Selection.Interior.ColorIndex = 23
     ActiveCell.Offset(0, l).Select
        Selection.Interior.ColorIndex = 0
  Else
     ActiveCell.Offset(0, 1).Select
        Selection.Interior.ColorIndex = 0
     ActiveCell.Offset(0, l).Select
        Selection.Interior.ColorIndex = 23
  End If
           
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2015, 08:30
Помогаю со студенческими работами здесь

Алгоритм решения японских кроссвордов
Сразу к делу - для тех кто не знает что такое ЯК - википедия...

Программа для решения японских кроссвордов
Хочу сделать программку для решения в ней японских кроссвордов. Не для автоматического решения, а именно с возможностью рисовать кроссворд,...

Баг с программой по решению японских кроссвордов
Суть проблемы изложена в комментариях исх. кода. Тем более вам все равно придется там ХОРОШО покопаться. - Win7 SP1 Сборка 7601...

Регулярное выражение для японских иероглифов
Нужно регулярное выражение, определяющее японские иероглифы. Вероятно на основе диапазона кодов символов. Не страшно, если в диапазон...

Программа для решения японских кроссвордов
Ни у кого нет рабочей программы для решения японских кроссвордов(черно-белых) на С++? Желательно,что бы решалось не перебором. Но если и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru