ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свою Π·ΠΌΠ΅ΠΉΠΊΡƒ Π½Π° Java Π·Π° 15 ΠΌΠΈΠ½ΡƒΡ‚

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ писали сапёра Π·Π° 15 ΠΌΠΈΠ½ΡƒΡ‚, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ займёмся классичСской Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ.

Π’ этот Ρ€Π°Π· Π½Π°ΠΌ снова понадобятся:

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ

Π’ ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π· Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ с этим вопросом ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, поэтому ΠΌΠ½Π΅ показалось умСстным ΠΏΠΎΡΠ²ΡΡ‚ΠΈΡ‚ΡŒ этому Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Ρ‹ΡˆΠ΅ я Π΄Π°Π» ссылку Π½Π° скачиваниС Π°Ρ€Ρ…ΠΈΠ²Π° с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ я, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ с вСрсиями ΠΈ вопросов, Π³Π΄Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ. ΠŸΠ°ΠΏΠΊΡƒ ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²Π° трСбуСтся ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π²Π°ΡˆΡƒ IDE.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ InteliJ IDEA Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΊΠ°ΠΊ Ρ€Π°Π· с ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Π― Π½Π°ΡˆΡ‘Π» Π² сСти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄Π΅ΠΎΠ³Π°ΠΉΠ΄:

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ я сдСлал всё Π² точности ΠΏΠΎ Π½Π΅ΠΌΡƒ, Ρƒ мСня Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈ всё Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ.

Π Π°Π±ΠΎΡ‚Π° с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ

Π‘ этой стороны наша Π·Π°Π΄Π°Ρ‡Π° ΠΌΠ°Π»ΠΎ отличаСтся ΠΎΡ‚ Ρ‚ΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ выполняли ΠΏΡ€ΠΈ написании Π‘Π°ΠΏΡ‘Ρ€Π°. Π‘Π½ΠΎΠ²Π° создаём класс GUI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ состояниС всСх графичСских элСмСнтов. Если Ρ‚ΠΎΡ‡Π½Π΅Π΅:

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, здСсь я ΡƒΠΆΠ΅ использовал нСсколько констант. Для Π½ΠΈΡ… Π±Ρ‹Π» создан ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс Constants с public static полями. Π’ΠΎΡ‚ ΠΎΠ½ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ:

ΠœΠ΅Ρ…Π°Π½ΠΈΠΊΠ° ΠΈΠ³Ρ€Ρ‹

Π‘Π°ΠΌΠΎΠ΅ врСмя ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ наша змСя Π±ΡƒΠ΄Π΅Ρ‚, собствСнно, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ. Π’Π°ΠΌ навСрняка доводилось Π²ΠΈΠ΄Π΅Ρ‚ΡŒ вывСски, Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎ ΠΊΡ€ΡƒΠ³Ρƒ Π±Π΅Π³Π°ΡŽΡ‚ огоньки? РазумССтся, сами Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ Π² Π½ΠΈΡ… Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ, просто ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΊ послСдняя гаснСт, Π° пСрвая заТигаСтся. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈ наша змСя.

ПишСм класс ΠΊΠ»Π΅Ρ‚ΠΊΠΈ

ДобавляСм Π³Π΅Ρ‚Ρ‚Π΅Ρ€ ΠΈ сСттСр для состояния ΠΊΠ»Π΅Ρ‚ΠΊΠΈ поля Π² GUI

ДобавляСм ΠΌΠ΅Ρ‚ΠΎΠ΄, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π² GUI

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

ПишСм Π·ΠΌΠ΅ΠΉΠΊΡƒ Π½Π° C++

Π”Π°Π²Π½Ρ‹ΠΌ-Π΄Π°Π²Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρ‹ Π±Ρ‹Π»ΠΈ Π·Π΅Π»Ρ‘Π½Ρ‹ΠΌΠΈ, Π° 64Кб ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Ρ‹ Π½Π° Π±ΠΎΡ€Ρ‚Ρƒ ΡΡ‡ΠΈΡ‚Π°Π»ΠΎΡΡŒ Π½ΠΎΡ€ΠΌΠΎΠΉ, сущСствовала ΠΈΠ³Ρ€ΡƒΡˆΠΊΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Snake. Она Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»Π° извСстна ΠΏΠΎΠ΄ названиями Π—ΠΌΠ΅ΠΉΠΊΠ°, Π£Π΄Π°Π², ΠŸΠΈΡ‚ΠΎΠ½ ΠΈ Π΄Π°ΠΆΠ΅ ЧСрвяк. По ΠΏΡ€ΠΎΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ появилось мноТСство ΠΊΠ»ΠΎΠ½ΠΎΠ² этой ΠΈΠ³Ρ€Ρ‹ ΠΏΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹: ΠΎΡ‚ Flash Π΄ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² ΠΈ смартфонов. Но Π²ΠΎΡ‚ Ρ‚Π° рСализация, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π²ΠΈΠ΄ΠΈΠΌΠΎ ΡƒΠΌΠ΅Ρ€Π»Π° вмСстС с Ρ‚Π΅ΠΌΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½Π° Π±Ρ‹Π»Π° написана.

И Π²ΠΎΡ‚, Π·Π° ΠΏΠ°Ρ€Ρƒ свободных Π²Π΅Ρ‡Π΅Ρ€ΠΎΠ² Π±Ρ‹Π» написан ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΊΠ»ΠΎΠ½ Π»Π΅Π³Π΅Π½Π΄Π°Ρ€Π½ΠΎΠ³ΠΎ Snake, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию: Oldschool Snake.

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

Как ΠΈΠ³Ρ€Π°Ρ‚ΡŒ

Top 10 опрСдСляСтся ΠΏΠΎ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Ρƒ. ΠžΠ±Ρ‰ΠΈΠΉ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ складываСтся ΠΈΠ· суммы Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹Ρ… ΠΎΡ‡ΠΊΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π·Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΡΡŠΠ΅Π΄Π΅Π½Π½ΡƒΡŽ Π΅Π΄Ρƒ. Π Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹Π΅ ΠΎΡ‡ΠΊΠΈ прямо ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ Π΄Π»ΠΈΠ½Π΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠΌΡƒ Π½Π° достиТСниС ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΏΠΎΡ€Ρ†ΠΈΠΈ Π΅Π΄Ρ‹.

ΠžΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

ЛицСнзия

GNU GPL. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ свободно Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ, ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ исходный тСкст, Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² исходный тСкст, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своих нСкоммСрчСских ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

ЗамСчания ΠΏΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Π˜Π³Ρ€ΡƒΡˆΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ простая. Основа ΠΈΠ³Ρ€ΡƒΡˆΠΊΠΈ Π±Ρ‹Π»Π° написана Π·Π° ΠΏΠ°Ρ€Ρƒ Π²Π΅Ρ‡Π΅Ρ€ΠΎΠ². ΠŸΡ€Π°Π²Π΄Π° ΠΏΠΎΡ‚ΠΎΠΌ, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, нСдСля ΡƒΡˆΠ»Π° Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈ, Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π° тСстированиС ΠΈ Π΄ΠΎΠΏΠΈΠ»ΠΈΠ²Π°Π½ΠΈΠ΅. Π’ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ Π·Π°Ρ‚Π°ΠΈΠ»ΠΈΡΡŒ Π½Π΅Π΄ΠΎΠ±ΠΈΡ‚Ρ‹Π΅ Π±Π°Π³ΠΈ. ΠžΡ‚ΡΡ‚Ρ€Π΅Π» Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½.

Π’ этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π°Π»ΠΎΠΆΠ΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ возмоТности ΠΏΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ³Ρ€Ρ‹. Но ΠΏΡ€ΠΈ этом тСряСтся Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ.

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π» TDM-GCC 4.8.1 Π‘ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ компиляторами Π½Π΅ провСрял.

Вопросы, Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅, прСдлоТСния, ошибки β€” поТалуйста Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Но, скаТу сразу, Π½Π΅ судитС строго Π·Π° ΡΡ‚ΠΈΠ»ΡŒ β€” написано Π±Ρ‹Π»ΠΎ быстро ΠΈ, Ρ‡Ρ‚ΠΎ называСтся, «для сСбя».

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

Бвоя Π·ΠΌΠ΅ΠΉΠΊΠ°, ΠΈΠ»ΠΈ пишСм ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π§Π°ΡΡ‚ΡŒ 0

ΠŸΡ€Π΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π₯Π°Π±Ρ€! МСня Π·ΠΎΠ²ΡƒΡ‚ Π•Π²Π³Π΅Π½ΠΈΠΉ Β«NageΒ», ΠΈ я Π½Π°Ρ‡Π°Π» Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, Π² свободноС ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ врСмя. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π² мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ задаСшься вопросом Β«Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС?Β», вСдь Π² основном всС Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ самыС основы ΠΈ дальшС ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ заходят. Π’ΠΎΡ‚ послС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π° просмотром Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€ΠΎΠ»ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ я Ρ€Π΅ΡˆΠΈΠ» Ρ‡Ρ‚ΠΎ стоит Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, ΠΈ Π±Ρ€Π°Ρ‚ΡŒΡΡ Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И Ρ‚Π°ΠΊ, сСйчас ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π² консоли со своими Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ знаниями.

Π“Π»Π°Π²Π° 1. Π˜Ρ‚Π°ΠΊ, с Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π½Π΅ΠΌ?

Для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ лишнСго Π½Π΅ понадобится, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚ (ΠΈΠ»ΠΈ ваш Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€), ΠΈ компилятор C#, ΠΎΠ½ присутствуСт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Windows, находится ΠΎΠ½ Π² Π‘:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ компилятор послСднСй вСрсии ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поставляСтся с visual studio, ΠΎΠ½ находится Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Roslyn\csc.exe.

«@echo off» ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π² консоли. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ goto ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ бСсконСчный Ρ†ΠΈΠΊΠ». Π—Π°Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ name, Π° с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ /p Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ записываСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² консоль. Β«echo.Β» просто оставляСт ΠΏΡƒΡΡ‚ΡƒΡŽ строчку Π² консоли. Π”Π°Π»Π΅Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ компилятор ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΅ΠΌΡƒ Ρ„Π°ΠΉΠ» нашСго ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ скомпилируСт.

Π“Π»Π°Π²Π° 2. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ шаги

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ ΠΏΠΎΠ»Π΅ нашСй ΠΈΠ³Ρ€Ρ‹, начиная с Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° Π² Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π—Π°Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ X ΠΈ Y, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π±ΡƒΡ„Π΅Ρ€ ΠΎΠΊΠ½Π° консоли, ΠΈ скроСм ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ курсора.

Для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран нашСй Β«Π³Ρ€Π°Ρ„ΠΈΠΊΠΈΒ» создадим свой Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… β€” Ρ‚ΠΎΡ‡ΠΊΠ°. Он Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΈ символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ выводится Π½Π° экран. Π’Π°ΠΊΠΆΠ΅ сдСлаСм ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ Π΅Π΅ «стирания».

Π­Ρ‚ΠΎ интСрСсно!
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ => называСтся лямбда-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС опрСдСлСния Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… лямбда Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Π² качСствС Ρ‚Π΅Π»Π°, состоящСго ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ выраТСния, синтаксичСский сахар, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ пСрСопрСдСлСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (ΠΏΡ€ΠΎ Π΅Π³ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ класс стСн, Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля. НапишСм 2 ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π° созданиС Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ, ΠΈ Π² конструкторС Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ отрисовку всСх 4Ρ… сторон Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ символом. Бписок всСх Ρ‚ΠΎΡ‡Π΅ΠΊ Π² стСнкС Π½Π°ΠΌ пригодится ΠΏΠΎΠ·ΠΆΠ΅.

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Point ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ° Point p = (x, y, ch); ΠΊΠ°ΠΊ ΠΈ Ρƒ встроСнных Ρ‚ΠΈΠΏΠΎΠ², это становится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° implicit, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ описываСтся ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

ВСрнСмся ΠΊ классу Game ΠΈ объявим ΠΏΠΎΠ»Π΅ walls, Π° Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Main ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π΅.

ВсС! МоТно ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ нашС ΠΏΠΎΠ»Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΠ»ΠΎΡΡŒ, ΠΈ самая лСгкая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ·Π°Π΄ΠΈ.

Π“Π»Π°Π²Π° 3. А Ρ‡Ρ‚ΠΎ сСгодня Π½Π° Π·Π°Π²Ρ‚Ρ€Π°ΠΊ?

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Π΅Π΄Ρ‹ Π½Π° нашСм ΠΏΠΎΠ»Π΅, для этого создадим класс FoodFactory, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ созданиСм Π΅Π΄Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π³Ρ€Π°Π½ΠΈΡ†.

ДобавляСм ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ ΠΈ создадим Π΅Π΄Ρƒ Π½Π° ΠΏΠΎΠ»Π΅

Π“Π»Π°Π²Π° 4. ВрСмя Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ гСроя

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ созданию самой Π·ΠΌΠ΅ΠΈ, ΠΈ для Π½Π°Ρ‡Π°Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ пСрСчислСниС направлСния двиТСния Π·ΠΌΠ΅ΠΉΠΊΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс Π·ΠΌΠ΅ΠΉΠΊΠΈ, Π³Π΄Π΅ опишСм ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π·Π°Ρ‚ΡŒ, ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ список Ρ‚ΠΎΡ‡Π΅ΠΊ Π·ΠΌΠ΅ΠΈ, нашС пСрСчислСниС, шаг Π½Π° сколько Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π·Π° Ρ…ΠΎΠ΄, ΠΈ ссылки Π½Π° Ρ…Π²ΠΎΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΈ Π³ΠΎΠ»ΠΎΠ²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΈ конструктор, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ рисуСм змСю Π² Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ… ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ ΠΏΡ€ΠΈ стартС ΠΈΠ³Ρ€Ρ‹.

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ возмоТности ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ сразу Π½Π° 180 градусов, просто ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² 2 стороны. А ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° Π½Π° 180 градусов двумя наТатиями β€” поставив Β«ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒΒ», ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ наТатия, ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ послС ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Ρ…ΠΎΠ΄Π°.

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ вывСсти Π΅Π΅ Π½Π° экран.

Π“ΠΎΡ‚ΠΎΠ²ΠΎ! Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ всС Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, ΠΏΠΎΠ»Π΅ ΠΎΠ³ΠΎΡ€ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ стСнами, Ρ€Π°Π½Π΄ΠΎΠΌΠ½ΠΎ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ Π΅Π΄Π°, ΠΈ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠŸΡ€ΠΈΡˆΠ»Π° ΠΏΠΎΡ€Π° Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ всС это Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

Π“Π»Π°Π²Π° 5. Π›-Π»ΠΎΠ³ΠΈΠΊΠ°

Заставим Π½Π°ΡˆΡƒ Π·ΠΌΠ΅ΠΉΠΊΡƒ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ, напишСм бСсконСчный Ρ†ΠΈΠΊΠ» для считывания клавиш Π½Π°ΠΆΠ°Ρ‚Ρ‹Ρ… Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° Π·ΠΌΠ΅ΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ двиТСния Π·ΠΌΠ΅ΠΉΠΊΠΈ, Π½Π°Π΄ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС Π³ΠΎΠ»ΠΎΠ²Ρ‹ с Π΅Π΄ΠΎΠΉ, стСнками ΠΈ хвостом Π·ΠΌΠ΅ΠΈ. Для этого Π½Π°Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° совпадСниС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ равСнства ΠΈ Π½Π΅ равСнства, ΠΈΡ… ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π² ΠΏΠ°Ρ€Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ совпадаСт Π»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π°Ρ нас Ρ‚ΠΎΡ‡ΠΊΠ° с ΠΊΠ°ΠΊΠΎΠΉ Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· массива стСн.

И ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ Π½Π΅ совпадаСт Π»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ° с хвостом.

И ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ съСла Π»ΠΈ Π΅Π΄Ρƒ наша Π·ΠΌΠ΅ΠΉΠΊΠ°, ΠΈ сразу Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅.

Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ двиТСния, со всСми Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ.

Π’ΠΎΡ‚ ΠΈ всС! Наша Π·ΠΌΠ΅ΠΉΠΊΠ° Π² консоли Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π° ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ.
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

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

ΠœΡ‹ посмотрСли ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΡƒΡŽ ΠΈΠ³Ρ€Ρƒ с нСбольшим использованиСм ООП, Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, посмотрСли Π½Π° ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΈ лямбда ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, надСюсь это Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ!

Π­Ρ‚ΠΎ Π±Ρ‹Π»Π° пилотная ΡΡ‚Π°Ρ‚ΡŒΡ, ΠΈ Ссли Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ, я Π½Π°ΠΏΠΈΡˆΡƒ ΠΏΡ€ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π·ΠΌΠ΅ΠΉΠΊΠΈ Π½Π° Unity.
ВсСм ΡƒΠ΄Π°Ρ‡ΠΈ!

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

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

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

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

Установка Pygame

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

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

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

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

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

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

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

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

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

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

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

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

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

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

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

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

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

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

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

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

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

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

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

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

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

Terminal:

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

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

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

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

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

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

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

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

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

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

ПишСм ΠΈΠ³Ρ€Ρƒ Π·ΠΌΠ΅ΠΉΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript + Canvas

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, стоит Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ созданию ΠΈΠ³Ρ€Ρ‹ ΠΈ написанию ΠΊΠΎΠ΄Π°. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простой Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Sublime Text. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, это Π½Π΅ Π²Π°ΠΆΠ½ΠΎ. ВсС Π΄Π΅Π»Π°Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ быстрСС.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ, напишСм сам ΠΊΠΎΠ΄ для встраивания canvas Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Напомню, Ρ‡Ρ‚ΠΎ canvas поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² HTML5.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ созданию самой ΠΈΠ³Ρ€Ρ‹.

НачинаСм

Для Π½Π°Ρ‡Π°Π»Π°, я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π²Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΠ°, Ρ‚Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ понятнСС. Наша Π·ΠΌΠ΅ΠΉΠΊΠ° β€” это массив. Массив элСмСнтов, элСмСнты β€” это Π΅Π΅ части, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½Π° Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ. Π­Ρ‚ΠΎ всСго лишь ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ X ΠΈ Y. Как Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, X β€” Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒ, Y β€” Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒ. Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΌΡ‹ прСдставляСм сСбС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΡƒΡŽ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

Она Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ, Π² этом Π½Π΅Ρ‚ сомнСния, Π½ΠΎ Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° (Π² частности, canvas) ΠΎΠ½Π° выглядит ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ°

Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ Π²Π΄Ρ€ΡƒΠ³ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с canvas. Π―, ΠΊΠΎΠ³Π΄Π° столкнулся с этим, сначала Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ понял Π³Π΄Π΅ Ρ‚ΠΎΡ‡ΠΊΠ° (0,0), Π±Π»Π°Π³ΠΎ я быстро разобрался. НадСюсь ΠΈ Ρƒ вас ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ.

ВСрнСмся ΠΊ элСмСнтам Π·ΠΌΠ΅ΠΉΠΊΠΈ, Π΅Π΅ частям. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ свои ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ высоту ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ. Π­Ρ‚ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΈ, Π½Π΅ Π±ΠΎΠ»Π΅Π΅. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прСдставим, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΎΡ‚ нарисовали Π·ΠΌΠ΅ΠΉΠΊΡƒ, всС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΈ, ΠΎΠ½ΠΈ ΠΈΠ΄ΡƒΡ‚ Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ‚Π°ΠΊΠΈΠ΅. И Ρ‚ΡƒΡ‚ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΡƒ Π²ΠΏΡ€Π°Π²ΠΎ. Как Π±Ρ‹ Π²Ρ‹ поступили?

НСкоторыС люди ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»ΠΈ Π±Ρ‹, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΏΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Π²ΠΏΡ€Π°Π²ΠΎ, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ, Π·Π°Ρ‚Π΅ΠΌ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Но для мСня этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π΅ являСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² случаС, Ссли Π²Π΄Ρ€ΡƒΠ³ Π·ΠΌΠ΅ΠΉΠΊΠ° огромная, Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ слабый, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠ° ΠΈΠ½ΠΎΠ³Π΄Π° разрываСтся, Ρ‡Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ. Π”Π° ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅, Π΄Π°Π½Π½Ρ‹ΠΉ способ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшим количСством, Π½Π΅ потСряв качСство. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΉ способ: ΠœΡ‹ Π±Π΅Ρ€Π΅ΠΌ послСдний элСмСнт Π·ΠΌΠ΅ΠΉΠΊΠΈ, ΠΈ ставим Π΅Π³ΠΎ Π² Π½Π°Ρ‡Π°Π»ΠΎ, измСняя Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» послС Π³ΠΎΠ»ΠΎΠ²Ρ‹. Π’Π΅ΠΏΠ΅Ρ€ΡŒ этот элСмСнт β€” Π³ΠΎΠ»ΠΎΠ²Π°. ВсСго-Ρ‚ΠΎ! И Π΄Π°, эффСкт двиТСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π° Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ спрятали хвост, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π΅Π³ΠΎ поставили Π² Π½Π°Ρ‡Π°Π»ΠΎ. ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π²ΠΎ врСмя создания двиТСния Π·ΠΌΠ΅ΠΉΠΊΠΈ.

Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π² дальнСйшСм Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

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

Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²ΠΎΠ·Ρ€Π°Π·ΠΈΡ‚ΡŒ, сказав, Ρ‡Ρ‚ΠΎ Ρ‚Ρ‹ ΠΌΠΎΠ³ Π±Ρ‹ просто холсту ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту, ΠΊΡ€Π°Ρ‚Π½ΡƒΡŽ 30. Но Π½Π° самом Π΄Π΅Π»Π΅, это Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π’Π°ΠΊ ΠΊΠ°ΠΊ я Π»ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всю ΡˆΠΈΡ€ΠΈΠ½Ρƒ экрана. И Π² случаС, Ссли ΡˆΠΈΡ€ΠΈΠ½Π° = 320, Ρ‚ΠΎ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π°ΠΆ Ρ†Π΅Π»Ρ‹Ρ… 20 пиксСлСй Π·Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ дискомфорт. ИмСнно поэтому Π² нашСй Π·ΠΌΠ΅ΠΉΠΊΠΈ всС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² дСлятся Π½Π° 30, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ². Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ вынСсти это ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° достаточно часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠ΄Π΅. Но ΠΊ этому Π²Ρ‹Π²ΠΎΠ΄Ρƒ я ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΏΠΎΠ·Π΄Π½ΠΎ. (Но Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ это Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ сдСлаСм Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠΌΠ΅Π»Π° Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ качСство отобраТСния. По Ρ…ΠΎΠ΄Ρƒ ΡΡ‚Π°Ρ‚ΡŒΠΈ, я Π±ΡƒΠ΄Ρƒ Π΄ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… мСстах Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ сСбС ΠΈΠΌΠ΅ΠΉΡ‚Π΅ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ ΠΊΠΎΠ΄Π°.

Если Ρ‡Ρ‚ΠΎ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ innerWidth ΠΈ innerHeight хранятся Π² глобальном пространствС ΠΈΠΌΠ΅Π½.
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ. ΠŸΡ€Π°Π²Π΄Π°, я Π½Π΅ знаю ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ Ρ‚Π°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ.

Ну Ρ‡Ρ‚ΠΎ ΠΆΠ΅, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π·ΠΌΠ΅ΠΉΠΊΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° анимация, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ setInterval, Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ число 60. МоТно Ρ‡ΡƒΡ‚ΡŒ большС, 75 Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎ ΠΌΠ½Π΅ нравится 60. Ѐункция всСго Π½Π° всСго ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 60 мс. рисуСт Π·ΠΌΠ΅ΠΉΠΊΡƒ Β«Π·Π°Π½ΠΎΠ²ΠΎΒ». Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ написаниС ΠΊΠΎΠ΄Π° β€” это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π».

ΠŸΠΎΠΊΠ°ΠΆΡƒ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ отрисовку нашСй Π·ΠΌΠ΅ΠΉΠΊΠΈ, ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π±Π΅Π· двиТСния.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ наша Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π΅ сталкиваСтся сама с собой, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта, ΠΊΡ€ΠΎΠΌΠ΅ послСднСго. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Π½Π΅ Ρ€Π°Π²Π½Ρ‹ Π»ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ послСднСго элСмСнта (Π³ΠΎΠ»ΠΎΠ²Ρ‹) Π·ΠΌΠ΅ΠΉΠΊΠΈ Π»ΡŽΠ±Ρ‹ΠΌ из… Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅ говоря: Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π»ΠΈ столкновСниС. Π­Ρ‚Π° строчка ΠΊΠΎΠ΄Π° Π±Ρ‹Π»Π° Π΅Π΄ΠΈΠ½ΠΎΠΉ строкой, Π½ΠΎ Π²Π°ΠΌ сдСлал Π΅Π΅ понятной. Напоминаю, Ρ‡Ρ‚ΠΎ всС это добавляСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Π²Ρ‹ Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π²ΠΎ врСмя Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ измСняСм ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, ΠΌΡ‹ Π²Π΅Ρ‡Π½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ «сохраняСм», сначала ΠΏΠΎΠ΄Π΅Π»ΠΈΠ², Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠ³Π»ΠΈΠ² ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠΈΠ² Π½Π° число s. Π­Ρ‚ΠΎ всС Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый способ выравнивания Π·ΠΌΠ΅ΠΉΠΊΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ яблока. Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС строгоС, простоС, поэтому ΠΈ Π΅ΡΡ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΠ° яблоко ΠΌΠΎΠΆΠ΅Ρ‚ строго ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Π½ Π² самом Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°. И Ссли Π±Ρ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π³ΠΎΠ»ΠΎΠ²Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠΈ Ρ…ΠΎΡ‚ΡŒ Π½Π° 1px ΡΠΌΠ΅ΡΡ‚ΠΈΠ»ΠΈΡΡŒ Π±Ρ‹, Ρ‚ΠΎ яблоко нСльзя Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΡŠΠ΅ΡΡ‚ΡŒ. И Π΄Π°, это простой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, поэтому всС Ρ‚Π°ΠΊ сильно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ.

Ну Π° Π½Π°ΠΌ ΠΆΠ΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‡Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ? ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· массива хвост (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт), Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Π² самый ΠΊΠΎΠ½Π΅Ρ† ΠΈ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ всю Π·ΠΌΠ΅ΠΉΠΊΡƒ. Π‘Π΄Π΅Π»Π°Π΅ΠΌ это, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² ΠΊΠΎΠ½Π΅Ρ† ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ строчки ΠΊΠΎΠ΄Π°.

Π’ Π΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊ отрисовкС Π·ΠΌΠ΅ΠΉΠΊΠΈ, я Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Π΅Ρ† экрана β€” это Π΅Π³ΠΎ Π½Π°Ρ‡Π°Π»ΠΎ. И Ссли Π·ΠΌΠ΅ΠΉΠΊΠ° Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹, Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· Π½Π°Ρ‡Π°Π»Π°, Π½Π° погибая.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΡƒΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° сбрасываниС ΠΈΠ³Ρ€Ρ‹, Ссли Ρƒ вас всС ΠΎΡ‡Π΅Π½ΡŒ ТСстко. Но ΠΌΠ½Π΅ нравится большС Ρ‚Π°ΠΊ. Ну Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ. Π”Π΅Π»Π°Π΅Ρ‚ Π·Π° считанныС сСкунды. НуТно лишь Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ этот ΠΊΠΎΠ΄ сразу послС setInterval. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Π’ΡƒΡ‚ ΠΌΡ‹ сдСлали Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ссли Π·ΠΌΠ΅ΠΉΠΊΠ° двигаСтся Π²ΠΏΡ€Π°Π²ΠΎ, Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π»Π΅Π²ΠΎ. Π­Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Π½Π° самом Π΄Π΅Π»Π΅.

Π’ΠΎΡ‚ ΠΈ всС, Π΄Ρ€ΡƒΠ·ΡŒΡ. Моя пСрвая ΡΡ‚Π°Ρ‚ΡŒΡ, написанная Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠΌ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ². НадСюсь, всС Π±Ρ‹Π»ΠΎ понятно ΠΈ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ это ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ. Π—ΠΌΠ΅ΠΉΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, счСтчик ΠΎΡ‡ΠΊΠΎΠ², Ρ€Π΅ΠΊΠΎΡ€Π΄Ρ‹, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΈΡˆΠΊΠΈ, Π½ΠΎ это всС ΡƒΠΆΠ΅ дополнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сами. На этом всС, всСм ΡƒΠ΄Π°Ρ‡ΠΈ!

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

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

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