Skip to content
Snippets Groups Projects
Select Git revision
  • ffe4d6f7056d424982df10629ccbbe023e59f6de
  • master default protected
  • renovate/configure
3 results

twitter_bot.py

Blame
  • Forked from Uni-Film-Club / Programm-Info-Bot
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    main.rs 1.43 KiB
    #![feature(type_alias_impl_trait)]
    
    mod matrix;
    
    use matrix::Matrix;
    use std::fs::read_to_string;
    
    fn main() {
        let data = read_to_string("data.txt").unwrap();
        let mut datamat = Matrix::new_from_str(&data, |c| (c.to_digit(10).unwrap(), false));
    
        datamat.lines_mut().for_each(|line| {
            line.fold(-1, |acc, v| {
                if v.0 as i32 > acc {
                    v.1 = true;
                    v.0 as i32
                } else {
                    acc
                }
            });
        });
        datamat.lines_mut().for_each(|line| {
            line.rev().fold(-1, |acc, v| {
                if v.0 as i32 > acc {
                    v.1 = true;
                    v.0 as i32
                } else {
                    acc
                }
            });
        });
    
        datamat.collumns_mut().for_each(|col| {
            col.fold(-1, |acc, v| {
                if v.0 as i32 > acc {
                    v.1 = true;
                    v.0 as i32
                } else {
                    acc
                }
            });
        });
    
        datamat.collumns_mut().for_each(|col| {
            col.rev().fold(-1, |acc, v| {
                if v.0 as i32 > acc {
                    v.1 = true;
                    v.0 as i32
                } else {
                    acc
                }
            });
        });
    
        datamat.lines().for_each(|v| {
            v.for_each(|x| print!("{}", if x.1 { 'A' } else { '_' }));
            println!();
        });
    
        let visible = datamat.elements.iter().filter(|v| v.1).count();
        println!("Visible trees: {visible}");
    }