Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 10.01.2012, 19:24
Интересующийся
Отправить личное сообщение для Wizout Посмотреть профиль Найти все сообщения от Wizout
 
Регистрация: 21.12.2011
Сообщений: 26

решил вместо пятнашек попробовать сделать первую игру крестики нолики.

так вот нужна ваша помощь ))
Сделал такой план что нужно реализовать:
1. игровое поле для игры в крестики нолики.
2. функция определяющая выигрыш.
3. выбор игры - 2 игрока за одним компом или игрок против компа.
4. Выбор - играть крестиками или ноликами.
5. Функция показывающая, чей сейчас ход.
6. функция ставящая крестики или нолики на поле

что еще нужно добавить?

Последний раз редактировалось Wizout, 10.01.2012 в 19:27.
Ответить с цитированием
  #12 (permalink)  
Старый 10.01.2012, 19:47
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

СОВЕТ:
Нужно разбить процесс игры на части ЛОГИЧЕСКИ понятные человеку, но не понятные компьютеру, и описать эти части принимая за логические единицы. Чтобы язык воспринимал их как логические единицы нужно выделять их в функции. например функция СДЕЛАТЬ ХОД.. это логическая единица. внутри функции описываешь действия которые будут делать вид и работать ТАК, как будто человек делает ход (функция изменят какие-то цифры, положения крестиков.т.п.) и допустим среди этих не логических действий(изменения цифр) встречается логическое, например (ПРОВЕРИТЬ СТОИТ ЛИ ТУТ КРЕСТИК ИЛИ КЛЕТКА ПУСТА А ЕСЛИ НЕТ ТО ЧТО В НЕЙ СТОИТ), то это уже опять логическая единица и её снова нужно группировать в функцию, и вызывать где нужно.

это общий подход)))

то есть есть логические единицы, а есть не логические единицы)
не логические это 2+4, и.т.п. а логические это "Сделать ход" "проверить пустоту поля" "Обьявить победу"

так вот ОБЯЗАТЕЛЬНО ВСЕ, даже очень простые логические единицы, (например проверить пустое ли поле" выводи в функции) и потом ты сможешь вызывать их где надо относительно нужного тебе поля например)

Последний раз редактировалось Livanderiaamarum, 10.01.2012 в 19:49.
Ответить с цитированием
  #13 (permalink)  
Старый 10.01.2012, 21:26
Интересующийся
Отправить личное сообщение для Wizout Посмотреть профиль Найти все сообщения от Wizout
 
Регистрация: 21.12.2011
Сообщений: 26

подскажите такую вещь, есть массив, он используется в качестве поля, как его вывести в элементе canvas в виде:
[][][]
[][][]
[][][]
?
Ответить с цитированием
  #14 (permalink)  
Старый 10.01.2012, 21:39
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

Сообщение от Wizout Посмотреть сообщение
подскажите такую вещь, есть массив, он используется в качестве поля, как его вывести в элементе canvas в виде:
[][][]
[][][]
[][][]
?

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

мысленно логически отдели ОБОЛОЧКУ от ядра)
ядро это прога которая считает КАК БУДЕТ РАБОТАТЬ ИГРА, а оболочка это прога которая РИСУЕТ КАРТИНКУ игры ИСХОДЯ ИЗ текущего состояния ядра))

как рисовать поле щас скажу)
Ответить с цитированием
  #15 (permalink)  
Старый 10.01.2012, 21:42
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

У тебя такой массив?
[[поле, поле, поле],
[поле, поле, поле],
[поле, поле, поле]]

или такой
[поле, поле, поле, поле, поле, поле, поле, поле, поле]
Ответить с цитированием
  #16 (permalink)  
Старый 10.01.2012, 21:47
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

Ты уже придумал как определять при каждом сделанном ходе ВЫПАЛА ЛИ ВЫИГРАШНАЯ КОМБИНАЦИЯ)?
Какие идеи есть?
Ответить с цитированием
  #17 (permalink)  
Старый 10.01.2012, 21:48
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Wizout
вывести в элементе canvas
зачем тебе она для крестиков-ноликов?
Ответить с цитированием
  #18 (permalink)  
Старый 10.01.2012, 21:51
Интересующийся
Отправить личное сообщение для Wizout Посмотреть профиль Найти все сообщения от Wizout
 
Регистрация: 21.12.2011
Сообщений: 26

Сообщение от Livanderiaamarum Посмотреть сообщение
У тебя такой массив?
[[поле, поле, поле],
[поле, поле, поле],
[поле, поле, поле]]

или такой
[поле, поле, поле, поле, поле, поле, поле, поле, поле]
второй

Сообщение от Livanderiaamarum Посмотреть сообщение
Ты уже придумал как определять при каждом сделанном ходе ВЫПАЛА ЛИ ВЫИГРАШНАЯ КОМБИНАЦИЯ)?
Какие идеи есть?
определять наверное выигрышную позицию пока такой набросок:

function winner()	//функция определения выиграша
	{
		if(field[0]==field[1] && field[1]==field[2] && field[2]==0 ||
		   field[3]==field[4] && field[4]==field[5] && field[5]==0||
		   field[6]==field[7] && field[7]==field[8] && field[8]==0||
		   field[0]==field[4] && field[4]==field[8] && field[8]==0||
		   field[2]==field[4] && field[4]==field[6] && field[6]==0||
		   field[0]==field[3] && field[3]==field[6] && field[6]==0||
		   field[1]==field[4] && field[4]==field[7] && field[7]==0||
		   field[2]==field[5] && field[5]==field[8] && field[8]==0)
		   alert("Вы выиграли!");
		   
		if(field[0]==field[1] && field[1]==field[2] && field[2]==1 ||
		   field[3]==field[4] && field[4]==field[5] && field[5]==1||
		   field[6]==field[7] && field[7]==field[8] && field[8]==1||
		   field[0]==field[4] && field[4]==field[8] && field[8]==1||
		   field[2]==field[4] && field[4]==field[6] && field[6]==1||
		   field[0]==field[3] && field[3]==field[6] && field[6]==1||
		   field[1]==field[4] && field[4]==field[7] && field[7]==1||
		   field[2]==field[5] && field[5]==field[8] && field[8]==1)
		   alert("Вы выиграли!");
	}
Ответить с цитированием
  #19 (permalink)  
Старый 10.01.2012, 21:52
Интересующийся
Отправить личное сообщение для Wizout Посмотреть профиль Найти все сообщения от Wizout
 
Регистрация: 21.12.2011
Сообщений: 26

Сообщение от dmitriymar Посмотреть сообщение
зачем тебе она для крестиков-ноликов?
чтобы с canvas больше практики было
Ответить с цитированием
  #20 (permalink)  
Старый 10.01.2012, 21:54
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Ну и жесть))))
А не проще пускать букву Ж от места где поставлен крестик или нолик и смотреть СКОЛЬКО КРЕСТИКОВ пересекает каждая палочка буквы Ж если хоть одна палочка пересекает 3 крестика включая текущий, то ход выиграшный))))

было бы у тебя поле 20 на 20 клеток какое бы ты условие в if написал бы))?)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Начальный этап крестиков-ноликов speedway Общие вопросы Javascript 16 10.11.2011 21:06
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
Без JS никуда dimaan777 Оффтопик 14 27.02.2011 23:02
Не получается передать переменную из JS в PHP Lion_astana AJAX и COMET 2 23.11.2010 17:23
помогите задать переменную в js bsgroupua Общие вопросы Javascript 3 01.02.2010 18:28