Как Вы создали бы и взаимодействовали бы с сеткой как плата Судоку?

Попробуйте:

select id,sum(marks) as marks 
INTO TEST
from student
group by id

Используя пункт INTO , вы можете материализовать результат в таблице (это может быть также временная таблица). Есть несколько ограничений - столбцы должны иметь имя (псевдоним), и повторяющиеся имена не допускаются.

7
задан Glorfindel 21 February 2019 в 08:01
поделиться

5 ответов

Для такой абсолютно регулярной координатной сетки я создал бы подкласс UIView и имейте его, определяют, какая строка и столбец пользователь коснулся использования простого вычисления:

int touchedRow = 9 * touch.x / [self bounds].width;
int touchedCol = 9 * touch.y / [self bounds].width;

Я не вижу большого преимущества в создании 81 отдельного объекта в памяти, когда один объект был бы достаточен.

3
ответ дан 7 December 2019 в 10:09
поделиться

Я дурачился с игрой Судоку прежде, и я сделал линии сетки и рисунок числа в единственном представлении. Не из-за ограничений памяти (использующий единственное управление и допускающую повторное использование память ячейки не должна быть большая часть беспокойства), но потому что только требуется некоторая простая математика для выяснения местоположений сетки и чисел, и программирование представления будет легче сначала. Если позже в будущем Вы начинаете чувствовать себя разбитым с объемом рисования и кода обработки событий в Вашем классе представления, Вы могли бы хотеть сделать допускающий повторное использование объект ячейки, который делает большую часть работы, подобной UITableView.

Базовая анимация, конечно, работала бы здесь также при необходимости в анимации или нет. Плата Судоку, вероятно, не имела бы большой анимации, но если Вы делаете (возможно, скользящее поле 'выбора'?) это могло бы быть лучшим выбором.

1
ответ дан 7 December 2019 в 10:09
поделиться

Можно сделать это или с UIViews или с CALayers как подпредставления основного суперпредставления. Вам будут нужны по крайней мере 81 из них (один для каждого числа в сетке Судоку). Слои являются более легким весом и менее интенсивно использующий ресурсы, но представления имеют немного больше функциональности. То, которое Вы выбираете, зависит от того, что Вы пытаетесь сделать.

0
ответ дан 7 December 2019 в 10:09
поделиться

Сетка является средством просмотра содержания, не хранения представления. В конечном счете Ваша сетка сделана из ячеек, которые имеют содержание, и для этого Ваш базовый объект модели, возможно, лучше всего воплощен ячейкой. Существует много способов разработать базовую систему хранения для игры Судоку, и более сложная задача, конечно, ляжет в поколении загадок. Однако совет взять от этого не состоит в том, чтобы определить Ваше основанное на модели о том, как это появляется на экране - слой представления является полностью отдельным и так делает что-то как хранение платы, двухмерная антенная решетка была бы плохой идеей.

0
ответ дан 7 December 2019 в 10:09
поделиться

Была статья где-нибудь о том, как реализовать решатель Судоку. Я думаю, что это использовало структуру данных как это:

  • сетка имеет 81 ячейку
  • ячейка имеет три состава группы: один столбец, одна строка и одно поле
  • у группы есть 9 ячеек (ссылки)

Ячейка имеет еще некоторые свойства, в зависимости от того, что Вы хотите сделать со структурой:

  • значение
  • a hidden флаг (для игры)
  • ряд возможных значений (для решателя)
0
ответ дан 7 December 2019 в 10:09
поделиться