做了个集卡活动(模仿集五福),结果不会写合成卡片逻辑了,帮忙看看,请喝咖啡

jianqi

问题描述

首先是问了ai ,问了豆包 文心 chatgpt mini 都是乱写,不是死循环,就是错误,有高手帮解决,请喝咖啡

为此你搜索到了哪些方案及不适用的原因

需求如下:
有个集卡游戏,卡片类型有 卡片A、卡片B、卡片C、卡片D、卡片E 一共五种卡, 集齐5种可以合成超级卡,如果卡片不足,可以用用万能卡代替任意卡片, 用php写代码,模拟有1个用户,他有很多张各种类型的卡,统计最后他能合成几张超级卡,其实就是支付宝的集五福。

//模拟查询数据
$userCards = [
'A' => 1,
'B' => 1,
'C' => 10,
'D' => 1,
'E' => 1,
];

// 万能卡数量
$wan = 3;

好了可以开始了,加油

212 2 0
2个回答

jianqi

尴尬死了,ai写的都是错误的,上线前检查出来了。
~~多问了几遍ai,已经好了,咖啡就请ai喝了 代码很简单,主要是用到了while,老爱死循环,多喝ai说几句就修正了。
ai写的代码如下:~~

function countSuperCards($userCards, $jokerCount)
    {
      $superCardCount = 0;
      while (true) {
        $hasAllCards = true;
        $tempJokerCount = $jokerCount;
        $requiredCards = ['A', 'B', 'C', 'D', 'E'];

        foreach ($requiredCards as $card) {
          if (!isset($userCards[$card]) || $userCards[$card] < 1) {
            if ($tempJokerCount > 0) {
              $tempJokerCount--;
            } else {
              $hasAllCards = false;
              break;
            }
          } else {
            $userCards[$card]--;
          }
        }

        if (!$hasAllCards) {
          break;
        }

        $superCardCount++;
        $jokerCount = $tempJokerCount; // 更新万能卡数量
      }

      return $superCardCount;
    }

    // 示例调用
    $userCards = [
      'A' => 0,
      'B' => 15,
      'C' => 13,
      'D' => 18,
      'E' => 1,
    ];

    // 万能卡数量
    $jokerCount = 3;
    echo "能合成超级卡的数量: " . countSuperCards($userCards, $jokerCount);
  • 暂无评论
muyu

万能卡也是转化为其他卡使用的,不是合成的时候自动转化为缺失的卡~

  • 暂无评论
×
🔝