Dlaczego użyto tu zmiennych globalnych? Co, jeśli stworzymy dwie instancja klasy MasterMind (hipotetycznie - prowadzimy kilka gier równolegle)? W takiej sytuacji jeden obiekt będzie modyfikował w sposób niekontrolowany (i niepożądany!) stan pozostałych obiektów tej samej klasy. Łatwo też do takiej zmiennej odwoływać się i modyfikować ją wcale nie wiedząc, że mają one wpływ na zachowanie instancji klasy MasterMind.

Proszę sprawdzić znaczenie zmiennej 'self', z którą wywoływany jest konstruktor klasy i myślę, że będzie jasne jak to poprawić.