Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.02.2014, 18:14
Интересующийся
Отправить личное сообщение для Petesso Посмотреть профиль Найти все сообщения от Petesso
 
Регистрация: 06.02.2014
Сообщений: 13

Доступ к определенной точке двумерного массива некоректный
В общем, проблема заключается в следующем:
Создаю массив с помощью функции gen()
Добавляю в массив точку(предположительно с координатами 1;3) с помощью функции addPoint(1,3)
И потом вывожу на экран массив с помощью функции vis();

Получается что-то вроде

XXXXXXX
XXXOXXX
XXXXXXX
XXXXXXX
XXXXXXX

А хотелось бы

XXXXXXX
XXXXXXX
XXXXXXX
XOXXXXX
XXXXXXX

Как в массиве array[x][y] поменять местами x и y? Кроме как привыкнуть называть их по-другому.

function gen() {
	for(i=0; i < xLength; i++){
		array[i] = [];
		for(j=0; j < yLength; j++){
			array[i][j] = "X";
		}
	}
}

function vis() {
	for(i = 0; i < xLength; i++) {
		for(j = 0; j < yLength; j++) {
					arrayM = arrayM +array[i][j];
		}
	arrayM = arrayM + "<br>";
	}
}

function addPoint(x,y){
	array[x][y] = "O";
}
Ответить с цитированием
  #2 (permalink)  
Старый 21.02.2014, 18:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

У тебя в коде логика такая, что x - это индекс строки, а не колонки, как ты хочешь.

Обычно i - это строка, j - это колонка.
x - это колонка(горизонтальная ось), j - Это строка(вертикальная ось). А у тя все поперепутано.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 21.02.2014, 18:37
Интересующийся
Отправить личное сообщение для Petesso Посмотреть профиль Найти все сообщения от Petesso
 
Регистрация: 06.02.2014
Сообщений: 13

Тогда надо ковырять функцию gen()? Нет какой-нибудь замечательной приблуды, что "перевернет" массив?
Ответить с цитированием
  #4 (permalink)  
Старый 21.02.2014, 18:46
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Petesso
Нет какой-нибудь замечательной приблуды
Зачем? Просто исправь код, и не нужна никакая приблуда.

Поменяй местами xLength и yLength
И пиши array[y][x] в addPoint
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 21.02.2014, 18:52
Интересующийся
Отправить личное сообщение для Petesso Посмотреть профиль Найти все сообщения от Petesso
 
Регистрация: 06.02.2014
Сообщений: 13

danik.js, но в полной версии у меня еще есть куча функций связанных с конкретной точкой в массиве. Это только как пример. Я пока мирился с этим и писал всегда [y][x]. Но теперь нету больше сил. Всегда начинают течь из ушей мозги, когда дело доходит до написания каких-то точек. И фиг перепривыкнешь, ведь все годы обучения писал (x;y). И как перестроить массив я тоже понять не могу.
Ответить с цитированием
  #6 (permalink)  
Старый 21.02.2014, 19:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Транспонируй при выводе. Итерируй y, x вместо x, y
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 21.02.2014, 20:39
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Изначально не подумал вот и мучаешься. Надо было сразу строить массив правильно. Технически никакой разницы же нет.
function gen() {
    for(i=0; i < yLength; i++){
        array[i] = [];
        for(j=0; j < xLength; j++){
            array[i][j] = "X";
        }
    }
}
function vis() {
    for(i = 0; i < xLength; i++) {
        for(j = 0; j < yLength; j++) {
                    arrayM = arrayM +array[j][i];
        }
    arrayM = arrayM + "<br>";
    }
}
function addPoint(x,y){
    array[x][y] = "O";
}
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступ к элементу массива. jtjt1010 Общие вопросы Javascript 33 21.02.2014 09:51
Доступ к объекту массива Fronnt Общие вопросы Javascript 6 07.10.2013 23:04
Сортировка двумерного массива методом пузырька lammeR Общие вопросы Javascript 31 01.07.2012 20:48
Среднее арифметическое двумерного массива Тип_1 Общие вопросы Javascript 23 25.06.2012 00:33
Клик в определенной точке документа PeaceCoder Общие вопросы Javascript 3 28.01.2010 22:27