diff --git a/README.md b/README.md index 884044a..c350022 100644 --- a/README.md +++ b/README.md @@ -3,15 +3,15 @@ Сейчас в коде описаны функции для рисования поля любого размера и рисования любого символа в клетке этого поля. Твоя задача дописать код, чтобы это стало полноценной игрой в Крестики-нолики. -1. Реши, как будешь хранить поле. Тебе нужна будет такая структура, в которой удобно понимать есть ли победитель: три клетки по горизонтали, вертикали или диагонали, заполненные одинаковыми символами. -2. Допиши функцию cellClickHandler, чтобы после клика ставился крестик или нолик в соответствующее поле. -3. Если поле, по которому кликнули, не пустое, символ ставиться не должен. -4. Если кончились ходы, выведи alert с текстом "Победила дружба". -5. Напиши функцию, которая считает: есть ли уже победитель. Если есть победитель, выведи alert с названием победителя. -6. Если есть победитель, покрась победные значения в клетках в красный. -7. После победы, клик по полю больше не должен ставить крестик или нолик. -8. Обрабатывай клик по кнопке "Сначала": допиши метод resetClickHandler, чтобы поле очищалось. -9. \* Сделай так, чтобы можно было в начале игры задавать поле произвольного размера. +-1. Реши, как будешь хранить поле. Тебе нужна будет такая структура, в которой удобно понимать есть ли победитель: три клетки по горизонтали, вертикали или диагонали, заполненные одинаковыми символами. +-2. Допиши функцию cellClickHandler, чтобы после клика ставился крестик или нолик в соответствующее поле. +-3. Если поле, по которому кликнули, не пустое, символ ставиться не должен. +-4. Если кончились ходы, выведи alert с текстом "Победила дружба". +-5. Напиши функцию, которая считает: есть ли уже победитель. Если есть победитель, выведи alert с названием победителя. +-6. Если есть победитель, покрась победные значения в клетках в красный. +-7. После победы, клик по полю больше не должен ставить крестик или нолик. +-8. Обрабатывай клик по кнопке "Сначала": допиши метод resetClickHandler, чтобы поле очищалось. +-9. \* Сделай так, чтобы можно было в начале игры задавать поле произвольного размера. 10. \* Напиши "искусственный интеллект" — функцию, которая будет ставить нолики с случайное пустое поле. 11. \* Напиши чуть более умный искусственный интеллект — функция, ставящая нолики в случайном месте обязана поставить нолик в такое поле, нолик в котором приведет к выигрышу "ИИ". 12. \* Сделай так, чтобы при заполнении больше половины клеток на поле, оно бы расширялось: добавлялось бы по одному ряду с каждой стороны. diff --git a/index.js b/index.js index 7553909..d3d30ec 100644 --- a/index.js +++ b/index.js @@ -1,14 +1,18 @@ const CROSS = 'X'; const ZERO = 'O'; const EMPTY = ' '; - +let arrsize = prompt("Введите размерность масссива", 3); +let usedCells=0; +let isZero = false; +let GridArray =createArray(); +let IsWin= false; const container = document.getElementById('fieldWrapper'); startGame(); addResetListener(); function startGame () { - renderGrid(3); + renderGrid(arrsize); } function renderGrid (dimension) { @@ -26,11 +30,102 @@ function renderGrid (dimension) { } } +function createArray(){ + let arr=[]; + let arr2=[]; + for(let i=0;i