ΠΊΠΎΠ΄ для ΠΏΠΈΡ‚ΠΎΠ½Π° для Π·ΠΌΠ΅ΠΉΠΊΠΈ

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

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

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

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

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

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

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

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

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

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

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

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

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

Класс змСйки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ экран для ΠΈΠ³Ρ€Ρ‹, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΊΠ»ΠΈΠΊΠ½Π΅Ρ‚Π΅ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ 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. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ напишСм ΠΈΠ³Ρ€Ρƒ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° Python. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых распространСнных Π°Ρ€ΠΊΠ°Π΄ Π² ΠΌΠΈΡ€Π΅. Π’ основС Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΠΈ класса:

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

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

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

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

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

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

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

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΅Π΄Ρ‹ для Π·ΠΌΠ΅ΠΉΠΊΠΈ, ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сообщСниС Β«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. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ напишСм ΠΈΠ³Ρ€Ρƒ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° Python. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых распространСнных Π°Ρ€ΠΊΠ°Π΄ Π² ΠΌΠΈΡ€Π΅. Π’ основС Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΠΈ класса:

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

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

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

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

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

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

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

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

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

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

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° 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)

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

ПишСм ΠΈΠ³Ρ€Ρƒ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° Tkinter [Π£Ρ€ΠΎΠΊ β„–7]

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

Π’ этой части изучСния Tkinter ΠΌΡ‹ создадим ΠΊΠ»ΠΎΠ½ ΠΈΠ³Ρ€Ρ‹ Nibbles (Π·ΠΌΠ΅ΠΉΠΊΠ°). Nibbles – это ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ вСрсия классичСской Π·ΠΌΠ΅ΠΉΠΊΠΈ. Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΅Π΅ создали Π² ΠΊΠΎΠ½Ρ†Π΅ 70Ρ… Π³ΠΎΠ΄ΠΎΠ². ПозТС ΠΎΠ½Π° Π±Ρ‹Π»Π° пСрСнСсСна Π½Π° ПК. Π’ этой ΠΈΠ³Ρ€Π΅ ΠΈΠ³Ρ€ΠΎΠΊ управляСт Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ. ЦСль ΠΈΠ³Ρ€Ρ‹ – ΡΡŠΠ΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС яблок. ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ съСдСнного яблока Ρ‚Π΅Π»ΠΎ Π·ΠΌΠ΅ΠΈ увСличиваСтся. Π’ΠΎ врСмя двиТСния Π·ΠΌΠ΅ΠΉΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠΊΠ»ΠΎΠ½ΡΡ‚ΡŒΡΡ ΠΎΡ‚ стСн ΠΈ собствСнного Ρ‚Π΅Π»Π°.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ курса

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ

Π­Ρ‚Π°ΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€Ρ‹ Π½Π° Tkinter

Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ соСдинСния Π·ΠΌΠ΅ΠΉΠΊΠΈ – 10 пиксСлСй. Π—ΠΌΠ΅ΠΉΠΊΠ° управляСтся стрСлками Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρƒ Π·ΠΌΠ΅ΠΉΠΊΠΈ Π΅ΡΡ‚ΡŒ всСго Ρ‚Ρ€ΠΈ соСдинСния. Π˜Π³Ρ€Π° начинаСтся ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ. Когда ΠΈΠ³Ρ€Π° заканчиваСтся, Π½Π° экранС появляСтся надпись Β«Π˜Π³Ρ€Π° Π—Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°Β».

Для Π½Π°Ρ‡Π°Π»ΠΎ, ΠΌΡ‹ создаСм Canvas Π²ΠΈΠ΄ΠΆΠ΅Ρ‚. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² ΠΈΠ³Ρ€Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ изобраТСния. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ canvas для создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² изобраТСния. Π’Π°ΠΊΠΆΠ΅, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ canvas для обнаруТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° холстС ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚Π΅Π³ΠΎΠ², ΠΈ для обнаруТСния столкновСний с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΡ‹ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΡƒΠ΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ Π² нашСй ΠΈΠ³Ρ€Π΅:

ΠœΠ΅Ρ‚ΠΎΠ΄ iniGame() ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ изобраТСния ΠΈΠ³Ρ€Ρ‹ ΠΈ запускаСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°.

ΠœΠ΅Ρ‚ΠΎΠ΄ createObject() создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π° холстС, Π° locateApple() устанавливаСт яблоко Π½Π° ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π½Π° холстС.

ΠœΡ‹ Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌ клавиши ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° onKeyPressed(). Для управлСния Π·Π°ΠΌΠ΅Π΅ΠΉ Π² ΠΈΠ³Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ стрСлки Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅.

Π’ этих строчках ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π°ΡˆΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ Ρ‚Ρ€ΠΈ изобраТСния для нашСй ΠΈΠ³Ρ€Ρ‹:

Π•ΡΡ‚ΡŒ вопросы ΠΏΠΎ Python?

На нашСм Ρ„ΠΎΡ€ΡƒΠΌΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ любой вопрос ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ всСго нашСго сообщСства!

Telegram Π§Π°Ρ‚ & Канал

ВступитС Π² наш Π΄Ρ€ΡƒΠΆΠ½Ρ‹ΠΉ Ρ‡Π°Ρ‚ ΠΏΠΎ Python ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ! Π‘Ρ‚Π°Π½ΡŒΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒΡŽ большого сообщСства!

Паблик VK

Одно ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сообщСств ΠΏΠΎ Python Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ сСти Π’Πš. Π’ΠΈΠ΄Π΅ΠΎ ΡƒΡ€ΠΎΠΊΠΈ ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ для вас!

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ image позволяСт изобраТСниям ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π½Π° холстС. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ anchor установлСн Π½Π° NW (Π‘Π΅Π²Π΅Ρ€ ΠΈ Π—Π°ΠΏΠ°Π΄), Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ Π½Π° Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Π»Π΅Π²ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ холста. И этот шаг ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ изобраТСния ΠΎΠΊΠΎΠ»ΠΎ Π³Ρ€Π°Π½ΠΈΡ† ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° tkinter.

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

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ anchor ΠΈ посмотритС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ tag ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° холстС.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ прямо сСйчас ΠΊΡƒΠΏΠΈΡ‚ΡŒ Π΄Π΅ΡˆΠ΅Π²Ρ‹Ρ… подписчиков Π½Π° YouTube с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСрвиса doctorsmm.com. Π’ΡƒΡ‚ Π’Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вкусный прайс, Π½ΠΎ ΠΈ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ услугС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡƒΡ‚ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ услуг со ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠ΅ΠΉ качСства ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ списаний.

Один Ρ‚Π΅Π³ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° холстС.

ΠœΠ΅Ρ‚ΠΎΠ΄ checkAppleCollision() позволяСт Π½Π°ΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ, съСла Π»ΠΈ змСя яблоко ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Если Π΄Π°, ΠΌΡ‹ добавляСм ΠΎΠ΄Π½ΠΎ соСдинСниС Π·ΠΌΠ΅ΠΉΠΊΠ΅ ΠΈ выполняСм ΠΌΠ΅Ρ‚ΠΎΠ΄ locateApple() для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ яблока Π½Π° нашСй ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Π΅.

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

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° 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)

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

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

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