шашки на python код

Как я шашки писал

ΠŸΡ€Π΅Π΄Ρ‹ΡΡ‚ΠΎΡ€ΠΈΡ

Π’Π°ΠΊ ΡƒΠΆ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΈΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, связанным с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π±Ρ‹Π»Π° рСализация шашСк для Β«Π¨Π°Π³Π° Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅Β». К Π½Π΅ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π΄ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρƒ мСня Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя концСпция ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ€Π΅Π·ΠΊΠΎ помСнялась. НСсмотря Π½Π° это, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±Ρ‹Π»Π° практичСски Π³ΠΎΡ‚ΠΎΠ²Π° ΠΈ с Π½Π΅ΠΉ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ сам процСсс Π΅Ρ‘ написания оказался вСсьма интСрСсным, поэтому я Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΌΠΈ идСями ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сумСл ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ.

ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ³Ρ€Ρ‹

шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄

РСализация

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ наша доска Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² памяти. ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π° ΠΌΠΎΠΉ взгляд, являСтся массив ΠΈΠ· 32 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ свойств. Бвойства хранят всю Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ»Π΅Ρ‚ΠΊΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

РазумССтся, это Π½Π΅ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ свойства, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ всС я Π½Π΅ Π²ΠΈΠΆΡƒ смысла. Π§Ρ‚ΠΎ касаСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ‚ΠΎ ΠΈΡ… Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ нСслоТныС дСйствия Ρ‚ΠΈΠΏΠ° измСнСния ΠΏΠΎΠ»Π΅ΠΉ queen, color ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ…, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊ, ΠΏΡ€ΠΈ Π±ΠΎΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для «очищСния» Ρ‚ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ΄Ρ‘Ρ‚ Π±ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стоит срублСнная шашка, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ для отрисовки шашки Π½Π° Ρ‚ΠΎΠΌ ΠΏΠΎΠ»Π΅, ΠΊΡƒΠ΄Π° происходит Π±ΠΎΠΉ.

Однако ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Ρ€ΡƒΠ±ΠΈΡ‚ΡŒ, ΠΈΠ»ΠΈ Π½Π΅Ρ‚? Для этого ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ…ΠΎΠ΄ΠΎΠΌ доска сканируСтся, провСряя Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… условий, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΠΈΡ‚ΡŒ. Но для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, придСтся Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ доски Π½Π° Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠΉ происходит ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ (это, кстати, Π½ΡƒΠΆΠ½ΠΎ ΠΈ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ…ΠΎΠ΄ΠΎΠ²).

шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄

шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄
Π Π°Π·Π±ΠΈΠ²ΠΊΠ° Π½Π° Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ происходит ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ всС Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ пСрСчислСны снизу-Π²Π²Π΅Ρ€Ρ…. Π­Ρ‚ΠΎ сдСлано для удобства программиста, хотя ΠΈ Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Π’ свойствах ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² пСрСчислСны всС эти Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, Π° Ρƒ Ρ‚Π΅Ρ… Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ»Π΅Ρ‚ΠΊΠ° Π»Π΅ΠΆΠΈΡ‚, стоит true, Π½Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… β€” false.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, я создал нСсколько массивов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТал ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ»Π΅Ρ‚ΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π½Π° Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ соотвСтствуСт массив. Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΌ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ шашки Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ.
Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ Ρ€Π°ΡΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄ΠΎ ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ, ΠΎΠΏΠΈΡˆΡƒ лишь Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ…: Ссли Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ встрСчаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ситуация:
«шашка(1) β€” шашка (2) β€” пустоС ΠΏΠΎΠ»Π΅Β» (Π³Π΄Π΅ 1 ΠΈ 2 β€” ΠΈΠ³Ρ€ΠΎΠΊΠΈ ΠΈ Ρ…ΠΎΠ΄ сСйчас Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠ³Ρ€ΠΎΠΊ β„–1), Π»ΠΈΠ±ΠΎ «пустоС ΠΏΠΎΠ»Π΅ β€” шашка(2) β€” шашка (1)Β» [для боя Π² ΠΎΠ±Π΅ стороны], Ρ‚ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ свойству ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΌΡƒ Π·Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Π΄ΠΎΠ»ΠΆΠ½Π° Π»ΠΈ ΠΎΠ½Π° Ρ€ΡƒΠ±ΠΈΡ‚ΡŒ, Π΅Π΄ΠΈΠ½ΠΈΡ‡ΠΊΡƒ. ΠšΡ€ΠΎΠΌΠ΅ этого ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΠΉ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ(Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Ρ‘ jumpInd), ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΉ Π·Π° Π±ΠΎΠΈ, Π΅Π΄ΠΈΠ½ΠΈΡ‡ΠΊΡƒ. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ситуация, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· шашСк Ρ€ΡƒΠ±ΠΈΡ‚ΡŒ.

Когда ΠΈΠ³Ρ€ΠΎΠΊ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π½Π° ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΡˆΠ°ΡˆΠΊΡƒ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ провСряСтся условиС jumpInd. Если jumpInd=1, Π° шашка, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ» ΠΈΠ³Ρ€ΠΎΠΊ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΠΈΡ‚ΡŒ, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ происходит, Π»ΠΈΠ±ΠΎ выводится сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ³Ρ€ΠΎΠΊ обязан Ρ€ΡƒΠ±ΠΈΡ‚ΡŒ. Если jumpInd=0, Ρ‚ΠΎ провСряСтся, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ эта шашка ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° выполняСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Π½Π° Π±ΠΎΠΉ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΡ€ΠΎΡ‡Π΅: Ссли Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ встрСчаСтся ситуация: «шашка(1) β€” пустоС ΠΏΠΎΠ»Π΅(для Π±Π΅Π»Ρ‹Ρ…) ΠΈ пустоС ΠΏΠΎΠ»Π΅ β€” шашка(1)Β» [для Ρ‡Π΅Ρ€Π½Ρ‹Ρ…], Ρ‚ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ это ΠΏΠΎΠ»Π΅. Если jumpInd=1 ΠΈ ΠΈΠ³Ρ€ΠΎΠΊ Π²Ρ‹Π±Ρ€Π°Π» ΡˆΠ°ΡˆΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ этот Π±ΠΎΠΉ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, Ρ‚ΠΎ ΠΊΠ»Π΅Ρ‚ΠΊΠ°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ Π±ΠΎΠΉ, Ρ‚Π°ΠΊΠΆΠ΅ подсвСчиваСтся. МоТно ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΈ ΡˆΠ°ΡˆΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ сдСлан Ρ…ΠΎΠ΄. Π­Ρ‚ΠΈ дСйствия Π½ΡƒΠΆΠ½Ρ‹ лишь для удобства ΠΈΠ³Ρ€ΠΎΠΊΠ°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ дСйствиСм ΠΈΠ³Ρ€ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ шашкС ΠΈ Ρ‚ΠΎΠ³Π΄Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ начнСтся сначала, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ подсвСчСнному полю ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ…ΠΎΠ΄.

шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python кодшашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ³Ρ€ΠΎΠΊ ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ» ΠΏΠΎ подсвСчСнному полю, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Β«ΠΏΠΎΠ΄Ρ‡ΠΈΡ‰Π°ΡŽΡ‰ΠΈΠ΅ хвосты» ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° ΠΊΠ»Π΅Ρ‚ΠΎΠΊ. Если jumpInd Π±Ρ‹Π» Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Ρ…ΠΎΠ΄ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΈΠ³Ρ€ΠΎΠΊΡƒ. Если jumpInd=1, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΈΠ³Ρ€ΠΎΠΊ ΡΡ€ΡƒΠ±ΠΈΡ‚ΡŒ Π΅Ρ‰Ρ‘ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ. Если Π΄Π°, Ρ‚ΠΎ подсвСтим поля, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ боя. НС стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ стала Π»ΠΈ шашка Π΄Π°ΠΌΠΊΠΎΠΉ. Если Π΄Π°, Ρ‚ΠΎ Π±ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΡƒΠΆΠ΅ ΠΏΠΎ Π΄Π°ΠΌΠΎΡ‡Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ. Если боя Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΎΠΏΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π½Π° ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π² Π΄Π°ΠΌΠΊΡƒ, ΠΎΠ±Π½ΡƒΠ»ΠΈΠΌ jumpInd ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ Ρ…ΠΎΠ΄.

Нам ΡƒΠ΄Π°Π»ΠΎΡΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ простыС пСрСдвиТСния шашки, Π½ΠΎ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°ΠΌΠΎΠΊ. Π—Π΄Π΅ΡΡŒ всё нСсколько слоТнСС Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ я с Π½ΠΈΠΌΠΈ изрядно ΠΏΠΎΠΏΠΎΡ‚Π΅Π», хотя сама ΡΡƒΡ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ°.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ производится ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условий Π² ΠΎΠ±Π΅ стороны, Π½ΠΎ я Π±ΡƒΠ΄Ρƒ ΠΏΠΈΡΠ°Ρ‚ΡŒ лишь Π² ΠΎΠ΄Π½Ρƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡΡƒΡ‚ΡŒ лишь Π² порядкС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ.
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° для Ρ…ΠΎΠ΄Π°: Ссли встрСчаСтся ситуация: Β«Π΄Π°ΠΌΠΊΠ° β€” пустоС ΠΏΠΎΠ»Π΅Β», Ρ‚ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ эту ΠΊΠ»Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ. Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° диагональ Π½Π΅ закончится, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ встрСтится шашка(Π΄Π°ΠΌΠΊΠ°) ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°.
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° для боя: Ссли встрСчаСтся ситуация: Β«Π΄Π°ΠΌΠΊΠ° β€” z пустых ΠΏΠΎΠ»Π΅ΠΉ β€” шашка(Π΄Π°ΠΌΠΊΠ°) ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° β€” n пустых ΠΏΠΎΠ»Π΅ΠΉΒ» (z>=0, n>0), Ρ‚ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ всС n пустых ΠΏΠΎΠ»Π΅ΠΉ послС шашки сопСрника (Ссли встрСтится Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° шашка ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠ°, Ρ‚ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ) ΠΈ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ всС Ρ‚Π΅ манипуляции с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, хранящими ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ боях, Ρ‡Ρ‚ΠΎ ΠΈ Π² случаС с ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ шашкой. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ³Ρ€ΠΎΠΊ ΠΊΠ»ΠΈΠΊΠ½Π΅Ρ‚ Π½Π° ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‡Π΅Π½Π½ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ, слСдуСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠ³ΠΎ боя Π² Π»ΡŽΠ±ΡƒΡŽ сторону, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠΉ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ. РСализация всСх этих ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΈ условий заняла Ρƒ мСня ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ мСста, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, я просто Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ упустил ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всё ΠΊΠΎΡ€ΠΎΡ‡Π΅ ΠΈ красивСС.

шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄

И Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΠΎΡ‡Π΅Π½ΡŒ ваТная Π²Π΅Ρ‰ΡŒ: Π½Π΅ стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ условии: ΡˆΠ°ΡˆΠΊΡƒ нСльзя ΡΡ€ΡƒΠ±ΠΈΡ‚ΡŒ Π΄Π²Π°ΠΆΠ΄Ρ‹. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли шашка Π½Π° Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ сСйчас Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ, ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° срублСна, Ρ‚ΠΎ Ρ…ΠΎΠ΄ заканчиваСтся (для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ шашки Π½Π° Ρ‚ΠΎΠΌ ΠΏΠΎΠ»Π΅, Π³Π΄Π΅ ΠΎΠ½Π° сСйчас стоит, Π° для Π΄Π°ΠΌΠΊΠΈ Π½Π° Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΠ· пустых ΠΏΠΎΠ»Π΅ΠΉ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ этой ΡƒΠΆΠ΅ срублСнной шашки ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠ°). Как Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ массивС адрСса ΡƒΠΆΠ΅ срублСнных шашСк, обнуляя Π΅Π³ΠΎ лишь ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Ρ…ΠΎΠ΄Π°. (собствСнно, я ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΈ Π΄Π΅Π»Π°Π»)

шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄
(Π”Π°ΠΌΠΊΠ° Ρ‡Π΅Ρ€Π½Ρ‹Ρ… обязана Ρ€ΡƒΠ±ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ: h4:e1:c3:e5 ΠΈ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ шашка g3 всё Π΅Ρ‰Ρ‘ Π½Π° доскС. ПослС этого Π±Π΅Π»Ρ‹Π΅ рубят Π² Π΄Π°ΠΌΠΊΠΈ ΠΈ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°ΡŽΡ‚)

Π’Π΅ΡΡŒ этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π±Π»ΠΎΠΊ-схСмой:

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠ»ΠΈΠΊ:
шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ»ΠΈΠΊ:
шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° поняла, Π³Π΄Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠ»ΠΈΠΊ, Π° Π³Π΄Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ, β€” создадим Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, false = ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠ»ΠΈΠΊ, true = Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ»ΠΈΠΊ.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ, Π½Π° этом рСализация ΠΏΡ€Π°Π²ΠΈΠ» ΠΈΠ³Ρ€Ρ‹ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Всё выглядит ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСслоТно, Π½ΠΎ ΠΏΡ€ΠΈ пСрСносС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² ΠΊΠΎΠ΄ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ мноТСство ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ трудностСй, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠ΄ всё Ρ€Π°Π·Π±ΡƒΡ…Π°Π΅Ρ‚ ΠΈ Ρ€Π°Π·Π±ΡƒΡ…Π°Π΅Ρ‚. Π’ΠΈΠ½ΠΎΠ²Π°Ρ‚ Π² этом сам ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ доски, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΌΠ½ΠΎΠΉ, Π½ΠΎ это Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ Π·Π° Ρ‚Π΅ Π΄Π²Π΅-Ρ‚Ρ€ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ (Π΄Π° ΠΈ Ρ‚Π΅ с ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π°ΠΌΠΈ), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС дСйствия максимально наглядны, Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π° ΠΊΠΎΠ΄ читаСтся достаточно Π»Π΅Π³ΠΊΠΎ. Полагаю, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π΄ΠΈ этого Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄Π° β€” допустимо.

Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚

Однако Π½Π° этом наши ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π—Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈ шашки Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ, Π½ΠΎ с ΠΊΠ΅ΠΌ ΠΆΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ? Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ для ΠΈΠ³Ρ€Ρ‹. К соТалСнию, ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρƒ мСня Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ·-Π·Π° ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ‡ΠΈΠ½Π°Π»Π° Π²ΠΈΡΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈ просчСтС Π΄Π°Π»Π΅Π΅, Ρ‡Π΅ΠΌ Π½Π° 5-6 Ρ…ΠΎΠ΄ΠΎΠ² (порядка 20-25 тысяч ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ). ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ я пользовался ΠΊΠ½ΠΈΠ³ΠΎΠΉ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡˆΠ°Ρ…ΠΌΠ°Ρ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… логичСских ΠΈΠ³Ρ€ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π΅Ρ‘ всСм, ΠΊΡ‚ΠΎ заинтСрСсуСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ИИ Π² логичСских ΠΈΠ³Ρ€Π°Ρ…. Π― остановился Π½Π° ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ Β«Π°Π»ΡŒΡ„Π°-Π±Π΅Ρ‚Π° отсСчСний», Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ здСсь я Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Ρƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· Π½Π° Π₯Π°Π±Ρ€Π΅ Π±Ρ‹Π» описан Π΄ΠΎ мСня, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

К Π½Π΅ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, концСпция ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° конкурс, ΠΊΠ°ΠΊ я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Π² Π½Π°Ρ‡Π°Π»Π΅, помСнялась β€” поэтому ИИ Ρ‚Π°ΠΊ ΠΈ остался Π½Π΅Π΄ΠΎΠ΄Π΅Π»Π°Π½Π½Ρ‹ΠΌ ΠΈ Π±Ρ‹Π» ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½ Π² дальний ящик. НСкоторыС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я успСл ΡΡ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ β€” Ρ‚ΠΎΠΆΠ΅. Π― ΠΌΠΎΠ³ Π±Ρ‹ привСсти ΠΈΡ… здСсь, Π½ΠΎ особого интСрСса ΠΈΠ·-Π·Π° своСй спСцифичности ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚. Если ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно, Ρ‚ΠΎ ΠΌΠΎΠ³Ρƒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΏΡ€ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ отсСчСний. Π’Π°ΠΊ ΠΊΠ°ΠΊ всё это Π΄Π΅Π»ΠΎ происходило ΠΏΠΎΠ»Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ ΠΈ ΡΡ‚Π°Ρ‚ΡŒΡŽ я писал Π² основном ΠΏΠΎ памяти, Ρ‚ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ нСточности ΠΈΠ»ΠΈ нСсоотвСтствия, Π±ΡƒΠ΄Ρƒ Ρ€Π°Π΄, Ссли Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΌΠ½Π΅ Π½Π° Π½ΠΈΡ… Π² коммСнтариях. Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ Ρ‚Π°ΠΌ ΠΆΠ΅. Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Шашки на python код

AI for Playing Russian Checkers (aka «Shashki»)

шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄

The code plays Russian Checkers (see official rules) against a popular Android App with the same name (500k+ installs, 4.3 stars). Below we refer to this app as the «Android app».

The original motivation of the project was to beat that app on the most difficult level (called «very hard»). This goal was achieved in that the present AI’s typically winning about 43% of the games while losing around 12% to the Android app; the remaining 45% are a draw. Please note that despite this specific goal the AI is not tied in any way to play against this specific app and it can be used to compute optimal moves using any API/front end.

At engine level there’s nothing fancy there. I had two goals in mind: i) gain in-depth understanding of how game tree search works and ii) create a solid and performant baseline for later experiments with Reinforcement Learning (RL). The code is fairly modular and the core parts are well tested, so please hack away, experiment, improve, or extend anything. And when done, don’t forget to send a PR!

Mostly for debugging and possibly of some pedagogical value, there’s the option to visualize and interactively explore the game tree in your browser for any given board.

The code was developed and tested on Ubuntu but it shouldn’t be hard to port it to MS Windows or macOS. At least there’s no platform-dependent hacks, promise!

Components and Folder Structure

The project contains a number of multiple, loosly coupled components:

The steps below assume that you’re on an Linux-based system. Adapting them for other platforms should be straightforward though.

Build and Run the Engine

Install CMake 3.9 or later

Build and install Pistache. We need it to run our REST service. When done edit CMakeLists.txt and have Pistache_DIR point to the install location

From the root directory, run

The build should complete without any errors or warnings

(optional) Now you may want to

Get Android Device Ready

Now we will fire up the Python client. It will control the Android app through ADB, retrieve the moves from the REST API and execute them.

Install the Android SDK. There’s at least two options:

Directly using the Play store of the Android device, you now want to fetch the Russian Checkers App app. Start a new game. It’s really important that you play white and run in «Tournament Mode» (use checkbox). This is a simplification from the driver code while the engine doesn’t mind what color you play

Setup a Python environment: the code has been run on Python 3.8.5 however it should work with any Python 3.5+. Typing

from the python sub-folder should to get you started the most important packages. Possibly you’ll manually have to add another package or two. Being this unspecific helps to reduce pollution in non-managed (i.e. non-conda-like) environments

Visualizing the Game Tree

Assuming the game server has been started as described above, you can visualize the game tree and explore it interactively simply by opening web/tree_viz/index.html in your browser of choice (tested on Chrome on Firefox). Just click the «Visualize» button.

Eventually you should see something similar to this (click to enlage):

шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄

As a reference, below’s the stats of a tournament where the AI (search depth 12) played 187 games against the Android app (at max difficulty). The AI significanlty outperformed the Android app, winning 81 games while the Android app won 23.

шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄

Conventions.

Board representation. The 8×8 chessboard contains 32 dark squares which mark the valid positions for any token. We index them as follows:

Each position may hold a man or a king while each of them can be black or white. Hence we choose a bitboard-type of representation of the board using two 64-bit integers (called a slice), one for black and one for white. Such a slice stores the positions of men in its lower 32 bits while king positions occupy the upper 32 bits.

Move representation. Similarly we represent a move with a single 16-bit integer by defining

where the five f and the five t bits each encode a number in 0..31, indicating the origin ( f

from) and the destination ( t

Actions. The above choice of representation is a trade-off between efficiency and usability. Despite highly optimized bitboard schemes exist, they are not straight-forward to apply to the Russian variant of checkers, mainly due to flying kings. Our representation allows for such moves while we can still express all operations using bitwise arithmetic.

Code Generation. We use Python to generate the code for four core functions,

Where To Go From Here

Given this reasonably strong baseline, it’ll be interesting to try out different RL techniques on this problem. As a start, you may want to write your own OpenAI Gym enviroment in Python and plug it into a framework/library such as tf_agents, Ray, or keras-rl. This should help to get a first impression on how far one can get with standard, discrete state space RL on this problem. Some inspiration may be found e.g. here.

Personally I’d expect this to work well since the problem is completely deterministic and most of the times the action space is manageable size. Only once kings start to show up on the board, the cardinality of the action space may require some extra thought.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ поТалуйста Ρ€Π΅ΡˆΠΈΡ‚ΡŒ! Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ : Шашки.

На доскС стоит бСлая шашка. ВрСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΎΠ½Π° ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π·Π°Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ, дСлая Ρ…ΠΎΠ΄Ρ‹ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ Ρ…ΠΎΠ΄Π°ΠΌΠΈ Π΄Π°ΠΌΠΊΠΈ (Ρ‚. Π΅. Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π°Π·Π°Π΄ послС прСвращСния Π² Π΄Π°ΠΌΠΊΡƒ). Π‘Π΅Π»Ρ‹Π΅ шашки ΠΌΠΎΠ³ΡƒΡ‚ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΊΠ»Π΅Ρ‚ΠΊΠ°ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΏΠΎ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Π²Π²Π΅Ρ€Ρ…-Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²Π²Π΅Ρ€Ρ…-Π²ΠΏΡ€Π°Π²ΠΎ. Π₯ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько!

Доска ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 8×8, Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ числами ΠΎΡ‚ 1 Π΄ΠΎ 8 начиная с Π»Π΅Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡƒΠ³Π»Π°. Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ ΠΈ конСчная ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚.

Вводится ΠΊΠ»Π΅Ρ‚ΠΊΠ°, Π³Π΄Π΅ стоит шашка, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΊΠ»Π΅Ρ‚ΠΊΠ°, ΠΊΡƒΠ΄Π° шашка Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ.

КаТдая ΠΊΠ»Π΅Ρ‚ΠΊΠ° описываСтся Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ. Под Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ имССтся Π² Π²ΠΈΠ΄Ρƒ Π½Π΅ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ, Π° Π½ΠΎΠΌΠ΅Ρ€ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ считая слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. Аналогичная Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π½ΠΎΠΌΠ΅Ρ€Π° Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ: нумСрация ΠΈΠ΄Π΅Ρ‚ снизу Π²Π²Π΅Ρ€Ρ…. НапримСр, ΠΊΠ»Π΅Ρ‚ΠΊΠ° A2 кодируСтся ΠΊΠ°ΠΊ 1 2.

Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ слово YES (Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ), Ссли шашка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ ΠΈΠ· Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ, ΠΈ NO Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

тСст 1
Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:
1
1
2
2
Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:
YES

тСст 2
Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:
1
1
8
7
Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:
NO
ΠΏΠΈΡˆΡƒΡ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅!
Π½Π΅ ΠΏΠΎΠΉΠΌΡƒ! Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ?!

Π­Ρ‚ΠΎ условиС ΠΈ Π·Π°Π΄Π°Ρ‡Π° ΠΈΠ· курса программирования Π½Π° ΠŸΠΈΡ‚ΠΎΠ½.

75/100ΠžΡ†Π΅Π½ΠΊΠ°: 75 ΠΈΠ· 100
НСт! Π—Π°Π΄Π°Π½ΠΈΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½ΠΎ
Π‘Π΄Π°Ρ‡Π° Π·Π°Π΄Π°Ρ‡ΠΈ
75/100ΠžΡ†Π΅Π½ΠΊΠ°: 75 ΠΈΠ· 100

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°
Test 10
Wrong answer.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ВстрСча шашСк

попытался Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊ Π½Π΅ΠΉ ΠΊΠΎΠ΄, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ…, курсовых ΠΈ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚ здСсь.

ВлоТСния, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ

шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄Screenshot (25).png

Π“ΠΎΠΌΠΎΠΊΡƒ (Π°Π½Π°Π»ΠΎΠ³ шашСк), Ρ€Π°Π½Π΄ΠΎΠΌΠ½ΠΎΠ΅ располоТСниС шашСк
ЗдравствуйтС! ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅, поТалуйста, ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ шашки появлялись Π½Π΅ ΠΏΠΎ Ρ‰Π΅Π»Ρ‡ΠΊΡƒ, Π°.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π΅Π½ΠΈΠ΅ шашСк
Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, Ρ„ΠΎΡ€ΡƒΠΌΡ‡Π°Π½Π΅. Задался Ρ†Π΅Π»ΡŒΡŽ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ шашки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ связку Qt, OpenGL, C++.

ИИ для шашСк
ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ ΠΊΠ°ΠΊ Π½Π°ΠΉΡ‚ΠΈ коэффициСнты для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ…ΠΎΠ΄ΠΎΠ² Π±ΠΎΡ‚Π°

Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ шашСк
НС знаю Π΄Π°ΠΆΠ΅ с Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ. Π•ΡΡ‚ΡŒ класс Block, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранятся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ΄Π½ΠΎΠΉ шашки, Ρ‚.Π΅.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ администратора
шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄Π—Π°Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ тСкста, Π° Π½Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ.

ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ…, курсовых ΠΈ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚ здСсь.

Алгоритм шашСк
Π’ΠΎΠ·Π½ΠΈΠΊΠ»Π° идСя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ шашки ΠΊΠΎΠΌΠΏ. ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ шашСк
Π˜Π³Ρ€Π° происходит Π½Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ΅, Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π½Π° поля. Число ΠΏΠΎΠ»Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Ρ‡Ρ‘Ρ‚Π½Ρ‹ΠΌ ΠΈ.

ВстрСча Π² Ρ€Π΅Π°Π»Π΅.
А Π½Π΅ Π½Π°ΠΏΠΈΡ‚ΡŒΡΡ Π»ΠΈ Π½Π°ΠΌ Π² Ρ€Π΅Π°Π»Π΅ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ нашСго сосущСствования ΠΈ грядущСго Π»Π΅Ρ‚Π° Π³ΠΎΠ΄Π° сСго Π΄Π²Π΅ тысячи.

шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python кодНуТСн исходник шашСк
Народ ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅, Π΅ΡΡ‚ΡŒ Ρƒ ΠΊΠΎΠ³ΠΎ исходники шашСк Π½Π° C#! P.S:Windows Form

Π˜Ρ‰Ρƒ исходники шашСк
ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ ΠΌΠ½Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ шашки Π½Π° Qt

шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ шашки Π½Π° python ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ шашки Π½Π° python ΠΊΠΎΠ΄Π—Π°Π΄Π°Ρ‡Π° ΠΎ стопкС шашСк
ЗдравствуйтС, Ρ„ΠΎΡ€ΡƒΠΌΡ‡Π°Π½Π΅! На днях попалась ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π·Π°Π΄Π°Ρ‡Π°: Π½Π° доскС имССтся ΠΏΡΡ‚ΡŒ ячССк (A, B, C.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹ для кодирования Π½Π° Python

БСгодня ΠΌΡ‹ научимся ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько простых ΠΈΠ³Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ распространСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python.

БСгодня ΠΌΡ‹ научимся ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько простых ΠΈΠ³Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ распространСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Python?

Python – это извСстный язык программирования. Python ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ. БчитаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠ΄ΠΎΠ±Π΅Π½ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π›ΡŽΠ±ΠΎΠΉ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Python Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· самых интСрСсных особСнностСй этого языка:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ простых ΠΈΠ³Ρ€ Π² Python

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ нСсколько простых ΠΈΠ³Ρ€ Π² Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ свой ΠΏΡƒΡ‚ΡŒ обучСния!

1. Π˜Π³Ρ€Π° Π²ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π° Π² Python

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ простая тСкстовая ΠΈΠ³Ρ€Π° Π½Π° Python. Π­Ρ‚ΠΎ малСнькая Π²ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для сСбя ΠΈΠ»ΠΈ своих Π΄Ρ€ΡƒΠ·Π΅ΠΉ. Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для этой ΠΈΠ³Ρ€Ρ‹, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π΅Ρ‘! ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ сами.

2. Π˜Π³Ρ€Π° Π² Pong Π½Π° Python

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· нас ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠΉ ΠΈΠ³Ρ€Π΅ Π² Pong. МногиС ΠΈΠ· нас Π»ΡŽΠ±ΡΡ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ. БСгодня ΠΌΡ‹ научимся ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ³Ρ€Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ языка программирования python!

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ turtle. Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ прСдставляСт собой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Python, которая позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, прСдоставляя ΠΈΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ холст.

Если Ρƒ вас Π΅Π³ΠΎ Π΅Ρ‰Π΅ Π½Π΅Ρ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ pip.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ turtle ΠΈΠ· ΠΈΡ… ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ!

3. Π˜Π³Ρ€Π° Hungry Snake Π½Π° Python

Π­Ρ‚ΠΎ Π±Ρ‹Π»Π° наша любимая ΠΈΠ³Ρ€Π°, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π±Ρ‹Π»ΠΈ Π΄Π΅Ρ‚ΡŒΠΌΠΈ. На самом Π΄Π΅Π»Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΈΠ³Ρ€Ρƒ Π² python, импортируя всСго Π΄Π²Π° модуля! Как это ΠΊΡ€ΡƒΡ‚ΠΎ!

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ turtle. Если Ρƒ вас ΠΎΠ½Π° Π΅Ρ‰Π΅ Π½Π΅ установлСна, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ свой cmd ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ установим случайноС ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π‘Π»ΡƒΡ‡Π°ΠΉΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ случайных чисСл. Π’ вашСм Ρ‚ΠΈΠΏΠ΅ CMD Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ установим ΠΌΠΎΠ΄ΡƒΠ»ΡŒ random2. ΠœΠΎΠ΄ΡƒΠ»ΡŒ random2 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ случайных чисСл. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π² cmd ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ сами ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅ ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΠ³Ρ€ΠΎΠΉ!

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ΠΎΡ‚ ΠΈ всС! Π­Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· простых ΠΈΠ³Ρ€ Π² Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅Π»ΠΈΡ‚ΡŒΡΡ! ΠœΡ‹ любили ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ эти ΠΈΠ³Ρ€Ρ‹, ΠΈ ΠΌΡ‹ надССмся, Ρ‡Ρ‚ΠΎ Ρƒ вас Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *