Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Интерактивная таблица (https://javascript.ru/forum/events/26189-interaktivnaya-tablica.html)

Archusha 29.02.2012 16:41

Интерактивная таблица
 
Прошу совета и выправление направления движения мыслей, по данному поводу:

Задача #1
Дано:
Есть таблица 10х10. Закрашенная в черный цвет.
Ячейку 1:1 окрасить ее в белый цвет. - назовем белый квадрат.
Кнопки курсора (лево, право, вверх,вниз)

Необходимо:
С помощью Кнопок курсора, "гонять" по таблице белый квадрат (естественно, там где он был, обратно закрашивается в черный).


Задача #2
Дано:
Готовая задача №1.
2 или более кнопок планируемых действий.

Необходимо:
Допустим белый квадрат находится на ячейки 5:5, при нажатие на одну из кнопок планируемых действий окрасить в серый цвет последующие N ячеек (направлением "к верху" таблицы)


Что планируется делать:
задача №1
Создать 2 мерый массив (равный полю), на сервере. Где каждая элемент массива может принимать значение 0 или 1. 0 - черный фон, 1- белый квадрат.
При нажатие на кнопку курсора передавать "направление" черех ajax на сервер, вычитать или прибавлять индекс в массиве в зависимости от "направления", и в полученном значение менять 0 на 1. И соответсвенно с помощью Ajax выдавать обновленную таблицу клиенту.

Вот сообственно дальше у меня затык. Если поможете буду очень счастлив )

Rootpassword 29.02.2012 16:53

И? Задача 1- вам слушатель нажатий кнопок, две переменные с позицией по X и Y, четыре кода клавиш в событии и стиль или класс задаете для выделенной ячейки, для предыдущей ячейки удаляете класс/стиль.
Нафига там сервер и ajax?

Archusha 29.02.2012 16:56

да нет, по первой задачки, все очень понятно.

меня больше волнует вторая) первая это придесловие

Rootpassword 29.02.2012 17:04

Так и для 2 зачем вам сервер и ajax? "вычитать или прибавлять индекс в массиве в зависимости от "направления", и в полученном значение менять 0 на 1"
можно и нужно делать js. Или я что-то пропустил, и вчера js разучился с двумерными массивами работать?

Archusha 29.02.2012 17:15

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

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

но это уже фигня.

Меня вот парит вторая задачка. Не совсем себе представляю, как с ней работать (понятно, что на стороне клиента будет меняться класс, стиль или еще чего). Но как обсчитать эти действия, для меня вопрос.

Надо поработать с матрицей, но мозг не хочет... уже...

Rootpassword 29.02.2012 17:26

Если вы именно так сделаете, то каждое движение пользователя будет отрабатываться секунду-другую. Вряд ли пользователи оценят, что ваш квадрат будет реагировать на нажатие клавиши с такой задержкой.

Archusha 29.02.2012 17:34

Rootpassword

Мы удаляемся от темы.

Я полностью поддерживаю, то что вы говорите. Но дабы поставить на этом точку:
1) Работать с этой таблицей будет 1-2 человека в локальной сети, на не загруженном железе;
2) Помимо этой таблицы, существуют дополнительные обвесы на данной странице, которые и без того сделают страницу тяжолой к ее полной выдаче. Пользователю наплевать сколько ему ждать 1 или 3 секунды;
3) Я уже упоминал, что это прилюдия и в последующей оптимизации передаваемые данные будут минимизированы.


Часовой пояс GMT +3, время: 00:30.