swap directories of part 1 part 2 because iw orked on part1 by accident

This commit is contained in:
endernon 2024-12-04 23:57:21 +00:00
parent b48c5eb39f
commit 35c23272cb
2 changed files with 94 additions and 94 deletions

View file

@ -33,62 +33,104 @@ fn main() {
let leny = frfrvec.clone().len(); let leny = frfrvec.clone().len();
for y in 1..leny { for y in 1..leny {
let widthup = y >= 2; let widthup = y >= 4;
let widthdown = (leny - y) >= 2; let widthdown = (leny - y) >= 4;
for x in 1..lenx+1 { for x in 1..lenx+1 {
// check if enough space left and right // check if enough space left and right
let widthleft = x >= 2; let widthleft = x >= 4;
let widthright = (lenx - x) >= 1; let widthright = (lenx - x) >= 3;
// search algorithm starts here // search algorithm starts here
// check if the char is X // check if the char is X
if frfrvec[y][x] == 'A' { if frfrvec[y][x] == 'X' {
println!("x is {x}"); println!("x is {x}");
println!("y is {y}"); println!("y is {y}");
println!("width up: {}", widthup); println!("width up: {}", widthup);
println!("width down: {}", widthdown); println!("width down: {}", widthdown);
println!("width left: {}", widthleft); println!("width left: {}", widthleft);
if widthup && widthleft && widthdown && widthright { // check if going upwards
// check if start from top if widthup {
if frfrvec[y - 1][x - 1] == 'M' // up left if frfrvec[y - 1][x] == 'M'
&& frfrvec[y - 1][x + 1] == 'M' // up right && frfrvec[y - 2][x] == 'A'
&& frfrvec[y + 1][x - 1] == 'S' // down left && frfrvec[y - 3][x] == 'S'
&& frfrvec[y + 1][x + 1] == 'S' // down right
{ {
pointcounter += 1; pointcounter += 1;
println!("successful up"); println!("successful up");
} }
// check if start from left }
if frfrvec[y - 1][x - 1] == 'M' // up left // check if going diag up left
&& frfrvec[y - 1][x + 1] == 'S' // up right if widthup && widthleft {
&& frfrvec[y + 1][x - 1] == 'M' // down left if frfrvec[y - 1][x - 1] == 'M'
&& frfrvec[y + 1][x + 1] == 'S' // down right && frfrvec[y - 2][x - 2] == 'A'
&& frfrvec[y - 3][x - 3] == 'S'
{
pointcounter += 1;
println!("successful up left");
}
}
// check if going left
if widthleft {
if frfrvec[y][x - 1] == 'M'
&& frfrvec[y][x - 2] == 'A'
&& frfrvec[y][x - 3] == 'S'
{ {
pointcounter += 1; pointcounter += 1;
println!("successful left"); println!("successful left");
} }
// check if start from bottom }
if frfrvec[y - 1][x - 1] == 'S' // up left // check if going diag down left
&& frfrvec[y - 1][x + 1] == 'S' // up right if widthdown && widthleft {
&& frfrvec[y + 1][x - 1] == 'M' // down left if frfrvec[y + 1][x - 1] == 'M'
&& frfrvec[y + 1][x + 1] == 'M' // down right && frfrvec[y + 2][x - 2] == 'A'
&& frfrvec[y + 3][x - 3] == 'S'
{
pointcounter += 1;
println!("successful down left");
}
}
// check if going down
if widthdown {
if frfrvec[y + 1][x] == 'M'
&& frfrvec[y + 2][x] == 'A'
&& frfrvec[y + 3][x] == 'S'
{ {
pointcounter += 1; pointcounter += 1;
println!("successful down"); println!("successful down");
} }
// check if start from right }
if frfrvec[y - 1][x - 1] == 'S' // up left // check if going diag down right
&& frfrvec[y - 1][x + 1] == 'M' // up right if widthdown && widthright {
&& frfrvec[y + 1][x - 1] == 'S' // down left if frfrvec[y + 1][x + 1] == 'M'
&& frfrvec[y + 1][x + 1] == 'M' // down right && frfrvec[y + 2][x + 2] == 'A'
&& frfrvec[y + 3][x + 3] == 'S'
{
pointcounter += 1;
println!("successful down right");
}
}
// check if going right
if widthright {
if frfrvec[y][x + 1] == 'M'
&& frfrvec[y][x + 2] == 'A'
&& frfrvec[y][x + 3] == 'S'
{ {
pointcounter += 1; pointcounter += 1;
println!("successful right"); println!("successful right");
} }
} }
// check if going diag right up
if widthright && widthup {
if frfrvec[y - 1][x + 1] == 'M'
&& frfrvec[y - 2][x + 2] == 'A'
&& frfrvec[y - 3][x + 3] == 'S'
{
pointcounter += 1;
println!("successful up right");
}
}
} }
println!("\n") println!("\n")
} }

View file

@ -33,104 +33,62 @@ fn main() {
let leny = frfrvec.clone().len(); let leny = frfrvec.clone().len();
for y in 1..leny { for y in 1..leny {
let widthup = y >= 4; let widthup = y >= 2;
let widthdown = (leny - y) >= 4; let widthdown = (leny - y) >= 2;
for x in 1..lenx+1 { for x in 1..lenx+1 {
// check if enough space left and right // check if enough space left and right
let widthleft = x >= 4; let widthleft = x >= 2;
let widthright = (lenx - x) >= 3; let widthright = (lenx - x) >= 1;
// search algorithm starts here // search algorithm starts here
// check if the char is X // check if the char is X
if frfrvec[y][x] == 'X' { if frfrvec[y][x] == 'A' {
println!("x is {x}"); println!("x is {x}");
println!("y is {y}"); println!("y is {y}");
println!("width up: {}", widthup); println!("width up: {}", widthup);
println!("width down: {}", widthdown); println!("width down: {}", widthdown);
println!("width left: {}", widthleft); println!("width left: {}", widthleft);
// check if going upwards if widthup && widthleft && widthdown && widthright {
if widthup { // check if start from top
if frfrvec[y - 1][x] == 'M' if frfrvec[y - 1][x - 1] == 'M' // up left
&& frfrvec[y - 2][x] == 'A' && frfrvec[y - 1][x + 1] == 'M' // up right
&& frfrvec[y - 3][x] == 'S' && frfrvec[y + 1][x - 1] == 'S' // down left
&& frfrvec[y + 1][x + 1] == 'S' // down right
{ {
pointcounter += 1; pointcounter += 1;
println!("successful up"); println!("successful up");
} }
} // check if start from left
// check if going diag up left if frfrvec[y - 1][x - 1] == 'M' // up left
if widthup && widthleft { && frfrvec[y - 1][x + 1] == 'S' // up right
if frfrvec[y - 1][x - 1] == 'M' && frfrvec[y + 1][x - 1] == 'M' // down left
&& frfrvec[y - 2][x - 2] == 'A' && frfrvec[y + 1][x + 1] == 'S' // down right
&& frfrvec[y - 3][x - 3] == 'S'
{
pointcounter += 1;
println!("successful up left");
}
}
// check if going left
if widthleft {
if frfrvec[y][x - 1] == 'M'
&& frfrvec[y][x - 2] == 'A'
&& frfrvec[y][x - 3] == 'S'
{ {
pointcounter += 1; pointcounter += 1;
println!("successful left"); println!("successful left");
} }
} // check if start from bottom
// check if going diag down left if frfrvec[y - 1][x - 1] == 'S' // up left
if widthdown && widthleft { && frfrvec[y - 1][x + 1] == 'S' // up right
if frfrvec[y + 1][x - 1] == 'M' && frfrvec[y + 1][x - 1] == 'M' // down left
&& frfrvec[y + 2][x - 2] == 'A' && frfrvec[y + 1][x + 1] == 'M' // down right
&& frfrvec[y + 3][x - 3] == 'S'
{
pointcounter += 1;
println!("successful down left");
}
}
// check if going down
if widthdown {
if frfrvec[y + 1][x] == 'M'
&& frfrvec[y + 2][x] == 'A'
&& frfrvec[y + 3][x] == 'S'
{ {
pointcounter += 1; pointcounter += 1;
println!("successful down"); println!("successful down");
} }
} // check if start from right
// check if going diag down right if frfrvec[y - 1][x - 1] == 'S' // up left
if widthdown && widthright { && frfrvec[y - 1][x + 1] == 'M' // up right
if frfrvec[y + 1][x + 1] == 'M' && frfrvec[y + 1][x - 1] == 'S' // down left
&& frfrvec[y + 2][x + 2] == 'A' && frfrvec[y + 1][x + 1] == 'M' // down right
&& frfrvec[y + 3][x + 3] == 'S'
{
pointcounter += 1;
println!("successful down right");
}
}
// check if going right
if widthright {
if frfrvec[y][x + 1] == 'M'
&& frfrvec[y][x + 2] == 'A'
&& frfrvec[y][x + 3] == 'S'
{ {
pointcounter += 1; pointcounter += 1;
println!("successful right"); println!("successful right");
} }
} }
// check if going diag right up
if widthright && widthup {
if frfrvec[y - 1][x + 1] == 'M'
&& frfrvec[y - 2][x + 2] == 'A'
&& frfrvec[y - 3][x + 3] == 'S'
{
pointcounter += 1;
println!("successful up right");
}
}
} }
println!("\n") println!("\n")
} }