Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сравнение элементов массива по столбцам и диагоналям (https://javascript.ru/forum/misc/49718-sravnenie-ehlementov-massiva-po-stolbcam-i-diagonalyam.html)

ghost200607 26.08.2014 08:45

Сравнение элементов массива по столбцам и диагоналям
 
Доброго времени суток, пишу более сложную игру крестиков-ноликов, размерность задается пользователем, вводятся любые символы, где значения в строке или столбце или по диагоналям равны, то победа.
Реализовал универсальную проверку только по строкам, а по столбцам или диагоналям в голову больше ничего не лезет....

<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=cp-1251" />

</head>


<title> Game крестики-нолики ! </title>


<body>

<div align="center" style="margin-top: 100px">

<script type="text/javascript">

//создание

var n = prompt('введите размер крестиков ноликов, например 3', 3);


var mas = new Array(n); // строки
	for (var i=0; i<n; i++)
	mas[i] = new Array(n); // столбцы
	


//инициализация

var id_pole = 0; //счетчик id клеток
	for (var row=0; row<n; row++) {	
		for (var col=0; col<n; col++) {
		id_pole+=1;	
		mas[row][col] = '<input onkeyup="win();" type="text" id='+id_pole+' placeholder="value" style="width: 50px" />';
		if (col == n-1) mas[row][col] = '<input onkeyup="win();" type="text" id='+id_pole+' placeholder="value" style="width: 50px" />' + '<br>';
		document.write(mas[row][col]);
	}

}


function win() {	
	
	//получение значений с клеток

var id_pole2 = 0;
var check;

	for (row=0; row<n; row++) {
		for (col=0; col<n; col++) {			
		id_pole2+=1;
		mas[row][col] = document.getElementById(id_pole2).value;
						
	}	
		
}

  	for (row=0; row<n; row++) {
			check = 1;
			for (col=0; col<n; col++) {
				if (mas[row][0] != mas[row][col]) { check = 0 }; // проверка значений по строкам
				if (check == 1 && col == n-1 && mas[row][col] != '') { alert('Pobeda !!')};					
		

		}	
		
}

	
};

function clear_form() {
var id_pole3=0;
	for (row=0; row<n;row++) {		
		for (col=0; col<n; col++) {		
		id_pole3+=1;		
		mas[row][col] = document.getElementById(id_pole3).value='';
		}		
}	

};
</script>

</div>
<div align="center" style="margin-top: 20px">
<button OnClick="clear_form();">Clear</button>
</div>

</body>


</html>

ksa 26.08.2014 09:26

Цитата:

Сообщение от ghost200607
пишу более сложную игру крестиков-ноликов
...
Реализовал универсальную проверку только по строкам, а по столбцам или диагоналям в голову больше ничего не лезет....

Нормально ты начал писать... :D

skrudjmakdak 26.08.2014 09:33

ksa, а ты как будто великим сразу был? да с того же и начинал..

ksa 26.08.2014 09:39

Цитата:

Сообщение от skrudjmakdak
а ты как будто великим сразу был? да с того же и начинал..

Ты меня знаешь? С чего взял, что я даже в начале пути не мог написать "крестики-нолики"? :D
Это тренировочная игра на массивы и циклы. Вот и тренируйся... Какой смысл в тренировке, если ты ее сам не делаешь?

skrudjmakdak 26.08.2014 09:58

Цитата:

Сообщение от ksa (Сообщение 327477)
Ты меня знаешь? С чего взял, что я даже в начале пути не мог написать "крестики-нолики"? :D
Это тренировочная игра на массивы и циклы. Вот и тренируйся... Какой смысл в тренировке, если ты ее сам не делаешь?

тогда зачем вообще форумы? можнож дойти своим умом?? причем во всем, только вот беда во времени

skrudjmakdak 26.08.2014 10:04

ghost200607, вот тебе пример по столбцам, по диагоналям думай, если совсем будет туго, поможем с алгоритмом. но в каком то смысле ksa говорит верно, нужно самим думать как решить задачу
//проверка по столбцу
	for (j = 0; j < n; j++) //бежим по СТОЛБЦАМ 0-й столбец, 1-й столбец ...
		{
		num = mas[0][j]; //здесь будем хранить значение ячейки по j-му столбцу 0-й строчки
		if (num == '') //если значение пустое, не вводилось, то пропускаем один цикл
			continue;
		
		is = true; // хранит в себе результат о совпадении всех элементов, по умолчанию все значания ""как бы"" равны
		for (i = 1; i < n; i++) //пробегаем по строке на этом столбце, не берем нулевой элемент т.к. он записан в num
			{
			if (num != mas[i][j])//если значение num не совпадает со вторым, третьим или другим элементом то и проверять дальше нет смысла
				{
				is = false; //значения не равны
				break; //прерываем цикл
				}
			}
		
		if (is)
			{
			alert('победа');
			return;
			}
		}

ghost200607 26.08.2014 10:09

Спасибо, буду думать, но бывают моменты что "виснешь" и что делать дальше....

ksa 26.08.2014 10:16

Цитата:

Сообщение от skrudjmakdak
тогда зачем вообще форумы?

У всех свое понимание их существования... :D

skrudjmakdak 26.08.2014 10:20

Цитата:

Сообщение от ksa (Сообщение 327484)
У всех свое понимание их существования... :D

и я так полагаю, что для тебя форумы нах не нужны? точней для начинающих они не нужны, т.к. они смогут в любом вопросе найти свой ответ?

п.с. мож в оффтопике поговорим? ибо засоряем ветку

ksa 26.08.2014 10:22

Цитата:

Сообщение от skrudjmakdak
нужно самим думать как решить задачу

Если она тренировочная... ;)
Цитата:

Сообщение от skrudjmakdak
вот тебе пример по столбцам

По-мне так в корне неправильный подход к проверке...
Проверку нужно/можно "привязать" к собственно поставленному крестику/нолику... И считать те крестики/нолики "вокруг" поставленного значка...
От 0 до N бегать не стоит...

skrudjmakdak 26.08.2014 10:24

Цитата:

Сообщение от ksa (Сообщение 327486)
Проверку нужно/можно "привязать" к собственно поставленному крестику/нолику... И считать те крестики/нолики "вокруг" поставленного значка...

не спорю, но для начала можно и так ;)

ksa 26.08.2014 10:24

Цитата:

Сообщение от skrudjmakdak
и я так полагаю, что для тебя форумы нах не нужны?

Ты спец "по моей личности" - тебе видней... :D
Цитата:

Сообщение от skrudjmakdak
п.с. мож в оффтопике поговорим?

На какую тему? Для чего форумы по моему мнению?
Авторы их делают, преследуя какие-то свои цели. А вот во что это перерастает, уже жизнь показывает... :)

ksa 26.08.2014 10:27

Цитата:

Сообщение от skrudjmakdak
но для начала можно и так

Нужно то "начало" делать максимально правильно и эффективно. Вот для этого на форуме можно получить "совет бывалого".

А ситуация "Я решил сделать нечто! Как это теперь сделать?" немного смешна... Возьми задачку по-проще, если эта тебе не по зубам. Оно может и понимание придет... А не придет - так то мобыть и не твое... :)

skrudjmakdak 26.08.2014 10:30

Цитата:

Сообщение от ksa (Сообщение 327488)
Авторы их делают, преследую какие-то свои цели. А вот во что это перерастает, уже жизнь показывает... :)

а причем здесь авторы? имхо ответ не в тему. мы говорим про новичков, которым порой основы даются не так легко, как хотелось бы. и кто как не профи могу подтолкнуть в нужное русло. вот ты например дал еще один вариант решения данной задачи. и сейчас автор решит эту задачу по своему, а потом и по твоему. а может он сразу захочет взять твой вариант? т.к. он лучше

но проблема в том, что ты сначала наехал что он не хочет думать, а потом высказал свое мнение по решению..

skrudjmakdak 26.08.2014 10:32

Цитата:

Сообщение от ksa (Сообщение 327489)
Вот для этого на форуме можно получить "совет бывалого".

ну дак, ты его и не даешь..точней не хотел давать

ksa 26.08.2014 10:34

Цитата:

Сообщение от skrudjmakdak
а причем здесь авторы?

Они самые главные в этом деле! :D Если автор не сделает форум - таки его просто не будет. Вроде все просто...
Цитата:

Сообщение от skrudjmakdak
имхо ответ не в тему

Ты спец и в этом... Тебе видней...
Цитата:

Сообщение от skrudjmakdak
но проблема в том, что ты сначала наехал что он не хочет думать

У меня нет такого права? :)
Цитата:

Сообщение от skrudjmakdak
а потом высказал свое мнение по решению

И такого права теперь нет? :(

Млин... Че делать, я х/з...

ksa 26.08.2014 10:35

Цитата:

Сообщение от skrudjmakdak
ну дак, ты его и не даешь..точней не хотел давать

Ну глуп, Ваше Сиятельство. Глуп. (с) :(

ghost200607 26.08.2014 10:39

Всем спасибо за помощь !:)

skrudjmakdak 26.08.2014 10:42

Цитата:

Сообщение от ksa (Сообщение 327494)
Они самые главные в этом деле! :D Если автор не сделает форум - таки его просто не будет. Вроде все просто...

мда?? создали форум, отвечать некому(есть такие форумы), поэтому создать форум это пол беды, еще надо какбэ сидеть и отвечать..

Цитата:

Сообщение от ksa (Сообщение 327494)
Ты спец и в этом... Тебе видней...

.... забивание ответа лишь бы чем....

Цитата:

Сообщение от ksa (Сообщение 327494)
У меня нет такого права? :)

есть, но почему бы сразу не ответить нормально? а? например, подходит к тебе чувак спросить время, а ты ему: "пойди сбегай в магазин за углом, тут не далеко", а когда он уже отошел на расстояние, ты ему: "ладно, я те скажу, пол второго".
у меня вот такие ассоциации.. и это печально

Цитата:

Сообщение от ksa (Сообщение 327494)
И такого права теперь нет? :(

.... забивание ответа лишь бы чем....

ksa 26.08.2014 10:52

Цитата:

Сообщение от skrudjmakdak
забивание ответа лишь бы чем....
есть, но почему бы сразу не ответить нормально?

Опять же - тебе видней...
Цитата:

Сообщение от skrudjmakdak
например, подходит к тебе чувак спросить время, а ты ему: "пойди сбегай в магазин за углом, тут не далеко", а когда он уже отошел на расстояние, ты ему: "ладно, я те скажу, пол второго".
у меня вот такие ассоциации.. и это печально

Но это же твои ассоциации... Не мои. И ты имеешь полное право их иметь в любом качестве и количестве. :yes:

skrudjmakdak 26.08.2014 11:00

Цитата:

Сообщение от ksa (Сообщение 327500)
Опять же - тебе видней...

да мне пофик, честно. ответ нужен был не мне, какбэ
Цитата:

Сообщение от ksa (Сообщение 327500)
Но это же твои ассоциации... Не мои. И ты имеешь полное право их иметь в любом качестве и количестве. :yes:

вот честно, я б тебе дохера ответил бы, но мну в падлу писать все это)) но в любом случае твоя позиция остается загадкой. сначала ""обосрать"", потом помочь

ksa 26.08.2014 11:16

Цитата:

Сообщение от skrudjmakdak
я б тебе дохера ответил бы, но мну в падлу писать все это

Не пиши... :D
Цитата:

Сообщение от skrudjmakdak
но в любом случае твоя позиция остается загадкой. сначала ""обосрать"", потом помочь

Так "загадка" или таки позиция моя тебе ясна? :blink:

Хотя, по моему мнению, и "позиции" у меня как таковой просто нет. :)

skrudjmakdak 26.08.2014 11:29

Цитата:

Сообщение от ksa (Сообщение 327504)
Хотя, по моему мнению, и "позиции" у меня как таковой просто нет. :)

не однократно замечаю, что вместо нормального ответа, у тебя красуется, типа такого: "иди читай доки" или еще что нибудь в таком духе, вот я аж не сдержался.
так же и здесь:
Цитата:

Сообщение от ksa (Сообщение 327475)
Нормально ты начал писать... :D

ну может для него массивы уже сложно, как в принципе и я просидел свое долгое время с массивами и ничего, вырос какбэ..))

Viral 26.08.2014 11:36

какой прекрасный срач вы тут устроили))
skrudjmakdak, ksa тут не один любитель посылать читать доки как минимум потому что это полезнее, чем получить готовый ответ.
халява не так сильно ценится как то, что было сделано с трудом.. соответственно и знаний ты из этого не почерпнешь и опыта никакого для себя не получишь..

в конце концов, есть специально отведенные места для скопления любителей халявы..

ksa 26.08.2014 11:37

Цитата:

Сообщение от skrudjmakdak
вот я аж не сдержался

Это, опять же, не моя проблема... :)

ksa 26.08.2014 11:37

Цитата:

Сообщение от Viral
какой прекрасный срач вы тут устроили

Я называю это общением... :)

skrudjmakdak 26.08.2014 13:50

Цитата:

Сообщение от Viral (Сообщение 327506)
какой прекрасный срач вы тут устроили))

я предлагал ksa перейти в оффтоп, но эту тему как то замяли..

Цитата:

Сообщение от Viral (Сообщение 327506)
skrudjmakdak, ksa тут не один любитель посылать читать доки как минимум потому что это полезнее, чем получить готовый ответ.
халява не так сильно ценится как то, что было сделано с трудом.. соответственно и знаний ты из этого не почерпнешь и опыта никакого для себя не получишь..

я не против док. я который час пытаюсь узнать, почему сразу нельзя отвечать по делу?

Цитата:

Сообщение от Viral (Сообщение 327506)
в конце концов, есть специально отведенные места для скопления любителей халявы..

эээ, причем тут jquery?

Цитата:

Сообщение от ksa (Сообщение 327507)
Это, опять же, не моя проблема... :)

так же как и не моя) проблемы в большей степени у новичков

Цитата:

Сообщение от ksa (Сообщение 327508)
Я называю это общением... :)

я не против пообщаться;)

ksa 26.08.2014 13:56

Цитата:

Сообщение от skrudjmakdak
я предлагал ksa перейти в оффтоп, но эту тему как то замяли..

Это свободный форум... :) Если есть желание продолжать - создавай тему тут.

ksa 26.08.2014 13:57

Цитата:

Сообщение от skrudjmakdak
я который час пытаюсь узнать, почему сразу нельзя отвечать по делу?

Кагбэ нет у меня такой обязанности... :no:

Viral 26.08.2014 13:58

Цитата:

Сообщение от skrudjmakdak (Сообщение 327533)
я не против док. я который час пытаюсь узнать, почему сразу нельзя отвечать по делу?

перечитывать, пока не дойдет:
Цитата:

халява не так сильно ценится как то, что было сделано с трудом.. соответственно и знаний ты из этого не почерпнешь и опыта никакого для себя не получишь..
  
  
Цитата:

эээ, причем тут jquery?
Code less, do more, если вы понимаете, о чем я..

skrudjmakdak 26.08.2014 14:06

Цитата:

Сообщение от ksa (Сообщение 327537)
Кагбэ нет у меня такой обязанности... :no:

дело не в обязанностях, а в человечности, в общепринятых нормах. я понимаю, что у каждого свои нормы внутри нас, но.. вот был я на одной работе, когда я пришел и хз что у них за алгоритмы, сразу большой проект, в нете не посмотришь ясен пень. когда спрашиваю что да как у вас реализован тот или иной механизм, мну говорят: "ну посмотри вооон там", вместо того чтобы норм объяснить.. я то посмотрю, мне не в лом. но опять таки сколько я потрачу время на это? и когда будет полезная отдача фирме? даже начальство поднимало этот вопрос, но увы так ни кого это и не дошло, "потому что в обязанности не входило"... вскоре я свалил с этой лоховской конторы, и сейчас у меня гуд, где сидят нормальные адекватные люди. понимаешь?

skrudjmakdak 26.08.2014 14:10

Цитата:

Сообщение от Viral (Сообщение 327539)
перечитывать, пока не дойдет:

советую почитать весь наш диалог, чтобы вы поняли в какую сторону я клоню. я не спорю, что здесь много хлявщиков (js не знаю, но быстро надо, помогите..), но есть и те кто действительно хочет чему то научиться

Viral 26.08.2014 14:16

skrudjmakdak, почитал.. настаиваю на своем)

skrudjmakdak 26.08.2014 14:19

Цитата:

Сообщение от Viral (Сообщение 327549)
skrudjmakdak, почитал.. настаиваю на своем)

настаивай) так же как и я остался при своем мнении, так же как и все остались при своем мнении

ksa 26.08.2014 14:29

Цитата:

Сообщение от skrudjmakdak
дело не в обязанностях, а в человечности, в общепринятых нормах.

Я оставляю за собой право вести себя как захочется... Если что-то мое выходит за рамки форума - это просто удалят.

skrudjmakdak 26.08.2014 14:34

Цитата:

Сообщение от ksa (Сообщение 327556)
Я оставляю за собой право вести себя как захочется... Если что-то мое выходит за рамки форума - это просто удалят.

мир жесток)

ksa 26.08.2014 14:35

Цитата:

Сообщение от skrudjmakdak
и когда будет полезная отдача фирме?

Мне не особо интересно про "пользу фирме"... :) Поскольку я этим давно "переболел".
В этом вопросе мне больше интересно, что именно мне это дает? Какой смысл мне заморачиваться с чем-то если лично мне нет никакого в том интереса?
Ранее наставник имел некий процент с з/п учеников, заним закрепленных... Сейчас интерес к обучению (для меня) может предоставить только сам "обучаемый" если он мня заинтересует какими-то своими личностными качествами...
И не более того.

Это к разговору об обучении и пр...

ksa 26.08.2014 14:36

Цитата:

Сообщение от skrudjmakdak
мир жесток

Не сказал бы... :D
По-мне так нормальный мир... Все лучше чем сейчас на Украине...

ksa 26.08.2014 14:37

Цитата:

Сообщение от skrudjmakdak
так же как и я остался при своем мнении

Никоим образом не пытаюсь тебя в чем-то переубедить... :D

skrudjmakdak 26.08.2014 14:43

Цитата:

Сообщение от ksa (Сообщение 327562)
Никоим образом не пытаюсь тебя в чем-то переубедить... :D

Viral пытался мне что то сказать)

Цитата:

Сообщение от ksa (Сообщение 327562)
Не сказал бы...
По-мне так нормальный мир...

ну я типо образно говоря, уж как то буквально все воспринимаешь ;)

Цитата:

Сообщение от ksa (Сообщение 327562)
Все лучше чем сейчас на Украине...

эммм, тут отдельный разговор, еще на дня на 3 хватит

Цитата:

Сообщение от ksa (Сообщение 327562)
Какой смысл мне заморачиваться с чем-то если лично мне нет никакого в том интереса?

промолчу, т.к. у каждого свои цели и интересы в жизни и методы для их достижения


Часовой пояс GMT +3, время: 16:11.