php可以做游戏脚本,25个PHP游戏编程脚本代码

胜率计算器:发牌

由于构建扑克牌时会分别跟踪每张牌的牌面和花色,因此可以通过编程方式利用这副牌来计算得到特定牌的几率。首先每只手分别抽出五张牌。

清单 10. 每只手抽出五张牌

$hands = array(1 => array(), 2=>array());

for ($i = 0; $i < 5; $i++) {

$hands[1][] = implode(" of ", array_shift($deck));

$hands[2][] = implode(" of ", array_shift($deck));

}

然后可以查看这副牌,看看剩余多少张牌以及抽到特定牌的机率是多少。查看剩余的牌数十分简单。只需要计算 $deck 数组中包含的元素数。要获得抽到特定牌的机率,我们需要一个函数来遍历整副牌并估算其余牌以查看是否匹配。

清单 11. 计算抽到特定牌的几率

function calculate_odds($draw, $deck) {

$remaining = count($deck);

$odds = 0;

foreach ($deck as $card) {

if ( ($draw['face'] == $card['face'] && $draw['suit'] ==

$card['suit'] ) ||

($draw['face'] == '' && $draw['suit'] == $card['suit'] ) ||

($draw['face'] == $card['face'] && $draw['suit'] == '' ) ) {

$odds++;

}

}

return $odds . ' in ' $remaining;

}

现在可以选出尝试抽出的牌。为了简单起见,传入看上去类似某张牌的数组。我们可以查找特定的一张牌。

清单 12. 查找指定的一张牌

$draw = array('face' => 'Ace', 'suit' => 'Spades');

echo implode(" of ", $draw) . ' : ' . calculate_odds($draw, $deck);

或者可以查找指定牌面或花色的牌。

清单 13. 查找指定牌面或花色的牌

$draw = array('face' => '', 'suit' => 'Spades');

$draw = array('face' => 'Ace', 'suit' => '');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值