Skip to content

Instantly share code, notes, and snippets.

@matt-dray
Created May 30, 2019 20:56
Show Gist options
  • Save matt-dray/c6c79162c235123ba227c891d1a2d9bf to your computer and use it in GitHub Desktop.
Save matt-dray/c6c79162c235123ba227c891d1a2d9bf to your computer and use it in GitHub Desktop.
A function to create a soccer player using {brickr}
# Packages
library(brickr)
library(rayshader)
library(tibble)
# Function that takes colours for different parts of the player model.
# Colour codes as per brickr::lego_colors
# Output is a bricks_from_table() list object
# Output should be fed to display_bricks()
create_kit <- function(
hair_col = 39,
skin_col = 8,
boot_col = 2,
shirt_body_col = 7,
shirt_sleeve_col = 1,
shorts_col = 1,
sock_col = 7,
sock_trim_col = 1
){
bricks_df <- tribble(
~"Level", ~`1`, ~`2`, ~`3`, ~`4`, ~`5`,
"A", 0, 0, 0, 0, 0,
"A", 0, boot_col, 0, boot_col, 0,
"A", 0, boot_col, 0, boot_col,0,
"B", 0, 0, 0, 0, 0,
"B", 0, sock_col, 0, sock_col, 0,
"B", 0, 0, 0, 0, 0,
"C", 0, 0, 0, 0, 0,
"C", 0, sock_trim_col, 0, sock_trim_col, 0,
"C", 0, 0, 0, 0, 0,
"D", 0, 0, 0, 0, 0,
"D", 0, skin_col, 0, skin_col, 0,
"D", 0, 0, 0, 0, 0,
"E", 0, shorts_col, 0, shorts_col, 0,
"E", 0, shorts_col, 0, shorts_col, 0,
"E", 0, shorts_col, 0, shorts_col, 0,
"F", 0, shorts_col, shorts_col, shorts_col, 0,
"F", 0, shorts_col, shorts_col, shorts_col, 0,
"F", 0, shorts_col, shorts_col, shorts_col, 0,
"G", 0, shirt_body_col, shirt_body_col, shirt_body_col, 0,
"G", skin_col, shirt_body_col, shirt_body_col, shirt_body_col, skin_col,
"G", 0, shirt_body_col, shirt_body_col, shirt_body_col, 0,
"H", 0, shirt_body_col, shirt_body_col, shirt_body_col, 0,
"H", skin_col, shirt_body_col, shirt_body_col, shirt_body_col, skin_col,
"H", 0, shirt_body_col, shirt_body_col, shirt_body_col, 0,
"I", 0, shirt_body_col, shirt_body_col, shirt_body_col, 0,
"I", skin_col, shirt_body_col, shirt_body_col, shirt_body_col, skin_col,
"I", 0, shirt_body_col, shirt_body_col, shirt_body_col, 0,
"J", 0, shirt_body_col, shirt_body_col, shirt_body_col, 0,
"J", shirt_sleeve_col, shirt_body_col, shirt_body_col, shirt_body_col, shirt_sleeve_col,
"J", 0, shirt_body_col, shirt_body_col, shirt_body_col, 0,
"K", 0, shirt_body_col, shirt_body_col, shirt_body_col, 0,
"K", shirt_sleeve_col, shirt_sleeve_col, shirt_body_col, shirt_sleeve_col, shirt_sleeve_col,
"K", 0, shirt_body_col, shirt_body_col, shirt_body_col, 0,
"L", 0, 0, 0, 0, 0,
"L", 0, 0, skin_col, 0, 0,
"L", 0, 0, 0, 0, 0,
"M", 0, skin_col, skin_col, skin_col, 0,
"M", 0, skin_col, skin_col, skin_col, 0,
"M", 0, skin_col, skin_col, skin_col, 0,
"N", 0, hair_col, hair_col, hair_col, 0,
"N", 0, hair_col, skin_col, hair_col, 0,
"N", 0, skin_col, skin_col, skin_col, 0,
"O", 0, hair_col, hair_col, hair_col, 0,
"O", 0, hair_col, hair_col, hair_col, 0,
"O", 0, hair_col, hair_col, hair_col, 0
)
bricks_list <- bricks_from_table(bricks_df, lego_colors)
return(bricks_list)
}
# Default is Arsenal
arsenal <- create_kit() %>% display_bricks()
# Change kit to Man City's (Raheem Sterling)
man_city <- create_kit(
hair_col = 2,
skin_col = 39,
boot_col = 7,
shirt_body_col = 13,
shirt_sleeve_col = 13,
shorts_col = 1,
sock_col = 27,
sock_trim_col = 27
) %>%
display_bricks()
# rayshader::render_snapshot()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment