swap directories of part 1 part 2 because iw orked on part1 by accident
This commit is contained in:
parent
65c3087c24
commit
8e1ff94001
5 changed files with 94 additions and 94 deletions
|
@ -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")
|
||||||
}
|
}
|
||||||
|
|
|
@ -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")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue