Fajnie że piszesz w jezyku angielskim. Co do samego dzialania wydaje się okej ale zastanow sie czy moment symulacji zmiany nie mozna przerobic na bardziej oczywisty.
Co do stylu napisanego kodu. Jest troche brudny. Można troche zmienic aby stał się bardziej czytelny. Potrójne ify mozesz zamienic na ify z funkcjiami w srodku. Oraz troche nie eleganckie jest przyrownywanie boola w warunku, wystarczy aby zmienna sama tlumaczyla czym jest i tyle. Mały przykład:
if(playerChange){
gameWithChange()
}
else{
gameWithoutChange()
}
Druga sprawa funkcje wywołujace inne funkcje powinny byc poniżej. Czyli w twoim wypadku main powinien byc na samej gorze.
I warto może było by przerobić program tak aby korzystał z obiektowosci?