Skip to contents

`card_is_face()` checks whether each card in a vctrs "card" record is a face card (Jack, Queen, or King). When applied to a plain character vector, it returns the character vector unchanged, as this function was specifically designed for vctrs "card" records.

Usage

card_is_face(x, ...)

Arguments

x

A `card` object (created by `create_shuffled_deck()`) or a character vector of card names (e.g., `"A♠"`, `"J♥"`).

...

Additional arguments passed to methods. Not used. If `x` is a `card`, returns a logical vector indicating which are face cards. If `x` is character, returns it unchanged.

Value

Depending on the method:

card

A logical vector (TRUE for each face card).

character

The input character vector, unchanged.

Details

- Specifically designed for objects of class "card" (vctrs record from create_shuffled_deck()). - card_is_face.card(x) extracts the is_face field via vctrs::field(x, "is_face"). - card_is_face.character(x) returns x unchanged. - card_is_face.default(x) throws an error if input is not a "card" or character.

Examples

deck <- create_shuffled_deck()
card_is_face(deck)
#>   [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE
#>  [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
#>  [25] FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE
#>  [37] FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
#>  [49]  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE
#>  [61]  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
#>  [73] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
#>  [85] FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE
#>  [97] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE
#> [109]  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
#> [121] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
#> [133]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
#> [145]  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
#> [157]  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE
#> [169] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
#> [181] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
#> [193]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
#> [205] FALSE FALSE FALSE FALSE

card_is_face(c("J♣", "9♦", "K♠"))  # Character input: unchanged
#> [1] "J♣" "9♦" "K♠"