В настоящее время я пишу базовую игру «Крестики-нолики» (многопользовательскую, без искусственного интеллекта), используя Интернет (HTML, CSS, JavaScript). Вся логика игры, очевидно, заключена в Javascript. У меня есть вопрос. Ниже приведен мой код:
window.onload = function () {
console.log("Page has loaded");
}
var ctx;
var turn = 0;
var winningCombo = [
[1, 4, 7],
[2, 5, 8],
[3, 6, 9],
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[1, 5, 9],
[3, 5, 7]
];
var playedComboX = [];
var playedComboO = [];
var filledSquares = [0];
var filled = false;
console.log(winningCombo.length);
var checkWinnerX = function () {
for(var i = 0; i < winningCombo.length; i++) {
console.log('Its in the X check winner loop');
if((winningCombo[0] == playedComboX[0]) && (winningCombo[1] == playedComboX[1]) && (winningCombo[2] == playedComboX[2])) {
alert("Congrats, you have won!");
return true;
}
return false;
}
}
var checkWinnerO = function () {
for(var i = 0; i < winningCombo.length; i++) {
console.log('Its in the 0 check winner loop');
if(winningCombo[0] == playedComboO[0] && winningCombo[1] == playedComboO[1] && winningCombo[2] == playedComboO[2]) {
console.log('It has passed the if statement for X');
alert("Congrats, you have won!");
return true;
}
return false;
}
}
var checkWinner = function () {}
var draw = function (squareNumber) {
console.log('draw has been called');
var squareID = "square" + squareNumber;
var squareClicked = document.getElementById(squareID);
ctx = squareClicked.getContext('2d');
for(var i = 0; i < filledSquares.length; i++) {
if(filledSquares == squareNumber) {
filled = true;
} else {
filled = false;
}
}
if(filled == true) {
alert("Invalid Move! Square is already occupied");
} else {
filledSquares.push(squareNumber);
ctx.beginPath();
if(turn % 2 == 0) {
//Drawing a 'X'
ctx.moveTo(20, 20);
ctx.lineTo(135, 135);
ctx.moveTo(135, 20);
ctx.lineTo(20, 135);
ctx.lineWidth = 6;
ctx.stroke();
turn++;
playedComboX.push(squareNumber);
checkWinnerX();
} else {
//Drawing a Circle
ctx.arc(75, 75, 65, 2 * Math.PI, false);
ctx.lineWidth = 6;
ctx.stroke();
turn++;
playedComboO.push(squareNumber);
checkWinnerO();
}
}
}
На данный момент функции checkWinner проверяют только точные совпадения с элементами массива в массиве winCombo (например: если комбинация равна 3,1,2 вместо 1,2,3, она не будет зарегистрирована). Могу ли я проверить все возможные комбинации трех чисел в каждом элементе? Надеюсь, мое объяснение имеет смысл, спасибо.
PS: Простите, если какой-либо код написан не так хорошо, как мог бы я, я впервые пытаюсь написать игру. Но будьте настолько критичны, насколько пожелаете!
Обновление 2:
var checkWinnerX = function () {
for(var i = 0; i < winningCombo.length; i++) {
console.log('Its in the X check winner loop');
if((winningCombo[0] == sortedArrayX[0]) && (winningCombo[1] == sortedArrayX[1]) && (winningCombo[2] == sortedArrayX[2])) {
alert("Congrats, you have won!");
return true;
}
return false;
}
}
Подробнее здесь: https://stackoverflow.com/questions/156 ... -within-an
JavaScript Tic Tac Toe — поиск всех возможных комбинаций чисел в массиве ⇐ Html
Программисты Html
1772297886
Anonymous
В настоящее время я пишу базовую игру «Крестики-нолики» (многопользовательскую, без искусственного интеллекта), используя Интернет (HTML, CSS, JavaScript). Вся логика игры, очевидно, заключена в Javascript. У меня есть вопрос. Ниже приведен мой код:
window.onload = function () {
console.log("Page has loaded");
}
var ctx;
var turn = 0;
var winningCombo = [
[1, 4, 7],
[2, 5, 8],
[3, 6, 9],
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[1, 5, 9],
[3, 5, 7]
];
var playedComboX = [];
var playedComboO = [];
var filledSquares = [0];
var filled = false;
console.log(winningCombo.length);
var checkWinnerX = function () {
for(var i = 0; i < winningCombo.length; i++) {
console.log('Its in the X check winner loop');
if((winningCombo[i][0] == playedComboX[0]) && (winningCombo[i][1] == playedComboX[1]) && (winningCombo[i][2] == playedComboX[2])) {
alert("Congrats, you have won!");
return true;
}
return false;
}
}
var checkWinnerO = function () {
for(var i = 0; i < winningCombo.length; i++) {
console.log('Its in the 0 check winner loop');
if(winningCombo[i][0] == playedComboO[0] && winningCombo[i][1] == playedComboO[1] && winningCombo[i][2] == playedComboO[2]) {
console.log('It has passed the if statement for X');
alert("Congrats, you have won!");
return true;
}
return false;
}
}
var checkWinner = function () {}
var draw = function (squareNumber) {
console.log('draw has been called');
var squareID = "square" + squareNumber;
var squareClicked = document.getElementById(squareID);
ctx = squareClicked.getContext('2d');
for(var i = 0; i < filledSquares.length; i++) {
if(filledSquares[i] == squareNumber) {
filled = true;
} else {
filled = false;
}
}
if(filled == true) {
alert("Invalid Move! Square is already occupied");
} else {
filledSquares.push(squareNumber);
ctx.beginPath();
if(turn % 2 == 0) {
//Drawing a 'X'
ctx.moveTo(20, 20);
ctx.lineTo(135, 135);
ctx.moveTo(135, 20);
ctx.lineTo(20, 135);
ctx.lineWidth = 6;
ctx.stroke();
turn++;
playedComboX.push(squareNumber);
checkWinnerX();
} else {
//Drawing a Circle
ctx.arc(75, 75, 65, 2 * Math.PI, false);
ctx.lineWidth = 6;
ctx.stroke();
turn++;
playedComboO.push(squareNumber);
checkWinnerO();
}
}
}
На данный момент функции checkWinner проверяют только точные совпадения с элементами массива в массиве winCombo (например: если комбинация равна 3,1,2 вместо 1,2,3, она не будет зарегистрирована). Могу ли я проверить все возможные комбинации трех чисел в каждом элементе? Надеюсь, мое объяснение имеет смысл, спасибо.
PS: Простите, если какой-либо код написан не так хорошо, как мог бы я, я впервые пытаюсь написать игру. Но будьте настолько критичны, насколько пожелаете!
Обновление 2:
var checkWinnerX = function () {
for(var i = 0; i < winningCombo.length; i++) {
console.log('Its in the X check winner loop');
if((winningCombo[i][0] == sortedArrayX[0]) && (winningCombo[i][1] == sortedArrayX[1]) && (winningCombo[i][2] == sortedArrayX[2])) {
alert("Congrats, you have won!");
return true;
}
return false;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/15672290/javascript-tic-tac-toe-finding-all-possible-combinations-of-numbers-within-an[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия