Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.03.2011, 11:42
Интересующийся
Отправить личное сообщение для andrei92 Посмотреть профиль Найти все сообщения от andrei92
 
Регистрация: 25.03.2011
Сообщений: 15

Задача о ферзях
есть поле 8 на 8 необходимо расставить двух ферзей и прощитать бьют они друг друга или нет
Ответить с цитированием
  #2 (permalink)  
Старый 29.03.2011, 12:20
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

<div id='foo' style='color: red'>
</div>

<input type='button' onclick='check();' value='узнать' />

<script type="text/javascript">

var Matrix = function ( options ) { // рисует шахматную доску
	options.enabled = options.enabled || '#333';
	options.disabled = options.disabled || '#555';
	var map = options.map,
	len = map.length,
	html = '',
	styles = '',
	i, j, cells;
	for ( i = 0; i < len; i++ ) {
		cells = map[i].length;
		for ( j = 0; j < cells; j++ ) {
			styles = 'float: left; width: 30px; height: 30px; background: ' + (map[i][j] === 0 ? options.disabled : options.enabled) + '; ' + (j === 0 ? 'clear: both;' : '');
			var div = document.createElement("DIV");
			div.style.cssText = styles;
			div.eq = [i, j];
			document.getElementById( options.target ).appendChild(div);
		}
	}
	// document.getElementById( options.target ).innerHTML = html;
};

var T1 = [0,1,0,1,0,1,0,1], T2 = [1,0,1,0,1,0,1,0];

Matrix({
	map: [T1, T2, T1, T2, T1, T2, T1, T2],
	target: 'foo',
	disabled : 'white',
	enabled : 'black'
});

var X = 0;
var P = [];
document.getElementById("foo").onclick = function (event) { // ставим ферзей
	var target = (event = event || window.event).target || event.srcElement;
	if (target.id !== "foo" && X < 2) { // не больше двух!
		target.innerHTML = "Ф";
		P.push(target);
		X++;
	}
};

function check() {
	if (X < 2) // если поставили меньше двух ферзей, выкидываем гневное сообщение
		return alert("расставь ферзей нормально, придурок");
	var x1 = P[0].eq[0], x2 = P[1].eq[0],
	y1 = P[0].eq[1], y2 = P[1].eq[1];
	alert( x1 == x2 || y1 == y2 || Math.abs(y1 - y2) == Math.abs(x1 - x2) ); // формула для вычисления
}

</script>


Проверял только в Opera11.
Ф-цию Matrix() брал из своего старого скрипта. В IE шахматная доска рисуется неправильно.
Но условие x1 == x2 || y1 == y2 || Math.abs(y1 - y2) == Math.abs(x1 - x2) работает верно.

Последний раз редактировалось Matre, 29.03.2011 в 12:34.
Ответить с цитированием
  #3 (permalink)  
Старый 29.03.2011, 14:08
Интересующийся
Отправить личное сообщение для andrei92 Посмотреть профиль Найти все сообщения от andrei92
 
Регистрация: 25.03.2011
Сообщений: 15

мне как бы всей этой красоты не надо мне нужно ввести с клавы координаты этих ферзей и скрипт должен выдать бьют они друг друга или нет
Ответить с цитированием
  #4 (permalink)  
Старый 29.03.2011, 17:47
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Из варианта Matre вытащи условие и применяй, вот например бьют:
var x1 = 2, x2 = 4, y1 = 1, y2 = 3;
alert(x1 == x2 || y1 == y2 || Math.abs(y1 - y2) == Math.abs(x1 - x2));

а вот нет:
var x1 = 2, x2 = 5, y1 = 1, y2 = 2;
alert(x1 == x2 || y1 == y2 || Math.abs(y1 - y2) == Math.abs(x1 - x2));
Ответить с цитированием
  #5 (permalink)  
Старый 29.03.2011, 18:12
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

andrei92, вот ты сука. Гореть тебе в аду за такую подставу. Ты же сам, придурок, написал, что РАССТАВИТЬ надо ферзей на ПОЛЕ, я тебе всё сделал за бесплатно, чё ты мне паришь? Если с клавы вводить надо так и сделай так чтобы вводило хули ты мне то пишешь?? Читай там про ввод-вывод в js и пр. хватит быть дебилом который не может переменную с клавы ввести. Видел бля я таких. У меня в вузе 15 человек из 20 не умеют делать ввод вывод, а мы уже функции закончили, меня всё прося т за бесплатно, ну короче ездят на мне, я их на три буквы начал посылать потому что там лабы 3 страницы кода даже я не сразу соображаю алгоритм, теперь со мной даже за руку не всегда здороваются. Ты такой же чёрт. Жаль было время на тебя терять.

Последний раз редактировалось Matre, 29.03.2011 в 18:16.
Ответить с цитированием
  #6 (permalink)  
Старый 30.03.2011, 13:55
Интересующийся
Отправить личное сообщение для andrei92 Посмотреть профиль Найти все сообщения от andrei92
 
Регистрация: 25.03.2011
Сообщений: 15

я джава скрип неделю изучаю что ты отменя хочеш
Ответить с цитированием
  #7 (permalink)  
Старый 30.03.2011, 14:09
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Да каждый так говорит что он новичок, пусть делают всё за него. Конечно, так проще. Алгоритм-то элементарный — ввести переменную с клавы и по готовой формуле вычислить, даже если сегодня за js сел такую вещь должен смочь сделать, если это тебе реально надо.
Ответить с цитированием
  #8 (permalink)  
Старый 30.03.2011, 14:28
Интересующийся
Отправить личное сообщение для andrei92 Посмотреть профиль Найти все сообщения от andrei92
 
Регистрация: 25.03.2011
Сообщений: 15

Я просто не знал как к этому алгоритму подступиться не мог вывести закономерности поэтому и попросил помощи а вопрос видать не совсем правильно сформулировал
Ответить с цитированием
  #9 (permalink)  
Старый 30.03.2011, 14:57
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от Matre Посмотреть сообщение
andrei92, вот ты сука. Гореть тебе в аду за такую подставу. Ты же сам, придурок, написал, что РАССТАВИТЬ надо ферзей на ПОЛЕ, я тебе всё сделал за бесплатно, чё ты мне паришь? Если с клавы вводить надо так и сделай так чтобы вводило хули ты мне то пишешь?? Читай там про ввод-вывод в js и пр. хватит быть дебилом который не может переменную с клавы ввести. Видел бля я таких. У меня в вузе 15 человек из 20 не умеют делать ввод вывод, а мы уже функции закончили, меня всё прося т за бесплатно, ну короче ездят на мне, я их на три буквы начал посылать потому что там лабы 3 страницы кода даже я не сразу соображаю алгоритм, теперь со мной даже за руку не всегда здороваются. Ты такой же чёрт. Жаль было время на тебя терять.
Хм-хм
Ответить с цитированием
  #10 (permalink)  
Старый 30.03.2011, 17:49
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

andrei92, а, ты вообще новичок в программировании? Тогда ладно, извини. Беру свои слова назад.

e1f, спасибо за напоминание.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача "Пересечение сторон фигуры линией в одной точке" lh2030 Общие вопросы Javascript 9 11.03.2011 20:03
Задача: страницы без прокрутки А.Б. Элементы интерфейса 9 26.12.2009 20:08
помощь новичку - задача вывода содержимого нескольких страниц в одну новую samurau AJAX и COMET 2 03.11.2009 19:07
Задача подсчитать суммы каталога osv Общие вопросы Javascript 2 30.07.2009 05:24
Простенькая задача =) Reddemin Общие вопросы Javascript 8 05.12.2008 16:25