) {
$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'' => '''');
简单的扑克发牌器
现在已经得到牌组构建器和一些工具,可以帮助计算出抽出特定卡的机率,我们可以整合一个真正简单的发牌器来进行发牌。出于本例的目的,我们将构建一个可以抽出五张牌的发牌器。发牌器将从整副牌中提供五张牌。使用数字指定需要放弃哪些牌,并且发牌器将用一副牌中的其他牌替换这些牌。我们无需指定发牌限制或特殊规则,但是您可能会发现这些是非常有益的个人经验。
如上一节所示,生成并洗牌,然后每只手五张牌。按数组索引显示这些牌,以便可以指定返回哪些牌。您可以使用表示要替换哪些牌的复选框来完成此操作
。
清单 14. 使用复选框表示要替换的牌 复制代码 代码如下:
foreach ($hand as $index =>$card) {
echo "<input type=''checkbox'' name=''card[" . $index . "]''>
" . $card[''face''] . '' of '' . $card[''suit''] . "<br />";
}
然后,计算输入 array
PHP游戏编程25个脚本代码_网学
浏览:
POST[''card''],查看哪些牌已被选择用于替换。
清单 15. 计算输入
复制代码 代码如下:
$i = 0;
while ($i < 5) {
if (isset(
PHP游戏编程25个脚本代码_网学
浏览:
POST[''card''][$i])) {
$hand[$i] = array_shift($deck);
}
}
使用此脚本,您可以尝试找到处理特定一组牌的最佳方法。
Hangman 游戏
Hangman 实质上是一款猜字游戏。给定单词的长度,我们使用有限的几次机会猜这个单词。如果猜出了出现在该单词中的一个字母,则填充该字母出现的所有位置。在猜错若干次(通常为六次)后,您就输了比赛。要构建一个简陋的 hangman 游戏,我们需要从单词列表开始。现在,让我们把单词列表制作成一个简单的数组。
清单 16. 创建单词列表 复制代码 代码如下:
$words = array (
"giants",
"triangle",
"particle",
"birdhouse",
"minimum",
"flood"
);
使用前面介绍的技术,我们可以把这些单词移动到外部单词列表文本文件中,然后根据需要导入。
在得到单词列表后,需要随机选出一个单词,将每个字母显示为空,然后开始猜测。我们需要在每次进行猜测时跟踪正确和错误的猜测。只需序列化猜测数组并在每次猜测时传递它们,就可实现跟踪目的。如果需要阻止人们通过查看页面源代码侥幸猜对,则需要执行一些更安全的操作。
构建数组以保存字母和正确/错误的猜测。对于正确的猜测,我们将用字母作为键并用句点作为值填充数组。
清单 17. 构建保存字母和猜测结果的数组
复制代码 代码如下:
$letters = array(''a'',''b'',''c'',''d'',''e'',''f'',''g'',''h'',''i'',''j'',''k'',''l'',''m'',''n'',''o'',
''p'',''q'',''r'',''s'',''t'',''u'',''v'',''w'',''x'',''y'',''z'');
$right = array_fill_keys($letters, ''.'');
$wrong = array();
现在需要一些代码来评估猜测并在完成猜字游戏的过程中显示该单词。
清单 18. 评估猜测并显示进度 复制代码 代码如下:
if (stristr($word, $guess)) {
$show = '''';
$right[$guess] = $guess;