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)
##### ###### ##### ### # # ### # # ###### ## ## ## ## ## ## ## # # # # # ## ##### #### ##### # # # # # # # #### ## # ## ## ## ## # # # # # ## ## # ###### ## ### # ### # ######
$ curl repovive.com/roadmaps/math-fundamentals/geometry-basics/valid-square-pseudocode
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██████████████████████████████████████████████████████████████████████████████████████