潮玩宇宙方块兽像素人源码搭建代码实现示例

潮玩宇宙里的像素人挖宝石游戏玩法开发成品源码搭建嵌入

玩法:

消耗电石购买的方块兽,可以派出进入宝石矿洞为你采矿。派出的方块兽越多,等级越高,挖宝石速度越快。
-在第5矿洞可解锁自动挖。-派出尽可能多的方块兽,不断合成升级你的方块兽等级越高,挖宝石的速度越快。相同等级的方块兽才可合体升级,不同等级的方块兽之间禁止合体。-不需要的像素人可以拖动至回收站,获得电石。

protected function configure()
    {
        $this->setName('game:cave')
            ->setDescription('生成洞穴')
            ->addOption('cell',null,Option::VALUE_REQUIRED,"障碍占格子总数。此数量可影响洞穴中的障碍数量")
            ->addOption('stone',null,Option::VALUE_REQUIRED,"挖出总宝石数量")
            ->addOption('electric_stone',null,Option::VALUE_REQUIRED,"挖出总电石数量")
            ->addOption('stone_p',null,Option::VALUE_REQUIRED,"宝石矿石数量占比。最大值1,即100%;剩下则是电石矿石数量占比",0.3);
    }

    protected function execute(Input $input, Output $output)
    {
        $cell = $input->getOption("cell");
        if(!$cell) {
            $output->error("请输入障碍占格子总数-》cell");
            return;
        }
        $maxCell = ceil((self::x_total * (self::y_total - 2)) / 2);
        if($cell > $maxCell) {
            $output->error("障碍占格子总数不能超过{$maxCell}-》cell");
            return;
        }

        $stone = $input->getOption("stone");
        if(!$stone) {
            $output->error("请输入挖出总宝石数量-》stone");
            return;
        }

        $electricStone = $input->getOption("electric_stone");
        if(!$electricStone) {
            $output->error("请输入挖出总电石数量-》electric_stone");
            return;
        }

        $stonePercent = $input->getOption("stone_p");
        if($stonePercent < 0 || $stonePercent > 1) {
            $output->error("宝石矿石数量占比必须在0-1之前-》stone_p");
            return;
        }

        if($stonePercent == 0 && $stone > 0) {
            $output->error("设置的宝石矿石数量占比无法分配{$stone}的宝石-》stone,stone_p");
            return;
        }

        if($stone == 0 && $stonePercent > 0) {
            $output->error("设置的宝石矿石数量占比无法分配{$stone}的宝石-》stone,stone_p");
            return;
        }

        if($stonePercent == 1 && $electricStone > 0) {
            $output->error("设置的宝石矿石数量占比无法分配{$electricStone}的电石-》electric_stone,stone_p");
            return;
        }

        if($electricStone == 1 && $stonePercent > 0) {
            $output->error("设置的宝石矿石数量占比无法分配{$electricStone}的电石-》electric_stone,stone_p");
            return;
        }
        $output->info("开始创建洞穴");

        // 当前生成障碍已占用总格数
        $hasCell    = 0;
        // 障碍数据
        $obstacle   = [];
        // 已占用的最标点x,y
        $isUsed     = [];
        $output->info("开始生成障碍数据");
        while ($hasCell < $cell) {
            // 随机x轴
            $x_num = mt_rand(1,self::x_total);
            // 随机y轴。y轴共12行,需留两行的空间用于派出miner占位
            $y_num = mt_rand(1,self::y_total - 2);
            $output->info("已获得障碍起点位置x:{$x_num},y:{$y_num}");
            // 判断当前位置xy是否已被占用
            if($isUsed && in_array("{$x_num},{$y_num}",$isUsed)) {
                $output->info("障碍起点位置已被占用");
                $output->info("已生成障碍占总格数{$hasCell}/{$cell}");
                $output->info("重新获取");

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值