Если игра безошибочна, тогда первый игрок может первым ходом увеличить в 3 раза вторую кучу (2*3=6), второй не станет увеличивать эту-же на 3 т.к сразу проиграет (18>17),
1) он может увеличит первую на три, тогда второй эту же увеличит на 3 и результат 1*3(2)*3(1)=9
9+6=15, первый победит
2)первый игрок будут играть аккуратно и постоянно прибавлять по 2 во вторую кучу, поскольку и в первого "безошибочная игра", то он не станет прибавлять в 1 2 камня(1+2=3, первый умножает эту кучу на 3 и результат 6+(3*3)=15), поэтому и первый и второй будут прибавлять во вторую кучу 6_{1}+2_{2}+2_{1}+2_{2}+2_{1}=15+2_{2}=176
1
+2
2
+2
1
+2
2
+2
1
=15+2
2
=17 17=17 (что по условию не подходит), выиграл 1
1) Если имя переменной в себе содержит больше одного слова, то оно всё равно целиком должно быть написано слитно, иначе SyntaxError
birth day -> BirthDay или birthDay или birth_day
2) # Step 3: if * > **: age = year - birth_year then:
- Переменная birth_year ранее не объявлена
- как интерпретатор должен осознать значение выражения " if * > ** " ?
- Откуда там взялся then: ?
3) print("Your age: {a} years, {b} months, {c} days"):
- Перед форматированной строкой должен стоять флаг f:
print(f' value: {value}')
Вывод: Изучите основы синтаксиса Python