Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2016, 20:47   #1
Chips186
Новичок
Джуниор
 
Регистрация: 16.12.2016
Сообщений: 2
По умолчанию Создать таблицу и закрасить её ячейки так, как это показано на приложенном рисунке

Буду вам очень благодарен если вы поможете мне написать скрипт на это задание. Нужно создать таблицу 10 на 10. Высота и ширина ячейки 50 пикселей и закрасить таблицу так как показана на рисунке ниже:

Последний раз редактировалось Вадим Мошев; 16.12.2016 в 21:31.
Chips186 вне форума Ответить с цитированием
Старый 16.12.2016, 21:55   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Напишите функцию, которая из входного массива будет формировать строку <tr> с элементами <td>. Создаётся элемент с помощью document.createElement(‘имя тега’), подцепляется в конец с помощью имяСозданногоЭлемента.appendChild(п одцепляемыйЭлемент).

Если текущий элемент массива равен 0, то красьте ячейку в розовый, иначе (если, например, 1) – в зелёный. После создания элемента подцепляйте его к созданной строке и возвращайте её через return.

В основной программе объявите массив и задайте ему начальное значение как
Код:
0 0 0 1 0 0 0 1 0 0
Далее в цикле, который надо выполнить 10 раз, делайте вот что:
1. Циклически сдвигайте массив на одну позицию влево (используйте методы shift и push)
2. Вызывайте написанную ранее функцию, которой будете передавать такой массив, чтобы получить нужную строку
3. Подцепляйте полученную строку заранее созданной таблице.

Всё.
Вадим Мошев вне форума Ответить с цитированием
Старый 17.12.2016, 13:50   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

https://jsfiddle.net/naiveMan/hr7n9s9t/

Вадим Мошев, неправильно ты, дядя Федор, бутерброд ешь...
Неужели не проходил стандартные задачи на диагонали матриц? Или сраные шахматы никогда не писал? Ход слона/ферзя?))

пс. У меня там очепятка в массиве с условиями, думаю ТС сам разберется.
ппс. Через деление на модуль можно отказаться от исходного массива вовсе — получится решение еще изящней
upd: https://jsfiddle.net/naiveMan/hr7n9s9t/1/ — вот, нормальное, взрослое решение.
Alar, верни репу!

Последний раз редактировалось Naive; 17.12.2016 в 14:02.
Naive вне форума Ответить с цитированием
Старый 19.12.2016, 21:37   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Первый твой код не курил - курил второй код. Впрочем, курить там надо всего лишь одну строку, а именно:
Код:
    if ( !( (i + j-start)%distance ) ) {
Всё остальное понятно по умолчанию. Да, твой код выглядит изящнее.


Цитата:
Сообщение от Naive Посмотреть сообщение
Неужели не проходил стандартные задачи на диагонали матриц?
Нет. Как-то не было необходимости.


Цитата:
Сообщение от Naive Посмотреть сообщение
Или шахматы никогда не писал?
Шахматы, как таковые, тоже не писал, лишь только рисовал шахматное поле. В общем-то, благодаря такому опыту, мне удалось понять твою строку. Я бы мог разбить её на несколько частей:
1. i+j -> адресация ячеек (кстати, если у словии лишь проверять эту сумму на чётность, то мы как раз и получим шахматное поле)
2. От этого вычитаем start -> позиция, начиная с которой мы будет вести отсчёт в первой (точнее, нулевой) строке таблицы.
3. Получение остатка от деления на расстояние между "полосами" -> это для получения периодичности, повтора полос.

Скажи, у меня всё верно?
Вадим Мошев вне форума Ответить с цитированием
Старый 20.12.2016, 00:09   #5
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
1. i+j -> адресация ячеек (кстати, если у словии лишь проверять эту сумму на чётность, то мы как раз и получим шахматное поле)
2. От этого вычитаем start -> позиция, начиная с которой мы будет вести отсчёт в первой (точнее, нулевой) строке таблицы.
3. Получение остатка от деления на расстояние между "полосами" -> это для получения периодичности, повтора полос.

Скажи, у меня всё верно?
Да, все так.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
javaScript помогите пожалуйста написать код dahnik JavaScript, Ajax 1 28.06.2016 22:25
Написать программы JavaScript hardprogramm JavaScript, Ajax 10 04.03.2016 20:28
JavaScript написать скрипт Ann2807 JavaScript, Ajax 2 29.05.2013 11:24
Нужно написать программу на JavaScript LesO Фриланс 3 25.12.2012 16:22
Видеоплеер написать javascript Ёжик в тумане JavaScript, Ajax 3 03.07.2012 09:00