我如何创建一个允许 2 个玩家在 Php/Ajax 中互相战斗的方法


How do I create a method that allows 2 players to fight each other in Php/Ajax?

我正在使用php和ajax开发回合制多人游戏。这些功能允许玩家使用用户信息登录游戏,并选择游戏模式,允许他们与AI或对手对战。每个用户都可以从列表中选择一个字符,并且此功能已经完成。我想创建一个搜索功能,以便一个玩家可以搜索和战斗另一个玩家,类似于国际象棋。但是,目前我希望玩家输入其他用户用户名以进行搜索。我已经搜索了开源以找到创建搜索函数的方法,但是我找到的当前函数破坏了我的代码。这是我当前的模式代码:

// Define Mode
if (isset($_GET['mode'])) {
    $mode = $secure->clean($_GET['mode']);
} else {
    $mode = '';
}
if ($mode == 'selection') {
    $page_title .=' > Character Selection';
    $page_titles .= ' Character Selection - Power Bond';
}
else if ($mode == 'search') {

if (isset($_GET['type'])) {
    $type = $secure->clean($_GET['type']);
} else {
    $type = '';
}
    if ($type == 'private') { 
        if (isset($_POST['pbsubmit']))  {
             $name = $secure->clean($_POST['name']);

        }
    }

} 

现在这是我的阿贾克斯。我找到的功能是用于检查匹配以查找用户名。这个功能打破了我的游戏。

//Check the match.
if (isset($_POST['f']) && $_POST['f'] == 'checkMatch')  {
$checkMatch = $db->query("SELECT * FROM accounts WHERE `id` = '".$account['id']."'");
    while ($info = mysql_fetch_array($checkMatch)) {
        $status = $info['status'];
        $gameid = $info['gameid'];
    }
$getGame = $db->fetch("SELECT * FROM Games WHERE `gameid` = '$gameid'");
        $status = $info['status'];
        $gameid = $info['gameid'];
if(!$getGame = 'NULL') {
    $data = 'testaeta';
} else {
    $data = '<h1> Who do you want to battle against? </h1>
<br />
<form action="" method="post" id="form-pb" name="pb" target="_self">
USERNAME:<input name="name" type="text" size="40" maxlength="40" />
<input name="pbsubmit" type="submit" value="Search"/>
</form>
<a class="goback" href="#">Cancel</a>';
}
echo $data;
}`

这是我的Javascripit:

`var match = null;
function popUp(what){
if(!what) errorMessage('Error: params', 'params', 'none');
switch(what){
    case 'search':
        preLoad('Loading please wait . . .');
        $('#main_container').prepend('<div id="popup"><div class="opacity"></div><div class="search"></div></div>');
        $('.search').load('./?page=game&mode=search&type=private', function(){
            $('#preloader').fadeOut('slow',function(){
                $('#preloader').remove();
            });         
        });
    break;
    case 'match':
        $.ajax({
            url : _path + "/core/ajax.php",
            type : 'POST',
            data : { f: 'checkMatch'},
            dataType : 'text',
            success :  function(data) {
                if(data){
                    $('#main_container').prepend(data);
                    match = setInterval(function(){
                        if(!$('.search').length){
                            $('#main_container').prepend('<div id="popup"><div class="opacity"></div><div class="search"></div></div>');
                        }
                        $('.search').load('./?page=game&mode=search&type=private', function(){
                            var meta = $('#stopMe').attr('content');
                            if(meta){
                                meta = meta.split("URL="), meta = meta[1];
                                window.location = meta;                                             
                            }
                        });                                     
                    },1000);
                }
            }
        });
    break;
    case 'submit':
        $.post('./?page=game&mode=search&type=private', $("#form-pb").serialize(), function(data){
            var $response=$(data);
            var error = $response.filter('h3').text();
            $('.search').html(data);                
            if(!error){
                match = setInterval(function(){
                if(!$('.search').length){
                    $('#main_container').prepend('<div id="popup"><div class="opacity"></div><div class="search"></div></div>');
                }
                $('.search').load('./?page=game&mode=search&type=private', function(){
                    var meta = $('#stopMe').attr('content');                                var meta = $('#stopMe').attr('content');
                    if(meta){
                        meta = meta.split("URL="), meta = meta[1];
                        window.location = meta;                                         
                    }                           
                });                             
                },1000);                    
            }
        });         
    break;
}
}

'除了mysql之外,这些是我的主要关注点,允许它工作。有没有人对我如何解决这个问题有解决方案?另外,如果可能的话,我想要一个开源示例。

无需搜索已经编码的搜索解决方案,通常这非常特定于您的应用程序并且并不复杂。

寻找一个自动完成工具(jQuery提供它),一种获取安全数据的方法(获取或POST,但检查它)和搜索方法:喜欢%...%(简单)或MATCH(...)反对(...(更完整)

似乎是一个匹配系统。您可以在 mysql 中创建一个表,并将其命名为活动战斗。然后,它获取用户A的信息并将其与用户B进行匹配,将他们置于战斗中。我想你也可以为战斗行动做一个表格。该表显示了用户在战斗中执行的操作。