配对
作者:Nelo Onyiah
在“配对”游戏中,参赛者将获得一系列五张扑克牌,并被要求确定有多少对牌。
活动场景
这是比较简单的活动之一,无论是解释还是执行。在这个活动中,我们将使用一副标准的扑克牌。一副标准的扑克牌由四种花色组成:红桃、黑桃、梅花和方块。每种花色都有从 2 到 10 的数字牌,外加一张 J、一张 Q、一张 K 和一张 A。
给定一组随机的五张牌,你的任务是找出这组牌中有多少对。换句话说,如果你的五张牌是红桃 2、黑桃 4、梅花 4、方块 Q 和黑桃 Q,那么你有 2 对:2 个 4 和 2 个 Q。再举一个例子,你可能有梅花 3、方块 3、红桃 3、黑桃 10 和红桃 A。在这种情况下,你有 3 对:梅花 3 和方块 3;方块 3 和红桃 3;以及梅花 3 和红桃 3。
对于此活动,你应该假设你已经获得了以下五张牌
黑桃 7
红桃 5
方块 7
梅花 7
梅花 K
使用这组牌,你的脚本应该显示对数。请记住,我们会在测试时查看脚本。一个只显示数字 3 的脚本将获得 0 分;你实际上必须根据这些牌进行计算。不仅如此,牌是什么并不重要:如果我们用任何其他五张牌替换,你的脚本仍然应该返回正确的对数。
用法
$ perl6 event001-j1n3l0.pl <cards>
注意
<cards> 应该是 2 到 10、J、Q、K、A 中的一个(尽管我没有检查)。
use v6; my @default-cards = qw{7 5 7 7 K}; sub MAIN(@cards = @default-cards) { my $pairs = 0; repeat { my $card = @cards.shift; for @cards -> $other_card { $pairs++ if $card eq $other_card; } } until @cards.elems == 0; say 'Total: ' ~ $pairs; }