#include <stdio.h>
#include <stdlib.h>

void bresenhamLine(int x1, int y1, int x2, int y2) {
    int dx = x2 - x1;
    int dy = y2 - y1;
    int d = 2 * dy - dx;    // Initial decision parameter
    int x = x1;
    int y = y1;
    
    // Plot initial point
    printf("Point: (%d, %d)\n", x, y);
    
    while (x < x2) {
        x++;    // Move east
        
        if (d < 0) {
            // Choose East pixel
            d = d + 2 * dy;
        } else {
            // Choose Northeast pixel
            y++;
            d = d + 2 * (dy - dx);
        }
        
        printf("Point: (%d, %d)\n", x, y);
    }
}

int main() {
    int x1, y1, x2, y2;
    
    // Get input coordinates
    printf("Enter starting point (x1 y1): ");
    scanf("%d %d", &x1, &y1);
    
    printf("Enter ending point (x2 y2): ");
    scanf("%d %d", &x2, &y2);
    
    // Draw the line
    printf("\nPlotting line from (%d,%d) to (%d,%d)\n", x1, y1, x2, y2);
    bresenhamLine(x1, y1, x2, y2);
    
    return 0;
}