Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Red = 01
- Green = 00
- Blue = 10
- Yellow = 11
- */
- const COLOR_ORDER: &str = "grby";
- fn bool_array_to_char(byte: [bool; 8]) -> char {
- let mut b = 0u8;
- for i in 0..8 {
- b |= u8::from(byte[i]) << (7 - i % 8);
- }
- return char::from(b)
- }
- fn main() {
- let grid = [
- "rrryrbbg",
- "rbgrryrg",
- "gbggrbbr",
- "rygygbgg",
- "gybggybg",
- "gbyrgyrr",
- "gyrggbby",
- "gybggyyy"
- ];
- fn parse_color(color: char) -> usize {
- COLOR_ORDER.find(color).unwrap_or(0)
- }
- fn do_that(offset: usize, line: &str) -> [bool; 8] {
- let mut byte: [bool; 8] = [false; 8];
- let mut byte_i = 0;
- for i in 0..=3 {
- let col_value = parse_color(line.chars().nth(i + offset).unwrap_or(' '));
- byte[byte_i] = match col_value {
- 0 => false,
- 1 => false,
- 2 => true,
- 3 => true,
- _ => false,
- };
- byte_i += 1;
- byte[byte_i] = match col_value {
- 0 => false,
- 1 => true,
- 2 => false,
- 3 => true,
- _ => false,
- };
- byte_i += 1;
- }
- return byte
- }
- for line in grid.iter() {
- print!("{}", bool_array_to_char(do_that(0, line)));
- print!("{}", bool_array_to_char(do_that(4, line)));
- }
- println!("");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement