Sorry, it just drops a lot of errors. Did you run it under a Linux?
[xtristrix@linux-2 unveil]$ ./main.py ./main.py:186: SyntaxWarning: "is not" with a literal. Did you mean "!="?
if self.visited and clone.get() and self.shade is not 2:
./main.py:218: SyntaxWarning: "is" with a literal. Did you mean "=="?
if self.shade is 3: # white gets -2 when taken away
./main.py:221: SyntaxWarning: "is" with a literal. Did you mean "=="?
elif self.shade is 2: # red gets +2 when sacrificed and can clone itself
./main.py:225: SyntaxWarning: "is" with a literal. Did you mean "=="?
elif self.shade is 1: # green gets +1 when sacrificed
./main.py:228: SyntaxWarning: "is" with a literal. Did you mean "=="?
elif self.shade is 0: # black gets -1 when sacrificed but gets +2 later
./main.py:284: SyntaxWarning: "is" with a literal. Did you mean "=="?
if column_padding is 0:
./main.py:314: SyntaxWarning: "is" with a literal. Did you mean "=="?
if hitbox.shade is 3:
Traceback (most recent call last):
File "./main.py", line 21, in <module>
import pygame
maybe it helps for debuging