Math Fundamentals18 sections · 814 units
Open in Course

Valid Square - Pseudocode

(Implementation ready)

function validSquare(p1, p2, p3, p4):
    points = [p1, p2, p3, p4]
    distances = []
    
    # Compute all pairwise distances
    for i from 0 to 3:
        for j from i+1 to 3:
            d = distance(points[i], points[j])
            if d == 0:
                return false  # Duplicate points
            distances.append(d)
    
    # Sort to group equal distances
    sort(distances)
    
    # Check pattern: 4 equal sides, 2 equal diagonals
    if distances[0] == distances[1] == distances[2] == distances[3] and
       distances[4] == distances[5] and
       distances[3] < distances[4]:
        return true
    
    return false

function distance(p1, p2):
    return sqrt((p2[0]-p1[0])^2 + (p2[1]-p1[1])^2)