Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.05.2013, 06:36
Интересующийся
Отправить личное сообщение для Денис Никитин Посмотреть профиль Найти все сообщения от Денис Никитин
 
Регистрация: 27.05.2013
Сообщений: 10

matrix - нужна помощь
Я только начал изучать, нужна ваша помощь друзья!

матрица готова, мне надо лишь раскрасить один div на ней и заставить его перемещаться при нажатии стрелок на клаве.
Зарание всем спасибо!

//
// Создание матрицы.
//
function createMatrix()
{
var matrix = document.getElementById('matrix');
var n = 20 * 20;

for (var i = 0; i < n; i++)
{
var div = document.createElement('div');
div.className = 'cell';
matrix.appendChild(div);
}
}

//
// Чтение ячейки матрицы.
//
function getCell(row, col)
{
// Функция принимает координаты ячейки
// должна вернуть true, если она закрашена,
// false, если не закрашена.

}

//
// Установка ячейки матрицы.
//
function setCell(row, col, val)
{
// Функция принимает координаты ячейки
// если , закрашивает ячейку,
// иначе убирает закраску.


}

//
// Точка входа.
//
window.onload = function()
{
createMatrix();




}
Ответить с цитированием
  #2 (permalink)  
Старый 27.05.2013, 08:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,138

Внимание, вопрос! (звучит гонг) (с)
Ответить с цитированием
  #3 (permalink)  
Старый 27.05.2013, 09:34
Интересующийся
Отправить личное сообщение для Денис Никитин Посмотреть профиль Найти все сообщения от Денис Никитин
 
Регистрация: 27.05.2013
Сообщений: 10

Сообщение от ksa Посмотреть сообщение
Внимание, вопрос! (звучит гонг) (с)
Да ну я с 5 утра сижу и написал кое что но не получается


/*Создаём переменные*/

var color = 'red';
var x = 10;
var y = 10;






//
// Создание матрицы.
//
function createMatrix()
{
var matrix = document.getElementById('matrix');
var n = 20 * 20;

for (var i = 0; i < n; i++)
{
var div = document.createElement('div');
div.className = 'cell';
matrix.appendChild(div);
}
}

//
// Чтение ячейки матрицы.
//
function getCell(row, col)
{
// Функция принимает координаты ячейки
// должна вернуть true, если она закрашена,
// false, если не закрашена.

}

//
// Установка ячейки матрицы.
//
function setCell(row, col, val)
{
// Функция принимает координаты ячейки
// если , закрашивает ячейку,
// иначе убирает закраску.


}

/*функция обработки при нажатии на клаву*/

document.onkeydown = function(event){
event = (event) ? event : window.event;

switch(event.keyCode){
case 37:
setCell(x, y);
y--;
setCell(x, y, color, true);
break

case 38:
setCell(x, y);
x--;
setCell(x, y, color, true);
break

case 39:
setCell(x, y);
y++;
setCell(x, y, color, true);
break

case 39:
setCell(x, y);
x++;
setCell(x, y, color, true);
break





}

}
function var_dump(obj)
{

var s = '<h1>' + p + obj + '</h1>'
s += '<li><b>' + p + '</b> : ' + obj[p] + '</li>';
s += '</ol>';
window.document.body.innerHTML =S;

}



//
// Точка входа.
//
window.onload = function()
{
createMatrix();
setCel(x, y, color, true);



}
Ответить с цитированием
  #4 (permalink)  
Старый 27.05.2013, 09:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,138

Сообщение от Денис Никитин
но не получается
Что именно?

P.S.
Тестовый пример нужно делать полностью. От огрызков нет толка...
Ответить с цитированием
  #5 (permalink)  
Старый 27.05.2013, 09:46
Интересующийся
Отправить личное сообщение для Денис Никитин Посмотреть профиль Найти все сообщения от Денис Никитин
 
Регистрация: 27.05.2013
Сообщений: 10

это весь код
Ответить с цитированием
  #6 (permalink)  
Старый 27.05.2013, 09:48
Интересующийся
Отправить личное сообщение для Денис Никитин Посмотреть профиль Найти все сообщения от Денис Никитин
 
Регистрация: 27.05.2013
Сообщений: 10

не закрашивается див и в консоли выводит ошибку : ReferenceError: setCel is not defined
[Прерывать на этой ошибке]

setCel(x, y, color, true);
Ответить с цитированием
  #7 (permalink)  
Старый 27.05.2013, 10:18
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,138

Сообщение от Денис Никитин
это весь код
А нужно всю страницу...

Сообщение от Денис Никитин
в консоли выводит ошибку : ReferenceError: setCel is not defined
Так оно и есть.
Ну нет у тебя того setCel...
Найди отличие
Сообщение от Денис Никитин
function getCell(row, col)
и
Сообщение от Денис Никитин
setCel(x, y, color, true);
Ответить с цитированием
  #8 (permalink)  
Старый 27.05.2013, 10:43
Интересующийся
Отправить личное сообщение для Денис Никитин Посмотреть профиль Найти все сообщения от Денис Никитин
 
Регистрация: 27.05.2013
Сообщений: 10

спасибо, но всё равно ошибка...
Ответить с цитированием
  #9 (permalink)  
Старый 27.05.2013, 15:09
Интересующийся
Отправить личное сообщение для Денис Никитин Посмотреть профиль Найти все сообщения от Денис Никитин
 
Регистрация: 27.05.2013
Сообщений: 10

ну вот вроде всё работает, но и опять это "НО"
когда доходит до стенки матрици в консоли ошибки и чо то хвост у неё большой.

подскажите кто знает.


/*Создаём переменные*/

var color = 'red';
var x = 10;
var y = 10;






//
// Создание матрицы.
//
function createMatrix()
{
	var matrix = document.getElementById('matrix');
	var n = 20 * 20;	
	
	for (var i = 0; i < n; i++)
	{
		var div = document.createElement('div');
		div.className = 'cell';
		matrix.appendChild(div);
	}
}

//
// Чтение ячейки матрицы.
//
function getCell(row, col)
{
	// Функция принимает координаты ячейки
	// должна вернуть true, если она закрашена,
	// false, если не закрашена.

}

//
// Установка ячейки матрицы.
//
function setCell(row, col,color, val)
{
	// Функция принимает координаты ячейки
	// если , закрашивает ячейку,
	// иначе убирает закраску.
   var int = (row-1)*20 +col -1;
   document.body.children[0];
   document.getElementById('matrix').children[int].style.backgroundColor = (val) ? color : 'red';

}

/*функция обработки при нажатии на клаву*/

document.onkeydown = function(event){
    event = (event) ? event : window.event; 
    
    switch(event.keyCode){
        case 37:
        setCell(x, y);
        y--;
        setCell(x, y, color, true);
        break
        
        case 38:
        setCell(x, y);
        x--;
        setCell(x, y, color, true);
        break
        
        case 39:
        setCell(x, y);
        y++;
        setCell(x, y, color, true);
        break
        
          case 40:
        setCell(x, y);
        x++;
        setCell(x, y, color, true);
        break
   
    }
   
} 
 function var_dump(obj)
   {    
    
         var s = '<h1>' + p + obj + '</h1>'   
         s += '<li><b>' + p + '</b> : ' + obj[p] + '</li>';
         s += '</ol>';
        window.document.body.innerHTML =S;
    
   } 



//
// Точка входа.
//
window.onload = function()
{
	createMatrix();
    setCell(x, y, color);
  
	
		
}
Ответить с цитированием
  #10 (permalink)  
Старый 27.05.2013, 16:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,138

Сообщение от Денис Никитин
подскажите кто знает
Что таки делать с твоим огрызком? Он даже не запускается если вставить его на странице...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
/*Создаём переменные*/
var color = 'red';
var x = 10;
var y = 10;
//
// Создание матрицы.
//
function createMatrix() {
	var matrix = document.getElementById('matrix');
	var n = 20 * 20;	
	for (var i = 0; i < n; i++)	{
		var div = document.createElement('div');
		div.className = 'cell';
		matrix.appendChild(div);
	};
};
//
// Чтение ячейки матрицы.
//
function getCell(row, col) {
	// Функция принимает координаты ячейки
	// должна вернуть true, если она закрашена,
	// false, если не закрашена.
};
//
// Установка ячейки матрицы.
//
function setCell(row, col,color, val) {
	// Функция принимает координаты ячейки
	// если , закрашивает ячейку,
	// иначе убирает закраску.
	var int = (row-1)*20 +col -1;
	document.body.children[0];
	document.getElementById('matrix').children[int].style.backgroundColor = (val) ? color : 'red';
};
/*функция обработки при нажатии на клаву*/
document.onkeydown = function(event){
    event = (event) ? event : window.event; 
    switch(event.keyCode){
        case 37:
			setCell(x, y);
			y--;
			setCell(x, y, color, true);
			break
        case 38:
			setCell(x, y);
			x--;
			setCell(x, y, color, true);
			break
        case 39:
			setCell(x, y);
			y++;
			setCell(x, y, color, true);
			break
		case 40:
			setCell(x, y);
			x++;
			setCell(x, y, color, true);
			break
    };
}; 
function var_dump(obj) {    
	var s = '<h1>' + p + obj + '</h1>'   
	s += '<li><b>' + p + '</b> : ' + obj[p] + '</li>';
	s += '</ol>';
	window.document.body.innerHTML =S;
}; 
//
// Точка входа.
//
window.onload = function() {
	createMatrix();
	setCell(x, y, color);
};
</script>
</head>
<body>
</body>
</html>

Делай полные примеры! Огрызки ничего не дадут...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь: Slider wheel Alex555 Мобильный JavaScript 0 15.05.2013 18:06
Нужна помощь по слайдеру seoguru Работа 3 28.01.2013 22:02
нужна помощь с js okapo AJAX и COMET 3 31.01.2012 04:32
нужна помощь тех кто разбирается. igoryk jQuery 2 20.10.2010 19:42
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17