Yes, the Law of Cosines works for all triangles.
However, the proof depends on the shape a triangle, more precisely, how an altitude from some vertex falls onto the opposite side.
For example, consider a triangle #Delta ABC# with vertices #A#, #B# and #C#, corresponding angles #alpha#, #beta# and #gamma# and correspondingly opposite sides #a#, #b# and #c#.
Let's prove the Law of Cosines that states:
#a^2+b^2-2*a*b*cos(gamma) = c^2#
Let's draw altitude #AH# from vertex #A# to an opposite side #BC# with an intersection of this altitude and a side #BC# at point #H#.
There are different cases of a location of point #H# relatively to vertices #B# and #C#.
It can lie in between vertices #B# and #C#.
It can lie outside of #BC# on a continuation of this side beyond vertex #B# or beyond vertex #C#.
Assume that a base of this altitude, point #H#, is lying on the continuation of #BC# beyond a point #C# (so, #C# is in between #B# and #H#) and prove the Law of Cosines in this case. Other cases are similar to this one.
Let's use the following symbols for segments involved:
#AH# is #h#
#BH# is #a_1#
#CH# is #a_2#
Then, since #C# lies in between #B# and #H#,
#a = a_1 - a_2# or #a_1=a+a_2#
Since both #Delta ABH# and #Delta ACH# are right triangles, by trigonometric dependency between hypotenuse, catheti and angles and by Pythagorean Theorem
#h = b*sin(pi-gamma) = b*sin(gamma)#
#a_2 = b*cos(pi-gamma) = -b*cos(gamma)#
#c^2 = h^2+a_1^2 = b^2*sin^2(gamma)+(a-b*cos(y))^2 =#
#=b^2*sin^2(gamma)+a^2-2*a*b*cos(gamma)+b^2*cos^2(gamma)=#
#=a^2+b^2(sin^2(gamma)+cos^2(gamma))-2*a*b*cos(gamma)=#
#=a^2+b^2-2*a*b*cos(gamma)#
End of Proof
When point #H# lies in between vertices #B# and #C# or on a continuation of side #BC# beyond vertex B, the proof is similar.
See Unizor Trigonometry - Simple Identities - Law of Cosines for visual presentation and more detailed information.