Привет.
А зачем вообще перетаскивание? Это некрасиво и неудобно.
Лучше сделать панель кораблей. На панели клацнул, выбрал корабль. Потом наводишь курсор на поле, и под твоим курсором на поле в клетках отображается выбранный корабль. По щелчку на поле корабль закрепляется. По ПКМ допустим можно его крутнуть на 90 градусов.
+ можно сделать подсветку краев выбранных клеток, в которые мостится корабль, красными, если корабль ставится в недопустимое место и зелеными, если в допустимое
По поводу данных в API то в него вообще можно банально передавать обыкновенный двумерный массив
0 0 0 3 3 3
0 2 0 0 0 0
0 2 0 5 0 4
0 2 0 5 0 4
0 0 0 0 0 0
6 0 1 1 1 1
И то он нужен только когда игра инициализируется, а потом передаешь координаты точки в которую клацнул для получения ответа. Зачем БД — понятия не имею. Можно правда все ходы записывать что бы партию можно было сохранить/загрузить, но вроде в задании такого нет.