r.getPos()[:2] = ((100, 200), (700, 800))
pygame.draw.circle takes 5 values:(screen, color, (x,y), radius, thickness)
...
pygame.draw.circle(screen,WHITE,r.getPos()[:2],10)
...
we have screen,
and the color,
r.getPos()[:2] are2 different (x,y) tuples,
and we have 10 as the last radius or thickness,
...
Strange?
Okay, you've solved your own problem you just don't even realize it yet. The circle function is looking for the values you suggested above. Everything you've provided is correct except the r.getPos() part, which you even identified as being incorrect (r.getPos()[:2] are2 different (x,y) tuples). Now if you take another peek at the circle parameters it's looking for ONE (x,y) tuple. But you're giving it two, as you yourself noted.
Do you see the problem yet? You need to decide which tuple you want to go with, the first or the second.
I have a feeling the confusion comes from the way you're trying to do your indexing. Here's a little example:
>>> r = ((5,2),(7,3))
>>> r[0]
(5, 2)
>>> r[1]
(7, 3)
>>> r[2]
Traceback (most recent call last):
File "<input>", line 1, in <module>
IndexError: tuple index out of range
>>> r[:2]
((5, 2), (7, 3))
>>>
In most computer languages, indexing starts from position 0 (zero). This index is the first element. The second element is thus at index 1. The index after the second element is 2; however in our case there is no third element, so when we try to explicitly call it, we get an error.
Using a colon in indexing means you want a range of indices. When there is no number present, it represents either the starting or ending index. If I use only a colon with no numbers, it is literally giving me a copy of the entire object, from beginning to end:
>>> r[:]
((5, 2), (7, 3))
>>> len(r)
2
As you can see, the length of r is 2. So even though there is no element at index 2, it is still pointing to the "end" of the list. I'll try to draw a picture of how the indexing is represented in a list:
List:
[ A B ]
Indices: 0 1 2
So when I provide the range of [:2] that's the same as saying [0:2] , which is our starting and ending indices. So in this example we get all elements that are between the 0th and 2nd index (A and B, or first and second elements).
If we wanted just the first element we could either use the index [:1] (a.k.a. the element between index 0 and index 1), or explicitly call it using [0] , which is essentially the same thing.
I hope that explanation was clear, it'd be easier to explain if you were in front of me with a chalk board, but hopefully that makes a little bit more sense for you.