Express пропуск сервера if и отправка ответа на POST-запрос - PullRequest
0 голосов
/ 03 марта 2020

Я делаю игру на линкоре, используя 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 {}. Любой ключ к тому, что может происходить?

1 Ответ

0 голосов
/ 03 марта 2020

Исправлено. Мне пришлось использовать parseInt ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...