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

php中文网
发布: 2016-06-06 20:35:24
原创
1670人浏览过

游戏中就是你打我一下,我打你一下,两边都打完进如下一轮,现在是这样的。
左边是进攻方,先打
------------左边
人物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过程呢。

回复内容:

游戏中就是你打我一下,我打你一下,两边都打完进如下一轮,现在是这样的。
左边是进攻方,先打
------------左边
人物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过程呢。

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

citySHOP多用户商城系统
citySHOP多用户商城系统

citySHOP是一款集CMS、网店、商品、分类信息、论坛等为一体的城市多用户商城系统,已完美整合目前流行的Discuz! 6.0论坛,采用最新的5.0版PHP+MYSQL技术。面向对象的数据库连接机制,缓存及80%静态化处理,使它能最大程度减轻服务器负担,为您节约建设成本。多级店铺区分及联盟商户地图标注,实体店与虚拟完美结合。个性化的店铺系统,会员后台一体化管理。后台登陆初始网站密匙:LOVES

citySHOP多用户商城系统 0
查看详情 citySHOP多用户商城系统

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

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号