Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.09.2010, 16:59
Интересующийся
Отправить личное сообщение для Aspiring Посмотреть профиль Найти все сообщения от Aspiring
 
Регистрация: 23.08.2010
Сообщений: 27

Обьясните логику цикла для массива
Цель: если в любом ряде число элементов со значением X достигнет трёх выдать сообщение.

for (var n=0; n<(rows*cols); n++){
	if (s1[n] == 'X') k1++;
	if (n == cols) k1 = 0; 
	if (k1 == 3) alert('win'); 
}


Цикл запускается через onclick. Допустим ряды воображаемы.

По моей логике после каждого клика цикл начинает подставлять значения с 0 до (rows*cols). Допустим в первом ряде 2 "Х". Идем далее и достигли значения cols, обнулили. В следующем ряде опять 2 "Х". По логике ничего не должно выводится поскольку значение k1 еще не достиг 3, но выводится.

Где ошибка моего суждения?
Ответить с цитированием
  #2 (permalink)  
Старый 21.09.2010, 17:01
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Рабочий пример выложите.
Ответить с цитированием
  #3 (permalink)  
Старый 21.09.2010, 17:04
Интересующийся
Отправить личное сообщение для Aspiring Посмотреть профиль Найти все сообщения от Aspiring
 
Регистрация: 23.08.2010
Сообщений: 27

var n, t, rows=5, cols=5, k=0, k1=0, z;
var a = [];
var s1 = [];

for (var n=0; n<(rows*cols); n++) {
a[n] = document.createElement('input');
a[n].name = n;
a[n].onclick = function() {
	t = event.target || event.srcElement;
	if ((t.value == '') && (k % 2 ==0)) {t.value = 'X'; k++;}; 
	if (t.value=='X') {z=t.name; s1[z]='X';}
	for (var n=0; n<(rows*cols); n++){
		if (s1[n]=='X') k1++;
		if (n==cols) k1=0; 
		if (k1==3) alert('win'); 
	}
}


Вот. Кажется нигде не ошибся

Последний раз редактировалось Aspiring, 21.09.2010 в 17:31.
Ответить с цитированием
  #4 (permalink)  
Старый 21.09.2010, 17:15
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Минимальный пример, чтобы проиллюстрировать вашу проблему, html не нужен, достаточно инициализировать переменные, используемые в первом сообщении.
Ответить с цитированием
  #5 (permalink)  
Старый 21.09.2010, 17:23
Интересующийся
Отправить личное сообщение для Aspiring Посмотреть профиль Найти все сообщения от Aspiring
 
Регистрация: 23.08.2010
Сообщений: 27

Обновил код
Ответить с цитированием
  #6 (permalink)  
Старый 21.09.2010, 17:29
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Aspiring
table.appendChild(a[n]);
Блин, ну какой table. Сделайте вы код, который можно вставить в консоль и выполнить. У вас же не с DOM проблемы.
Ответить с цитированием
  #7 (permalink)  
Старый 21.09.2010, 17:38
Интересующийся
Отправить личное сообщение для Aspiring Посмотреть профиль Найти все сообщения от Aspiring
 
Регистрация: 23.08.2010
Сообщений: 27

В чем Вы запускаете? Чтобы заранее знать правильно ли я сделал.

Чтобы воспроизвести то, что я хочу нужно использовать onclick. Одним JS не обойтись.

Вылаживать и HTML и JS?
Ответить с цитированием
  #8 (permalink)  
Старый 21.09.2010, 17:38
Интересующийся
Отправить личное сообщение для Aspiring Посмотреть профиль Найти все сообщения от Aspiring
 
Регистрация: 23.08.2010
Сообщений: 27

Как создавать подобные сообщение:
Помогите плз innerHTML ?
Ответить с цитированием
  #9 (permalink)  
Старый 21.09.2010, 17:54
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

http://javascript.ru/formatting
Ответить с цитированием
  #10 (permalink)  
Старый 21.09.2010, 17:54
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

[ js run ][ /js ]
[ html run ][ /html ]
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для любителей соревноваться на логику! MininAS Ваши сайты и скрипты 16 20.01.2011 01:13
value для элемента массива Aspiring Общие вопросы Javascript 10 05.09.2010 17:52
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53