Я делаю игру на линкоре, используя JS с интерфейсом связи клиент-сервер.
В моем клиенте я отправляю плитку, по которой щелкает пользователь на игровой доске ЦП, на сервер, чтобы проверить, это HIT или MISS, и в зависимости от того, что сервер отвечает, в какой момент игровая доска обновляется, чтобы показать, был ли ударен корабль или нет.
это часть, на которой мой сервер реагирует на попадание / промах:
// generate cpu attack
var tileToAttack = cpuAttack(dataIn['cpuhitship']);
// cpu tile being attacked by player
var tileXY = dataIn['tileattacked'];
// check if a CPU ship placed on the selected tile
if(allCoords.includes(tileXY)){
// remove tile from array
var index = allCoords.indexOf(tileXY);
if(index != -1){
allCoords.splice(index, 1);
}
// check if ship is destroyed
cpuShipDestroyed(tileXY);
// send back hit response and cpu attack
var jsontext = JSON.stringify({
task:'cpuHit',
tilehit:tileXY,
message:'HIT! BOOOOM!',
carrierlength:carrier.length,
battleshiplength:battleship.length,
submarinelength:submarine.length,
cruiserlength:cruiser.length,
patrolboatlength:patrolboat.length,
cpucoords:allCoords.length,
cpuattack:tileToAttack
});
res.send(jsontext);
}
else{
// send back miss response and cpu attack
var jsontext = JSON.stringify({
task: 'cpuMiss',
tilemiss:tileXY,
cpuattack:tileToAttack,
message:'MISS! All you hear is the missile hitting water!'
});
res.send(jsontext);
console.log(jsontext);
}
этот мой JSON объект, который я отправляю
// get coordinates of the tile being attacked
var attackXY = parseInt(cpuTile.substring(8, 10));
var data =
{
task:'playerAttack',
tileattacked:attackXY
};
$.ajax({
url: url,
method: 'POST',
data: data,
dataType: 'json'
}).done(function(response) {
tileXY - целое число соответствующий плитке на игровой доске. Пример 12 будет 1 плиткой X и 2 плитками Y.
allCoords хранит 17 целых чисел, которые соответствуют расположению корабля ЦП.
Тем не менее, я получаю ответный ответ только если я попаду правильная плитка; он пропускает оператор if и каждый раз переходит к else {}. Любой ключ к тому, что может происходить?