Curling Challenge

curling-targetCurling is a sport in which players slide stones on a sheet of ice towards a target area which is segmented into four concentric circles. Two teams, each with four players, take turns sliding heavy, polished granite stones, also called rocks, across the ice curling sheet towards the house, a circular target marked on the ice. Each team has eight stones. The purpose is to accumulate the highest score for a game; points are scored for the stones resting closest to the centre of the house at the conclusion of each end, which is completed when both teams have thrown all of their stones. A game usually consists of eight or ten ends.

Challenge #1


We have created a Python script using Python Turtle to represent the target as well as the eight stones, randomly positioned above the target. Our algorithm randomly generates x and y coordinates between -170 and 170 for both coordinates. Each stone is a circle with a radius of 24 pixels. However our algorithm is not realistic as sometimes the stones are overlapping which would be impossible in a real game of curling.

curling-overlapping

Your challenge consists of tweaking this code to prevent two stones from overlapping. To ensure that there is no overlap between two stones you will need to use Pythagora’s theorem:

curling-calculations

Complete the code


Challenge #2


The team who wins is the team who has the closest stone (to the centre of the target: coordinates (0,0)).

In this case the team scores points based on the number of stones resting closer to the target than any of the stones of the opposite team.

Your challenge consists of tweaking your code to find out who is the winning team and to calculate the score of the winning team.

curling-scoring-system

Share Button
Posted in Computer Science, Python - Advanced, Python Challenges Tagged with: ,

Our Latest Book

Follow this blog