как предотвратить мошенничество в веб-играх? - PullRequest
2 голосов
/ 27 февраля 2012

Я уже прошел через другой вопрос об обмане в веб-играх на этом форуме, но я не получил ответа на мою проблему, поэтому я публикую его под аналогичным названием.

Вот проблема:

Я занимаюсь разработкой веб-игры, в которой три одинаковых поля отображаются на веб-странице с использованием простого HTML.

<img src="box.jpg" />
<img src="box.jpg" />
<img src="box.jpg" />

теперь с помощью плагина jquery.path я вращаю эти блоки по случайному пути, и в соответствии с требованиями игры в конце анимации пользователь должен определить положение среднего поля, нажав на три поля.

но если пользователь использует Firebug или Chrome Web Developer, то, просто осмотрев элементы dom, он / она может легко определить положение среднего поля.

, поэтому, пожалуйста, дайте мне предложение решить эту проблему.

PS

В основном я использую простую анимацию jquery, потому что я хочу сделать игру совместимой и со старым браузером, так что лучше использовать анимацию canvas или css3 в моей ситуации? Будут ли они разрешать этот вид?обмана?

1 Ответ

3 голосов
/ 27 февраля 2012

попробуйте рассмотреть возможность использования Javascript. Хотя это может быть отслежено отладчиком JS, обучение использованию отладчика было бы знанием более высокого уровня, чем просто вглядывание в источник или дерево DOM.

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

В моем примере я использую $ .data (), который можно просмотреть. хотя они могут знать идентификатор блока, они не знают значения переменной target внутри замыкания.

рассмотрите возможность рандомизации значения target вместо этого и поместите любую ячейку с таким значением в середину. таким образом, они не будут отслеживать одну и ту же коробку все время.

var game = (function(){

    //set which box is the target
    //they will never know this value
    //i sugest including this in randomizing
    var target = 1;

    //storage variable for the boxes
    var boxes = {};

    //retrieve data stored and check with target
    var check = function(element){
        var boxID = $(element).data('boxID');

        //check if a match
        if(boxID === target){
            alert('got me!');
        } else {
            alert('not me!!!');
        }

    }

    //create 3 boxes and store them in boxes object
    for(var i = 0; i < 3 ; i++){

         //create box HTML and store it in a variable
         //notice that all boxes will have this very same HTML
         var box = $('<img src="box.jpg" />');

         //store the box identifier using $.data()
         //at least in this manner, you are not storing 
         //the id as an attribute
         box.data('boxID',i);

         //if your plugin looks like "element.path()"
         //plug it to every box created
         box.path({
             options:value....
         });

         //add handler for checking
         box.on('click',function(){
             check(this);
         });

         //store in the private variable
         boxes['box'+ i] = box

         //append box to the display, in this case, the body.
         $('body').append(box);
    }

    //your "pathing" function
    var randomize = function(){
        //do your random path stuff here
        //access boxes using: boxes.box1, boxes.box2 and so on...
        //they are jQuery objects already so you can use jQuery functions on them
    };

    //return public accessible methods and functions
    return {
        randomize : randomize //expose the randomize function
    }

}());

после этого, просто позвоните game.randomize(), чтобы определить путь (поскольку в коде публично доступен только случайный выбор)

попытался записать объект game, а также элементы div, без признаков реального target.

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