recherche

Maison  >  Questions et réponses  >  le corps du texte

一个php处理回合制PK过程的问题

游戏中就是你打我一下,我打你一下,两边都打完进如下一轮,现在是这样的。
左边是进攻方,先打
------------左边
人物A,人物B,人物C
------------右边
敌人A
PK过程是
人物A ---->攻击: 敌人A
敌人A ---->攻击: 人物A   (现在敌人攻击完了,左边没有攻击完)
人物B ---->攻击: 敌人A
人物C ---->攻击: 敌人A
==========到这里,一轮攻击就算完毕,进入下一轮PK===== 人物先手(即左边)
人物A ---->攻击: 敌人A
敌人A ---->攻击: 人物A   (现在敌人攻击完了,左边没有攻击完)
人物B ---->攻击: 敌人A
人物C ---->攻击: 敌人A
.....
比如双方的人物是由数组组成的。
//人物
$humen = array(
    1 => array(
        'name'=>'人物A'
        'is_attack'=>0,//表示本轮是否攻击过,到新一轮的时候就重置他
    ),
    2 => array(
        'name'=>'人物B',
        'is_attack'=>0,
    ),
    3 => array(
        'name'=>'人物C',
        'is_attack'=>0,     
    )
);
//敌人
$enemy= array(
    1 => array(
        'name'=>'敌人A',
        'is_attack'=>0,
    ),
); 
最后实形成这样一个过程 
<?php
$process = array(
    0 => array(
        launch => 'left',
        attackor => 1, //人物A发起攻击
        hurt => array(0 => array('beattackors' => 1), //敌人A被攻击  beattackors 对应地方的数组索引
        )
    ),
    1 => array(
        launch => 'right',
        attackor => 1, //敌人A发起攻击
        hurt => array(0 => array('beattackors' => 1), //人物A被攻击  beattackors 对应地方的数组索引
        )
    ),
    2 => array(
        launch => 'left',
        attackor => 2, //人物B发起攻击
        hurt => array(0 => array('beattackors' => 1), //敌人A被攻击  beattackors 对应地方的数组索引
        )
    ), //到这里由于敌人已经攻击完了,但是本方还没有攻击完,继续left
    3 => array(
        launch => 'left',
        attackor => 3, //人物C发起攻击
        hurt => array(0 => array('beattackors' => 1), //攻击敌人A  beattackors 对应地方的数组索引
        )
    )
);

PHP怎么实现这个PK过程呢。

PHPzPHPz2894 Il y a quelques jours353

répondre à tous(2)je répondrai

  • PHPz

    PHPz2017-04-10 15:36:13

    $humen中增加计数属性,记录都有谁攻击过,且每个item中的人物增加血条值属性和is_alive属性,血没了is_alive置为false;

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-10 15:36:13

    按速度属性排列出来一个攻击顺序队列,攻击完成,出队列

    répondre
    0
  • Annulerrépondre