// Function to calculate new coordinates after adding 1 to x and subtracting 1 from y
void xadd_yminus(int initial_x, int initial_y) {
int x = initial_x;
int y = initial_y;
Serial.println("xadd_yminus");
Serial.print("Initial coordinates: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
while (x >= 0 && x <= 7 && y >= 0 && y <= 7) {
// Print current coordinates
Serial.print("Current coordinates: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
// Add 1 to x and subtract 1 from y (move right and down)
x += 1;
y -= 1;
}
// Print final coordinates when out of bounds is reached
Serial.print("Final coordinates: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
// Check if out of bounds
if (x < 0 || x > 7 || y < 0 || y > 7) {
Serial.println("Out of bounds! Calculation stopped.");
}
}
// Function to calculate new coordinates after subtracting 1 from x and subtracting 1 from y
void xminus_yminus(int initial_x, int initial_y) {
int x = initial_x;
int y = initial_y;
Serial.println("xminus_yminus");
Serial.print("Initial coordinates: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
while (x >= 0 && x <= 7 && y >= 0 && y <= 7) {
// Print current coordinates
Serial.print("Current coordinates: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
// Subtract 1 from x and subtract 1 from y (move left and down)
x -= 1;
y -= 1;
}
// Print final coordinates when out of bounds is reached
Serial.print("Final coordinates: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
// Check if out of bounds
if (x < 0 || x > 7 || y < 0 || y > 7) {
Serial.println("Out of bounds! Calculation stopped.");
}
}
// Function to calculate new coordinates after adding 1 to x and adding 1 to y
void xadd_yadd(int initial_x, int initial_y) {
int x = initial_x;
int y = initial_y;
Serial.println("xadd_yadd");
Serial.print("Initial coordinates: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
while (x >= 0 && x <= 7 && y >= 0 && y <= 7) {
// Print current coordinates
Serial.print("Current coordinates: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
// Add 1 to x and add 1 to y (move right and up)
x += 1;
y += 1;
}
// Print final coordinates when out of bounds is reached
Serial.print("Final coordinates: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
// Check if out of bounds
if (x < 0 || x > 7 || y < 0 || y > 7) {
Serial.println("Out of bounds! Calculation stopped.");
}
}
// Function to calculate new coordinates after subtracting 1 from x and adding 1 to y
void xminus_yadd(int initial_x, int initial_y) {
int x = initial_x;
int y = initial_y;
Serial.println("xminus_yadd");
Serial.print("Initial coordinates: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
while (x >= 0 && x <= 7 && y >= 0 && y <= 7) {
// Print current coordinates
Serial.print("Current coordinates: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
// Subtract 1 from x and add 1 to y (move left and up)
x -= 1;
y += 1;
}
// Print final coordinates when out of bounds is reached
Serial.print("Final coordinates: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
// Check if out of bounds
if (x < 0 || x > 7 || y < 0 || y > 7) {
Serial.println("Out of bounds! Calculation stopped.");
}
}
// Superfunction to combine all diagonal moves
void calculateBishopMoves(int initial_x, int initial_y) {
// Call each individual function to calculate bishop moves
xadd_yminus(initial_x, initial_y);
xminus_yminus(initial_x, initial_y);
xadd_yadd(initial_x, initial_y);
xminus_yadd(initial_x, initial_y);
}
void setup() {
Serial.begin(9600); // Initialize serial communication
int initial_x = 4; // Example initial x coordinate
int initial_y = 3; // Example initial y coordinate
calculateBishopMoves(initial_x, initial_y);
}
void loop() {
// Empty loop, since calculations are done in setup()
}