一个php处理回合制PK过程的问题
程序员文章站
2022-05-30 20:13:35
...
游戏中就是你打我一下,我打你一下,两边都打完进如下一轮,现在是这样的。
左边是进攻方,先打
------------左边
人物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,
),
);
最后实形成这样一个过程
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过程呢。
回复内容:
游戏中就是你打我一下,我打你一下,两边都打完进如下一轮,现在是这样的。
左边是进攻方,先打
------------左边
人物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,
),
);
最后实形成这样一个过程
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过程呢。
按速度属性排列出来一个攻击顺序队列,攻击完成,出队列
$humen中增加计数属性,记录都有谁攻击过,且每个item中的人物增加血条值属性和is_alive属性,血没了is_alive置为false;
上一篇: 求大侠讲解json字符串处理方案,多谢