Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° Python ΠΌΠ΅Π½Π΅Π΅, Ρ‡Π΅ΠΌ Π² 100 строчСк ΠΊΠΎΠ΄Π°

На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Π·Π°Π΄Π°Ρ‘ΠΌ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ time понадобится для установки ΠΏΠ°ΡƒΠ·Ρ‹ Π² основном бСсконСчном Ρ†ΠΈΠΊΠ»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, turtle Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ Π² ΠΈΠ³Ρ€Π΅, ΠΈΠ· модуля random Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ randrange для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π΅Π΄Ρ‹ для нашСй Π·ΠΌΠ΅ΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ BREAK_FLAG Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ ΠΏΡ€ΠΈ укусС Π·ΠΌΠ΅ΠΉΠΊΠΈ самой сСбя, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом ΠΏΠΎΠ·ΠΆΠ΅.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом создаём ΠΎΠΊΠ½ΠΎ ΠΈΠ³Ρ€Ρ‹, Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π·Π°Π΄Π°Ρ‘ΠΌ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΊΠ½Π°. Π‘Ρ‚Ρ€ΠΎΠΊΠ° screen.tracer(0) ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ, Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Π΄Ρ€Ρ‹ Π±ΡƒΠ΄Π΅ΠΌ сами Π² основном Ρ†ΠΈΠΊΠ»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Если этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ вновь созданный сСгмСнт Π·ΠΌΠ΅ΠΉΠΊΠΈ ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Π΅Π΄Ρ‹, послС поСдания Π΄ΠΎΠ±Ρ‹Ρ‡ΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ поля ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΈ вСсь этот процСсс ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ turtle, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ всСгда появляСтся Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

Для наглядности нарисуСм Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля. Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‡Π΅Ρ€Π΅ΠΏΠ°ΡˆΠΊΠΈ border = turtle.Turtle(), Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ border.hideturtle(), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡ‚ Π½Π΅Π³ΠΎ Π½Π°ΠΌ понадобится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ линия, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ Ρ‡Π΅Ρ€Ρ‚ΠΈΡ‚ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ. И опуская ΠΈ поднимая ΠΏΠ΅Ρ€ΠΎ border.penup(), border.pendown() ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π½Π°ΡˆΡƒ Ρ‡Π΅Ρ€Π΅ΠΏΠ°ΡˆΠΊΡƒ ΠΏΠΎ строго Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ. На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚, Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ нСльзя Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒ нашСй Π·ΠΌΠ΅Π΅.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π·ΠΌΠ΅ΠΉΠΊΡƒ. Наша вновь роТдённая змСя Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… сСгмСнтов ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹ΠΌ экзСмпляром класса Turtle. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами змСя Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· мноТСства Ρ‡Π΅Ρ€Π΅ΠΏΠ°ΡˆΠ΅ΠΊ. НадСюсь контСкст слова Β«Ρ‡Π΅Ρ€Π΅ΠΏΠ°ΡˆΠΊΠ°Β» Π² этой ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ понятСн всСм Π±Π΅Π· объяснСний. Π₯Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΡƒ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ Π² Π²ΠΈΠ΄Π΅ списка Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ snake. Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ змСю Π² Ρ†ΠΈΠΊΠ»Π΅ for, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прогоняСм Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π°. Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ сСгмСнт snake_segment = turtle.Turtle(), Π·Π°Π΄Π°Ρ‘ΠΌ Ρ„ΠΎΡ€ΠΌΡƒ snake_segment.shape(‘square’) ΠΈ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ ΠΏΠ΅Ρ€ΠΎ snake_segment.penup() Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π½Π°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° оставляла послС сСбя слСд. УсловиС if Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для окраски сСгмСнтов Π² сСрый Ρ†Π²Π΅Ρ‚. ΠšΡ€Π°ΡΡΡ‚ΡΡ всС ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ, Π³ΠΎΠ»ΠΎΠ²Π° остаётся Ρ‡Ρ‘Ρ€Π½ΠΎΠΉ. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ добавляСм сСгмСнт Π² список хранящий всю змСю Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ snake.append(snake_segment).

Π’ этом Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΅Π΄Ρ‹, Π·Π°Π΄Π°Ρ‘ΠΌ Π΅ΠΌΡƒ ΠΊΡ€ΡƒΠ³Π»ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π΅Π΄Ρƒ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ для Π½Π΅Ρ‘ мСсто.

Π£ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ Π±ΡƒΠ΄Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ со стрСлками. Π—Π° привязку клавиш ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ screen.onkeypress(). ΠœΠ΅Ρ‚ΠΎΠ΄Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ имя ΠΊΠ½ΠΎΠΏΠΊΠΈ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. ΠœΠ΅Ρ‚ΠΎΠ΄ setheading() Π·Π°Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ двиТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅ΠΏΠ°ΡˆΠΊΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅ΠΌ Π² Ρ‚Π°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ snake[0].setheading(90), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π³ΠΎΠ»ΠΎΠ²Ρƒ Π·ΠΌΠ΅ΠΉΠΊΠΈ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π° 90 градусов ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ направлСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Для нас это Π·Π½Π°Ρ‡ΠΈΡ‚ Π²Π²Π΅Ρ€Ρ…. ΠžΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² лямбда Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, это ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ² Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° наТатия Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ. Имя ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π² Π²ΠΈΠ΄Π΅ строки ‘Up’ повторяСм ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ. НачинаСм ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ события с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ screen.listen()

Ну ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ† самоС интСрСсноС. Π›ΠΎΠ³ΠΈΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² бСсконСчном Ρ†ΠΈΠΊΠ»Π΅. Для наглядности ΠΏΠΎΠ»ΠΎΠΆΡƒ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ здСсь ΠΏΠΎΠ΄

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ порядку. Если расстояниС ΠΎΡ‚ Π³ΠΎΠ»ΠΎΠ²Ρ‹ Π·ΠΌΠ΅ΠΈ Π΄ΠΎ Π΅Π΄Ρ‹ мСньшС 10 if snake[0].distance(food)

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

Π—ΠΌΠ΅ΠΉΠΊΠ° Π½Π° Python

Π― Ρ‚ΠΎΡ‡Π½ΠΎ знаю, Ρ‡Ρ‚ΠΎ Π² дСтствС Π²Ρ‹ всС ΠΈΠ³Ρ€Π°Π»ΠΈ Π² ΠΈΠ³Ρ€Ρƒ Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, всСгда Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ. Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ Π΄Π΅Ρ‚ΡŒΠΌΠΈ, ΠΌΡ‹ всС любили ΠΈΡΠΊΠ°Ρ‚ΡŒ Π±Π°Π³ΠΈ Π² ΠΈΠ³Ρ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ сообщСниС Game over, Π½ΠΎ сСйчас, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ тСхнарями, Π½Π°ΠΌ навСрняка хочСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠ°Ρ€ носа Π½Π΅ ΠΏΠΎΠ΄Ρ‚ΠΎΡ‡ΠΈΠ». ИмСнно ΠΎΠ± этом ΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ Π² нашСй ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° основныС Ρ€Π°Π·Π΄Π΅Π»Ρ‹ нашСй ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Установка Pygame

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Pygame. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, просто Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² это, просто ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ приступим ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ³Ρ€Ρ‹. Но ΠΏΠ΅Ρ€Π΅Π΄ этим Π΄Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ создании ΠΈΠ³Ρ€Ρ‹.

Π€ΡƒΠ½ΠΊΡ†ΠΈΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Pygame (Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Π² случаС успСха ΠΈΠ»ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ).
Для создания повСрхности ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π»ΠΈΠ±ΠΎ список Π»ΠΈΠ±ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ (ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅ΠΉ).
Π—Π°Π΄Π°Π΅Ρ‚ ΡˆΡ€ΠΈΡ„Ρ‚ Pygame, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ систСмныС рСсурсы.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ экрана

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. display1 snake game in python edureka. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-display1 snake game in python edureka. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° display1 snake game in python edureka. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ экран для ΠΈΠ³Ρ€Ρ‹, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΊΠ»ΠΈΠΊΠ½Π΅Ρ‚Π΅ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ close, экран Π½Π΅ закроСтся. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ прСдусмотрСли Ρ‚Π°ΠΊΠΎΠ³ΠΎ повСдСния. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ Π² Pygame прСдусмотрСно событиС Β«QIUTΒ», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡΠ»Π΅ΡƒΠ΄ΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° наш экран ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½, Π½Π°ΠΌ прСдстоит Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π½Π΅ΠΌ Π·ΠΌΠ΅ΠΉΠΊΡƒ. Π­Ρ‚ΠΎΠΌΡƒ посвящСн ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π».

ΠœΠ°Ρ€ΠΊ Π›ΡƒΡ‚Ρ† Β«Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ PythonΒ»

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³Ρƒ Ρƒ нас Π² Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΡƒ, ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅ΠΌ нСсколько Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для Ρ€Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ самой Π·ΠΌΠ΅ΠΉΠΊΠΈ, Π΅Π΄Ρ‹ ΠΈ экрана. Π’ Pygame ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ цвСтовая схСма RGB (RED, GREEN, BLUE). Установка всСх Ρ†Π²Π΅Ρ‚ΠΎΠ² Π² 0 соотвСтствуСт Ρ‡Π΅Ρ€Π½ΠΎΠΌΡƒ Ρ†Π²Π΅Ρ‚Ρƒ, Π° Π² 255 β€” соотвСтствСнно, Π±Π΅Π»ΠΎΠΌΡƒ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. creating the snake snake game in python edureka. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-creating the snake snake game in python edureka. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° creating the snake snake game in python edureka. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Как ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π·ΠΌΠ΅ΠΉΠΊΠ° создана Π² Π²ΠΈΠ΄Π΅ Π³ΠΎΠ»ΡƒΠ±ΠΎΠ³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ.

Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. no point. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-no point. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° no point. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Β«Game overΒ» ΠΏΡ€ΠΈ достиТСнии Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. boundries edureka. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-boundries edureka. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° boundries edureka. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅Π΄Ρ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΅Π΄Ρ‹ для Π·ΠΌΠ΅ΠΉΠΊΠΈ, ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сообщСниС Β«Yummy!!”. Помимо этого, ΠΌΡ‹ внСсСм нСбольшиС измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π΄ΡƒΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΡƒ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Π΅Π΅ Π·Π°Π½ΠΎΠ²ΠΎ Π² случаС пораТСния.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. adding the food snake game in python edureka. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-adding the food snake game in python edureka. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° adding the food snake game in python edureka. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Terminal:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. adding the food terminal snake game in python edureka. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-adding the food terminal snake game in python edureka. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° adding the food terminal snake game in python edureka. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠΈ

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ Π·ΠΌΠ΅ΠΉΠΊΠΈ послС поглощСния Сю Π΅Π΄Ρ‹. Π’Π°ΠΊΠΆΠ΅, Ссли Π·ΠΌΠ΅ΠΉΠΊΠ° сталкиваСтся с собствСнным хвостом, ΠΈΠ³Ρ€Π° заканчиваСтся ΠΈ выводится сообщСниС: β€œYou Lost! Press Q-Quit or C-Play Againβ€œ. Π”Π»ΠΈΠ½Π° Π·ΠΌΠ΅ΠΉΠΊΠΈ хранится Π² спискС, Π° Π±Π°Π·ΠΎΠ²Ρ‹Π΅ значСния Π·Π°Π΄Π°Π½Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. point 1. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-point 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° point 1. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π’Ρ‹Π²ΠΎΠ΄ счСта Π½Π° экран

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. final screen snake game edureka. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-final screen snake game edureka. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° final screen snake game edureka. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π’ΠΎΡ‚ ΠΌΡ‹ ΠΈ дошли Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° нашСй ΡΡ‚Π°Ρ‚ΡŒΠΈ. ΠœΡ‹ надССмся, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ ΠΈ всС Π±Ρ‹Π»ΠΎ понятно. Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ваши знания Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

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

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Tkinter: Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ β€œΠ—ΠΌΠ΅ΠΉΠΊΠ°β€

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ напишСм ΠΈΠ³Ρ€Ρƒ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° Python. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых распространСнных Π°Ρ€ΠΊΠ°Π΄ Π² ΠΌΠΈΡ€Π΅. Π’ основС Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΠΈ класса:

Π’ процСссС написания Π·ΠΌΠ΅ΠΉΠΊΠΈ Ρƒ нас Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ этапы:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° прилоТСния

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ каркас для нашСго прилоТСния – Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. Листинг:

ОбъявлСниС Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ДобавляСм Π² Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π˜Ρ… Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ сразу послС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° tkinter:

Π­Ρ‚ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² процСссС ΠΈΠ³Ρ€Ρ‹.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля

Π˜Π³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Canvas. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ холст Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ зальСм Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ. Листинг:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ основных классов

Класс сСгмСнта Π·ΠΌΠ΅ΠΈ

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ класс – это сСгмСнт Π·ΠΌΠ΅ΠΉΠΊΠΈ. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ сСгмСнт Π·ΠΌΠ΅ΠΉΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСн ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠΌ, созданным ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° create_rectangle класса Canvas модуля tkinter. Листинг:

Класс змСйки

Π—ΠΌΠ΅ΠΉΠΊΠ° Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ΠΎΠΌ сСгмСнтов. Π£ Π½Π΅Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ двиТСния, измСнСния направлСния ΠΈ добавлСния сСгмСнта. Листинг:

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ (ΠΌΠ΅Ρ‚ΠΎΠ΄ __init__) Π·Π°Π΄Π°Π΅Ρ‚ список доступных Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ двиТСния Π·ΠΌΠ΅ΠΉΠΊΠΈ ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ – Π²ΠΏΡ€Π°Π²ΠΎ.

ΠœΠ΅Ρ‚ΠΎΠ΄ move() Π΄Π²ΠΈΠ³Π°Π΅Ρ‚ Π·ΠΌΠ΅ΠΉΠΊΡƒ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ change_direction() измСняСт Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ двиТСния Π·ΠΌΠ΅ΠΉΠΊΠΈ.

Π—Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ сСгмСнта ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ add_segment(). ΠœΠ΅Ρ‚ΠΎΠ΄ reset_snake() ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° обновлСния Π·ΠΌΠ΅ΠΉΠΊΠΈ ΠΏΡ€ΠΈ стартС Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ всС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΊΠΎΠ΄Ρƒ.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для создания сСгмСнтов ΠΈ Π·ΠΌΠ΅ΠΉΠΊΠΈ:

Класс подсчСта ΠΎΡ‡ΠΊΠΎΠ²

ПослСдний класс ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° счСт ΠΎΡ‡ΠΊΠΎΠ² ΠΏΡ€ΠΈ съСдании Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ сСгмСнта:

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ (ΠΌΠ΅Ρ‚ΠΎΠ΄ __init__) ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΡ‡ΠΊΠΈ Π½Π° экранС ΠΏΡ€ΠΈ ΠΏΠΎΠ΅Π΄Π°Π½ΠΈΠΈ Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ сСгмСнтов. ΠœΠ΅Ρ‚ΠΎΠ΄ increment() Π²Π΅Π΄Π΅Ρ‚ счСт ΠΎΡ‡ΠΊΠΎΠ². ΠœΠ΅Ρ‚ΠΎΠ΄ reset() обновляСт ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΈ стартС Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ нашСго класса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строчку Π² основной экран нашСго прилоТСния:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π½Ρ‹Ρ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Нам понадобятся Π΄Π²Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π²Π°Ρ – create_block(), которая создаСт ΠΏΠΈΡ‰Ρƒ для Π·ΠΌΠ΅ΠΉΠΊΠΈ. Π’ нашСм случаС это Π±ΡƒΠ΄Π΅Ρ‚ яблоко – ΠΊΡ€ΡƒΠΆΠΎΠΊ Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°. Π§Ρ‚ΠΎΠ±Ρ‹ эта функция Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ random:

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ функция main() Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹ΠΌ процСссом – ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π΅ΠΌ, ΠΊΡƒΠ΄Π° ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π·ΠΌΠ΅ΠΉΠΊΠ°, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ столкновСния с Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ экрана, ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΠΎΠ΅Π΄Π°Π½ΠΈΠ΅ яблок ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ. Листинг:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Π½Π°Ρ‡Π°Π»Π° Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΈΠ³Ρ€Ρ‹

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹ΡˆΠ΅ Π² нашСй ΠΈΠ³Ρ€Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ прилоТСния ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΈΠ³Ρ€Ρ‹. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: Листинг:

Π’ Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строки:

На этом наша Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ подошла ΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ. Если Π²Ρ‹ всС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ сдСлали, Ρ‚ΠΎΠ³Π΄Π° Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Π°. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ наш ΠΊΠΎΠ΄ ΠΈ ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² коммСнтариях свои прСдлоТСния ΠΏΠΎ измСнСнию.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ оставим ΠΏΠΎΠ»Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ смогли ΡΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ с вашим Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ. Листинг:

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

ПишСм Β«Π—ΠΌΠ΅ΠΉΠΊΡƒΒ» ΠΏΠΎΠ΄ Android Π½Π° Python ΠΈ Kivy

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. python snake android. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-python snake android. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° python snake android. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ напишСм ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Β«Π—ΠΌΠ΅ΠΉΠΊΡƒΒ» Π½Π° Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнта для создания GUI Kivy.

Знакомимся с Kivy

Kivy β€” это популярный инструмСнт для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ нСслоТных ΠΈΠ³Ρ€. Одним ΠΈΠ· основных достоинств Kivy являСтся ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎΠ³ΠΎ пСрСноса Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Наша Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Android.

Kivy эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Cython β€” язык программирования, ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‰ΠΈΠΉ Π² сСбС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ C++ ΠΈ синтаксис Python β€” Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сказываСтся Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Π°ΠΊΠΆΠ΅ Kivy Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ GPU для графичСских процСссов, освобоТдая CPU для Π΄Ρ€ΡƒΠ³ΠΈΡ… вычислСний.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ рСсурсы для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Kivy:

УстанавливаСм Kivy

Зависимости

ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π². Код ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ Π½Π° Ubuntu 16.04, Cython 0.25, Pygame 1.9.4.dev0, Buildozer 0.33, Kyvi 1.10.

Для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Kivy Π½Π°ΠΌ трСбуСтся Ρ‚Ρ€ΠΈ основных ΠΏΠ°ΠΊΠ΅Ρ‚Π°: Cython, pygame ΠΈ python-dev. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ubuntu, Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° gstreamer, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… видСовозмоТностСй Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°.

УстанавливаСм зависимости pygame:

ДобавляСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Kivy:

Buildozer

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π°ΠΌ понадобится для упрощСния процСсса установки нашСго Android-прилоТСния:

Нам Ρ‚Π°ΠΊΠΆΠ΅ понадобится Java JDK. И Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ 64-Π±ΠΈΡ‚Π½ΡƒΡŽ систСму, Π²Π°ΠΌ понадобятся 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ вСрсии зависимостСй.

УстанавливаСм Java JDK:

УстанавливаСм 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ зависимости:

Оно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Β«Π—ΠΌΠ΅ΠΉΠΊΡƒΒ», Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ Ρƒ нас всС ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΎΡΡŒ. Π˜Π½Π°Ρ‡Π΅ Π² дальнСйшСм ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ компилируСтся ΠΈΠ·-Π·Π° ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ напишСм старый Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ Β«Hello, world!Β».

ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ ΠΊ созданию ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. НуТно ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» main.py ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ сборкС. ВСрнСмся ΠΊ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Π’ случаС возникновСния ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ошибок установитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ log_level = 2 Π² Ρ„Π°ΠΉΠ»Π΅ buildozer.spec. Π­Ρ‚ΠΎ даст Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ΅ описаниС ошибки. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ написанию Β«Π—ΠΌΠ΅ΠΉΠΊΠΈΒ».

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. Screenshot 2015 02 04 20 28 02. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-Screenshot 2015 02 04 20 28 02. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Screenshot 2015 02 04 20 28 02. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π². ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» ΠΈ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ лишь куски ΠΊΠΎΠ΄Π° ΠΈΠ· этого Ρ„Π°ΠΉΠ»Π°. Π’Π΅ΡΡŒ исходный ΠΊΠΎΠ΄ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, пСрСйдя ΠΏΠΎ ссылкС Π½Π° страницу ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² gitHub.

Π’ этой части ΡƒΡ€ΠΎΠΊΠ° ΠΌΡ‹ напишСм ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ нашСй Β«Π—ΠΌΠ΅ΠΉΠΊΠΈΒ». И ΠΏΠΎΠ΄ созданиСм ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° подразумСваСтся:

1. НаписаниС классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ станут скСлСтом нашСго прилоТСния.
2. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ свойств, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ ΠΏΠΎ своСму ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ.
3. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ всСго Π² основном Ρ†ΠΈΠΊΠ»Π΅ прилоТСния.

ΠšΠ»Π°ΡΡΡ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π°ΡˆΡƒ ΠΈΠ³Ρ€Ρƒ Π½Π° составныС элСмСнты: змСя ΠΈ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅. ЗмСя состоит ΠΈΠ· Π΄Π²ΡƒΡ… основных элСмСнтов: Π³ΠΎΠ»ΠΎΠ²Ρ‹ ΠΈ хвоста. И Π½Π°Π΄ΠΎ Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·ΠΌΠ΅Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π°ΠΌ потрСбуСтся ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²:

Бвойства

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ классы, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΎ содСрТимом.

Playground β€” это ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚. ΠœΡ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ Π΅Π³ΠΎ Π½Π° сСтку. Π­Ρ‚Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ полю. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ. Π’Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сохранСния счСта ΠΈ измСнСния частоты появлСния Ρ„Ρ€ΡƒΠΊΡ‚ΠΎΠ².

И послСднСС, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ΅: Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄ΠΎΠΌ, Π½ΠΎ сдСлаСм ΠΌΡ‹ это Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π·ΠΌΠ΅ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Π΄Π²ΡƒΡ… Π΅Π΅ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ: Π³ΠΎΠ»ΠΎΠ²Ρ‹ ΠΈ хвоста.

Для Π³ΠΎΠ»ΠΎΠ²Ρ‹ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ двиТСния для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ графичСского прСдставлСния: Ссли змСя двиТСтся Π½Π°ΠΏΡ€Π°Π²ΠΎ β€” рисуСм Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ Π²ΠΏΡ€Π°Π²ΠΎ, Ссли змСя двиТСтся Π²Π»Π΅Π²ΠΎ β€” рисуСм Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ Π²Π»Π΅Π²ΠΎ.

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ инструкциям рисования. Для рисования Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡˆΠ΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡Π΅ΠΊ (Π΄Π²Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π½Π° ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ). Π­Ρ‚ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅ ячСйками сСтки, Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ пиксСлями Π½Π° холстС

НаконСц, Π½Π°ΠΌ Π½Π°Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, нарисованном Π½Π° холстС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для пСрСзапуска ΠΈΠ³Ρ€Ρ‹). ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±Ρ‹Ρ‚ΡŒ нарисован Π½Π° холстС:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ хвост. Он состоит ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² (ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ‚Ρ€Π΅Ρ…), Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ… ΠΎΠ΄Π½Ρƒ ячСйку. Когда Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ самый послСдний Π±Π»ΠΎΠΊ хвоста ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π³ΠΎΠ»ΠΎΠ²Ρ‹:

Π€Ρ€ΡƒΠΊΡ‚

ПовСдСниС Ρ„Ρ€ΡƒΠΊΡ‚Π° ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΈΠ½ΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²Ρ‹. Нам понадобится ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, состояниС ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» появлСния:

Π’ классС SnakeApp Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ запуск нашСго прилоТСния:

КоС-Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅: Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ячСйку поля. Π—Π½Π°Ρ‡ΠΈΡ‚:

Π’Π°ΠΊΠΆΠ΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ счСт.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ snake.kv выглядит Ρ‚Π°ΠΊ:

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

НачнСм с класса Π·ΠΌΠ΅ΠΈ. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Π³Π΄Π΅ ΠΎΠ½Π° находится ΠΈ ΠΊΠ°ΠΊ взаимодСйствуСт с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ поля:

ΠœΡ‹ Π½Π°Π·Π²Π°Π»ΠΈ ряд ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ. НачнСм с remove() ΠΈ add_block() :

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ. Она Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: move() ΠΈ remove() :

А Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ с Ρ„Ρ€ΡƒΠΊΡ‚Π°ΠΌΠΈ? ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈΡ… Π² Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ это понадобится:

Как Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅? Когда ΠΈΠ³Ρ€ΠΎΠΊ касаСтся экрана, ΠΌΡ‹ сохраняСм ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ касания. Когда ΠΏΠ°Π»Π΅Ρ† Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с исходным. Если позиция Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π½Π° 10 % ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° экрана, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ это ΠΊΠ°ΠΊ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π΅:

Основной Ρ†ΠΈΠΊΠ»

Π—Π΄Π΅ΡΡŒ происходят процСссы, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ„Ρ€ΡƒΠΊΡ‚Π°, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π·ΠΌΠ΅ΠΈ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Ρˆ:

НуТно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ для события сброса ΠΈΠ³Ρ€Ρ‹:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ.

Одна ваТная Π΄Π΅Ρ‚Π°Π»ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΠ»ΠΎΡΡŒ с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ экрана, Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

И вуаля! Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ buildozer ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π½Π° устройство.

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. Screenshot 2015 02 04 20 16 16. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-Screenshot 2015 02 04 20 16 16. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Screenshot 2015 02 04 20 16 16. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ экраны

Π’Π½Π΅ΡˆΠ½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°

PlaygroundScreen содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅:

Основной экран Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… встроСнных Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²: Π½Π°Π·Π²Π°Π½ΠΈΠ΅ прилоТСния, ΠΊΠ½ΠΎΠΏΠΊΠΈ запуска ΠΈΠ³Ρ€Ρ‹ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ мСню настроСк:

Π’ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΒΎ экрана привСтствия. Оно Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для установки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΒ».

ΠšΠ»Π°ΡΡΡ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ± экран привСтствия показывался ΠΏΡ€ΠΈ запускС ΠΈΠ³Ρ€Ρ‹, Π° ΠΈΠ³Ρ€Π° Π½Π°Ρ‡ΠΈΠ½Π°Π»Π°ΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅:

Π’Π°ΠΊΠΆΠ΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ класс ΠΎΠΊΠ½Π° настроСк, ΠΈΠ½Π°Ρ‡Π΅ привязка Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ScreenManager Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ зарСгистрируСм Π΄Π²Π° экрана:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π½Π° Π½ΠΈΡ… Π½Π°ΠΆΠΈΠΌΠ°ΡŽΡ‚:

ПослС ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹ΡˆΠ° Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° экран привСтствия:

ДобавляСм настройки

Π£ нас Π±ΡƒΠ΄Π΅Ρ‚ всСго Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

ДобавляСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π²ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ классы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ вмСстС с настройками. Если Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹, Π±ΡƒΠ΄Π΅ΠΌ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Ρ‚Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ измСнСния частоты обновлСния:

ИзмСним Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ значСния:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. Screenshot 2015 02 04 20 27 39. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-Screenshot 2015 02 04 20 27 39. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Screenshot 2015 02 04 20 27 39. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π“ΠΎΡ‚ΠΎΠ²ΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ:

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

НаписаниС змСйки для Android на Kivy, Python

[UPD ΠΎΡ‚ 2021: этот Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π» создан ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·-Π·Π° отсутствия Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания, Π° Π½Π΅ ΠΈΠ· побуТдСния Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠΈΡ€ программистов Ρ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ]

Много людСй Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄, Π½ΠΎ Android Studio ΠΈ Java ΠΈΡ… ΠΎΡ‚ΠΏΡƒΠ³ΠΈΠ²Π°ΡŽΡ‚. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? ΠŸΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ это Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ смыслС ΠΈΠ· ΠΏΡƒΡˆΠΊΠΈ ΠΏΠΎ Π²ΠΎΡ€ΠΎΠ±ΡŒΡΠΌ. Β«Π― лишь Ρ…ΠΎΡ‡Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΡƒ, ΠΈ всС!Β»

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

НачнСм! (бонус Π² ΠΊΠΎΠ½Ρ†Π΅)

Если Π²Ρ‹ β€” питонист, ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρƒ простых ΠΈΠ³Ρ€ ΠΏΠΎΠ΄ Π°Π½Π΄Ρ€ΠΎΠΈΠ΄, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΆΠ΅ Π·Π°Π³ΡƒΠ³Π»ΠΈΠ»ΠΈ Β«Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄Π΅Β» ΠΈ нашли это (Eng) ΠΈΠ»ΠΈ Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ (Рус). И я Ρ‚ΠΎΠΆΠ΅ Ρ‚Π°ΠΊ сдСлал. К соТалСнию, я нашСл ΡΡ‚Π°Ρ‚ΡŒΡŽ бСсполСзной ΠΏΠΎ нСскольким ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

ΠŸΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠ΄
Π‘Ρ‚Π°Ρ‚ΡŒΡ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π° для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

Π­Ρ‚ΠΎ ΠΌΠΎΠ΅ Π›Π˜Π§ΠΠžΠ• ΠΌΠ½Π΅Π½ΠΈΠ΅. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, я Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽ, Ρ‡Ρ‚ΠΎ моя ΡΡ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ интСрСсной ΠΈ понятной. Но ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ, Π° Π΅Ρ‰Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽ:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ ΠΊΠΎΠΌΠΈΠ»ΡŒΡ„ΠΎ

Знакомство

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€Ρ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ установили Kivy (Ссли Π½Π΅Ρ‚, слСдуйтС инструкциям) ΠΈ запуститС
buildozer init Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Запустим ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

ΠœΡ‹ создали Π²ΠΈΠ΄ΠΆΠ΅Ρ‚. Аналогично, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈΠ»ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ элСмСнт графичСского интСрфСйса:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π£Ρ€Π°! ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ! Π’Ρ‹ создали ΠΊΠ½ΠΎΠΏΠΊΡƒ!

Однако, Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты. Π‘Π½Π°Ρ‡Π°Π»Π° объявим Π½Π°ΡˆΡƒ Ρ„ΠΎΡ€ΠΌΡƒ:

Π—Π°Ρ‚Π΅ΠΌ создаСм Β«worm.kvΒ» Ρ„Π°ΠΉΠ».

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ? ΠœΡ‹ создали Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ присвоим id but_id. Π’Π΅ΠΏΠ΅Ρ€ΡŒ but_id ассоциировано с but2 Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ button с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ but2:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π“Ρ€Π°Ρ„ΠΈΠΊΠ°

Π”Π°Π»Π΅Π΅ создадим графичСский элСмСнт. Π‘Π½Π°Ρ‡Π°Π»Π° объявим Π΅Π³ΠΎ Π² worm.kv:

ΠœΡ‹ связали ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° с self.pos ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ с self.size. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ эти свойства доступны ΠΈΠ· Cell, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ создаСм ΠΊΠ»Π΅Ρ‚ΠΊΡƒ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

ОкСй, ΠΌΡ‹ создали ΠΊΠ»Π΅Ρ‚ΠΊΡƒ.

НСобходимыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ змСю. Π§Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Form.update ΠΈ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Clock.schedule.

ΠšΠ»Π΅Ρ‚ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ΅. Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π½Π° Π»ΡŽΠ±ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Clock.

Π”Π°Π»Π΅Π΅, создадим событиС наТатия (touch event). ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ Form:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ touch_down создаСт ΠΊΠ»Π΅Ρ‚ΠΊΡƒ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ = (touch.x, touch.y) ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ = 30. Π—Π°Ρ‚Π΅ΠΌ, ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Π΅ ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡ‹ И Π² наш собствСнный массив (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΌΡƒ).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ.

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

ΠΡΡˆΠ½Ρ‹Π΅ настройки

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΡ€Π°ΡΠΈΠ²ΡƒΡŽ Π·ΠΌΠ΅ΠΉΠΊΡƒ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ логичСски Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈ Π½Π°ΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.

Много ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Π΄Π΅Π»Π°Ρ‚ΡŒ это. Вся Π»ΠΎΠ³ΠΈΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ соСдинСна с Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ настоящСй ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ, Π° Π²ΠΎΡ‚ графичСская β€” Π΅ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ настоящСй. НапримСр, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ отступы, настоящая позиция Π±ΡƒΠ΄Π΅Ρ‚ (100, 100) ΠΏΠΎΠΊΠ° графичСская β€” (102, 102).

P. S. ΠœΡ‹ Π±Ρ‹ этим Π½Π΅ ΠΏΠ°Ρ€ΠΈΠ»ΠΈΡΡŒ Ссли Π±Ρ‹ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ с on_draw. Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π½Π΅ обязаны ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Π»Π°ΠΏΠΊΠ°ΠΌΠΈ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Ρ„Π°ΠΉΠ» worm.kv:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Появился отступ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ это выглядит Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ смотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создали Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ с X = 130 вмСсто 132. ПозТС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ мягкоС ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, основанноС Π½Π° расстоянии ΠΌΠ΅ΠΆΠ΄Ρƒ actual_pos ΠΈ graphical_pos.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ чСрвяка

ОбъявлСниС

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ config Π² main.py

(ΠŸΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π²Ρ‹ это ΠΏΠΎΠ»ΡŽΠ±ΠΈΡ‚Π΅!)

Π—Π°Ρ‚Π΅ΠΌ присвойтС config ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ:

ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ init ΠΈ start:

НадСюсь, это Π±Ρ‹Π»ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π½Π΅Π΅ понятно.

Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим нашСго чСрвячка.

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π²ΠΈΠ³Π°Π΅ΠΌ ЭВО.

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Оно ТивоС! Оно ТивоС!

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Ρ€ΡƒΠΊΡ‚Π°

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Worm:

ΠšΡΡ‚Π°Ρ‚ΠΈ, послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ объявили gather_positions, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ fruit_dislocate:

На этот ΠΌΠΎΠΌΠ΅Π½Ρ‚Π΅ позиция яблока Π½Π΅ смоТСт ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ хвоста

… ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π² update()

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ пСрСсСчСния Π³ΠΎΠ»ΠΎΠ²Ρ‹ ΠΈ хвоста

ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚Π° ΠΆΠ΅ Π»ΠΈ позиция Ρƒ Π³ΠΎΠ»ΠΎΠ²Ρ‹, Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ хвоста.

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΠ΅, Π΄Π΅ΠΊΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°

НачнСм с Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ссли чСрвяк ΠΌΠ΅Ρ€Ρ‚Π² (Π·Π°ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½), Ссли Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Π½Π° экран, ΠΈΠ³Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚Π° Π·Π°Π½ΠΎΠ²ΠΎ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΠΌ ΠΊ Π΄Π΅ΠΊΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ Ρ€Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡŽ.

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ это ΠΊ Cell.__init__:

ΠŸΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄Π½ΠΎ, Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡ‚Π΅ΡΡŒ Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

НаконСц, ΠΌΡ‹ создадим надпись Β«game overΒ»

И Π·Π°Π΄Π°Π΄ΠΈΠΌ Β«Ρ€Π°Π½Π΅Π½ΠΎΠΉΒ» ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ красный Ρ†Π²Π΅Ρ‚:

Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. image loader. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. На самом Π΄Π΅Π»Π΅ строчСк ΠΊΠΎΠ΄Π° с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС, Π΄ΠΎΠ±Ρ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ скрипта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, рисованиС Π½ΠΎΠ²ΠΎΡ€ΠΎΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π·ΠΌΠ΅ΠΈ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ клавиш управлСния ΠΈ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ я сам. И Π΄Π°, Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π²ΠΈΠΆΡƒ Π² силу своСго нСбольшого ΠΎΠΏΡ‹Ρ‚Π° программирования, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠœΠ°Ρ€ΠΊΠ° Π›ΡƒΡ‚Ρ†Π° ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСдописанном Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚Π΅, Π½ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ исправно ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ всё, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. ΠŸΠΈΡΠ°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ с использованиСм модуля turtle. Погнали.

Π’Ρ‹ Π΅Ρ‰Π΅ Ρ‚ΡƒΡ‚? Бамая интСрСсная Ρ‡Π°ΡΡ‚ΡŒ Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ!

Бонус β€” ΠΏΠ»Π°Π²Π½ΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅

Π’Π°ΠΊ ΠΊΠ°ΠΊ шаг чСрвячка Ρ€Π°Π²Π΅Π½ cell_size, выглядит Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠ»Π°Π²Π½ΠΎ. Но ΠΌΡ‹ Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡˆΠ°Π³Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π°Ρ‰Π΅ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ пСрСписывания Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈΠ³Ρ€Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π²ΠΈΠ³Π°Π» Π±Ρ‹ наши графичСскиС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (graphical_pos) Π½ΠΎ Π½Π΅ влиял Π±Ρ‹ Π½Π° настоящиС (actual_pos). Π― написал ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Π’Π°ΠΊ, Π²Ρ‹ лишь создаСтС smooth.py and ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ».
НаконСц, заставим ЭВО Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ!

Π—Π°ΠΌΠ΅Π½ΠΈΠΌ self.worm.move() с

А это ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Cell Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄ΠΈΡ‚ΡŒ

Ну Π²ΠΎΡ‚ ΠΈ всС, спасибо Π·Π° вашС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Код снизу.

ДСмонстрационноС Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

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

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

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