Compare commits

..

2 Commits

Author SHA1 Message Date
Bearmine
5bee972d2f Format code 2025-05-28 17:03:20 -05:00
Bearmine
4b643ed750 Remove bad whitespace 2025-05-28 17:02:33 -05:00
2 changed files with 74 additions and 21 deletions

View File

@@ -4,8 +4,6 @@ use std::fs::File;
use std::io::{BufReader, prelude::*}; use std::io::{BufReader, prelude::*};
use std::num; use std::num;
#[derive(Debug)] #[derive(Debug)]
pub struct Crossword { pub struct Crossword {
data: Vec<Vec<char>>, data: Vec<Vec<char>>,
@@ -24,10 +22,9 @@ impl<'a> WordPuller<'a> {
pub fn take(&self, num_of_letters: usize) -> String { pub fn take(&self, num_of_letters: usize) -> String {
let mut word = String::new(); let mut word = String::new();
for i in 0..num_of_letters { for i in 0..num_of_letters {
let x= self.x as isize + (i as isize * self.direction.0); let x = self.x as isize + (i as isize * self.direction.0);
let y= self.y as isize + (i as isize * self.direction.1); let y = self.y as isize + (i as isize * self.direction.1);
word.push(self.crossword.data[x as usize][y as usize]); word.push(self.crossword.data[x as usize][y as usize]);
} }
@@ -70,14 +67,70 @@ impl Crossword {
self.height self.height
} }
pub fn n(&self, x: usize, y: usize) -> WordPuller { WordPuller {x, y, direction:(-1, 0), crossword: self}} pub fn n(&self, x: usize, y: usize) -> WordPuller {
pub fn ne(&self, x: usize, y: usize) -> WordPuller { WordPuller {x, y, direction:(-1, 1), crossword: self}} WordPuller {
pub fn e(&self, x: usize, y: usize) -> WordPuller { WordPuller {x, y, direction:(0, 1), crossword: self}} x,
pub fn se(&self, x: usize, y: usize) -> WordPuller { WordPuller {x, y, direction:(1, 1), crossword: self}} y,
pub fn s(&self, x: usize, y: usize) -> WordPuller { WordPuller {x, y, direction:(1, 0), crossword: self}} direction: (-1, 0),
pub fn sw(&self, x: usize, y: usize) -> WordPuller { WordPuller {x, y, direction:(1, -1), crossword: self}} crossword: self,
pub fn w(&self, x: usize, y: usize) -> WordPuller { WordPuller {x, y, direction:(0, -1), crossword: self}} }
pub fn nw(&self, x: usize, y: usize) -> WordPuller { WordPuller {x, y, direction:(-1, -1), crossword: self}} }
pub fn ne(&self, x: usize, y: usize) -> WordPuller {
WordPuller {
x,
y,
direction: (-1, 1),
crossword: self,
}
}
pub fn e(&self, x: usize, y: usize) -> WordPuller {
WordPuller {
x,
y,
direction: (0, 1),
crossword: self,
}
}
pub fn se(&self, x: usize, y: usize) -> WordPuller {
WordPuller {
x,
y,
direction: (1, 1),
crossword: self,
}
}
pub fn s(&self, x: usize, y: usize) -> WordPuller {
WordPuller {
x,
y,
direction: (1, 0),
crossword: self,
}
}
pub fn sw(&self, x: usize, y: usize) -> WordPuller {
WordPuller {
x,
y,
direction: (1, -1),
crossword: self,
}
}
pub fn w(&self, x: usize, y: usize) -> WordPuller {
WordPuller {
x,
y,
direction: (0, -1),
crossword: self,
}
}
pub fn nw(&self, x: usize, y: usize) -> WordPuller {
WordPuller {
x,
y,
direction: (-1, -1),
crossword: self,
}
}
} }
impl Display for Crossword { impl Display for Crossword {

View File

@@ -24,14 +24,14 @@ fn main() -> Result<(), Box<dyn Error>> {
let crossword = Crossword::new(File::open(input_file_string)?)?; let crossword = Crossword::new(File::open(input_file_string)?)?;
println!("{}", crossword); println!("{}", crossword);
println!("n: {}", crossword.n(3,3).take(4)); println!("n: {}", crossword.n(3, 3).take(4));
println!("ne: {}", crossword.ne(3,3).take(4)); println!("ne: {}", crossword.ne(3, 3).take(4));
println!("e: {}", crossword.e(3,3).take(4)); println!("e: {}", crossword.e(3, 3).take(4));
println!("se: {}", crossword.se(3,3).take(4)); println!("se: {}", crossword.se(3, 3).take(4));
println!("s: {}", crossword.s(3,3).take(4)); println!("s: {}", crossword.s(3, 3).take(4));
println!("sw: {}", crossword.sw(3,3).take(4)); println!("sw: {}", crossword.sw(3, 3).take(4));
println!("w: {}", crossword.w(3,3).take(4)); println!("w: {}", crossword.w(3, 3).take(4));
println!("nw: {}", crossword.nw(3,3).take(4)); println!("nw: {}", crossword.nw(3, 3).take(4));
Ok(()) Ok(())
} }