Amstelheage.py

Tried to maximise the location of the houses such that the value of the land is optimal.
This is done by randomly picking a house, changing it in some arbitrary direction by 0.5 meters and checking if HIS value increases. If it does, place the house at that new location, if it doesn't place the house at old location.  

Some notes:
1. After moving the houses, the program checks the value of the house moved, not the impact of all the houses on the land. 

2. AngleConvert() can probably go away, because we have the angle between all the houses we can just calculate the minimum distance in the method checkPosition(), so we don't need the minimum distance of ALL the angles I did initially.

3. The minimum distance in AngleConvert() isn't correct yet:
I currently have the minimum distance as a horizontal line, but i guess we can just use Pythagorus' theorem to calculate the hypothenuse needed.

4. Still not really sure why we need subclasses for the houses... The reason the robot assignment needed subclasses is because both the robot types moved differently, the houses just have different specifications which can just be the same class but with different input variables.

5. checkPosition(), getTotalVrijstand() and getVrijstand() all have the same kind of code but with different returns, so we have to make a method which does exactly this and let the three methods above call that one method.

6. borders of the field do not stop vrijstand meters.

7. Have not maximised w.r.t. vrijstand.

8. I'm going to edit the GUI so that it shows the initial positions of the houses to that of the final positioning.

Code is kind of slow... to move the houses of the 60 variant 10,000 times it takes 2 minutes and 40 seconds. Also it seems as though no better positions are available after ~~ 7500 changes. Answers are VERY dependent of initial positions, more than I expected.