ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ВСхнология программирования: ΠΈΠ³Ρ€Π° Β«Π‘ΠΎΠΉ словами»

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ собой созданиС ΠΈΠ³Ρ€Ρ‹. Π‘ΡƒΡ‚ΡŒ ΠΈΠ³Ρ€Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠ° Π΄ΠΎ Π½ΡƒΠ»Ρ, ΠΏΡƒΡ‚Π΅ΠΌ слоТСния слов ΠΈΠ· Π±ΡƒΠΊΠ². Π’ ΠΈΠ³Ρ€Π΅ имССтся 4 поля: свСрху располагаСтся ΠΏΠΎΠ»Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ ввСсти слово, количСство Π±ΡƒΠΊΠ² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ количСству нанСсСнного ΡƒΡ€ΠΎΠ½Π°; снизу Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ поля с Π±ΡƒΠΊΠ²Π°ΠΌΠΈ — Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ Π±ΠΎΠΊΠΎΠ²Ρ‹Π΅. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ВСхнология программирования: ΠΈΠ³Ρ€Π° Β«Π‘ΠΎΠΉ словами» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ записка ΠΊ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅ «Π’Схнология программирования»

ВСхнология программирования: ΠΈΠ³Ρ€Π° «Π‘ΠΎΠΉ словами»

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ Π“Ρ€Π°Ρ„ΠΈΠΊΠ°, искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, Microsoft Visual Studio, Магия Π‘Π»ΠΎΠ².

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ исслСдования являСтся ΠΈΠ³Ρ€Π° «ΠœΠ°Π³ΠΈΡ Π‘Π»ΠΎΠ²».

ЦСль курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ — Ρ€Π°Π·Π±ΠΎΡ€ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ Π΅Π΅ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

ИсслСдованиС Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π½Π° ΠΈΠ³Ρ€Π΅ ΠΎΡ‚ Alawar Entertainment «ΠœΠ°Π³ΠΈΡ слов», ΠΏΡƒΡ‚Π΅ΠΌ исслСдования этого прилоТСния. ИсполнСниС собствСнной ΠΈΠ³Ρ€Ρ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° для кроссплатформСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ — Cocos2dx.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ являСтся готовая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΈΠ³Ρ€Ρ‹ «ΠœΠ°Π³ΠΈΡ Π‘Π»ΠΎΠ²».

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½Ρ‹ основныС срСдства программирования Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ си, Π±Π°Π·ΠΎΠ²Ρ‹Π΅ возмоТности ΠΏΠ°ΠΊΠ΅Ρ‚Π° Cocos2dx Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΈ ΡΠ·Ρ‹ΠΊΠ° C++ Π² Ρ‡Π°ΡΡ‚ности для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ графичСского интСрфСйса.

ΠŸΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ записка Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² Ρ‚Скстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Microsoft Word 2007.

Π—Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π’ Ρ…ΠΎΠ΄Π΅ выполнСния курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ. ВсС ΠΈΠ³Ρ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΌΠΈ, с ΠΈΠ½Ρ‚СрфСйсом ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² Ρ‚Скстовом Π²ΠΈΠ΄Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΡΠΎΡΡ‚оянии ΠΈΠ³Ρ€Ρ‹ ΠΈ Ρ…ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ свой Ρ…ΠΎΠ΄, вводя с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Для получСния ΠΎΡ†Π΅Π½ΠΊΠΈ «ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ» достаточно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ позволял 2 ΠΈΠ³Ρ€ΠΎΠΊΠ°ΠΌ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ…ΠΎΠ΄ΠΎΠ².

Для получСния ΠΎΡ†Π΅Π½ΠΊΠΈ «Ρ…ΠΎΡ€ΠΎΡˆΠΎ» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ΠΈΠ³Ρ€Ρ‹ Π·Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ (ΠΊΡ€ΠΎΠΌΠ΅ стратСгии Π²Ρ‹Π±ΠΎΡ€Π° Ρ…ΠΎΠ΄Π° случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ).

Для получСния ΠΎΡ†Π΅Π½ΠΊΠΈ «ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ» рСализованная Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ стратСгия Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ.

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • 1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
  • 2. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°
  • 3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля
    • 4. ДСйствия Π½Π°Π΄ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ
  • 5. ДСйствия ΠΈΠ³Ρ€ΠΎΠΊΠ°
  • 6. ДСйствия ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

БиблиографичСский список

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ собой созданиС ΠΈΠ³Ρ€Ρ‹. Π‘ΡƒΡ‚ΡŒ ΠΈΠ³Ρ€Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠ° Π΄ΠΎ Π½ΡƒΠ»Ρ, ΠΏΡƒΡ‚Π΅ΠΌ слоТСния слов ΠΈΠ· Π±ΡƒΠΊΠ². Π’ ΠΈΠ³Ρ€Π΅ имССтся 4 поля: свСрху располагаСтся ΠΏΠΎΠ»Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ ввСсти слово, количСство Π±ΡƒΠΊΠ² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ количСству нанСсСнного ΡƒΡ€ΠΎΠ½Π°; снизу Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ поля с Π±ΡƒΠΊΠ²Π°ΠΌΠΈ — Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ Π±ΠΎΠΊΠΎΠ²Ρ‹Π΅. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ 16 Π±ΡƒΠΊΠ², доступно для всСх ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ². Π‘ΠΎΠΊΠΎΠ²Ρ‹Π΅ поля, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ 4 Π±ΡƒΠΊΠ²Ρ‹, доступны ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠ°ΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ — Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ ΠΏΡ€Π°Π²ΠΎΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Π°Ρ€ΡΠ΅Π½Π°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° имССтся 20 Π±ΡƒΠΊΠ². Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ³Ρ€Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ 100 Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ. Если ΠΈΠ³Ρ€ΠΎΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти слово, Ρ‚ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρ‹ Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ»Π΅, Π½ΠΎ ΠΎΠ½ ΠΏΠΎΡ‚СряСт 5 Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ.

1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Π Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… ΠΈΠ³Ρ€Ρ‹, ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, структуры Π΄Π°Π½Π½Ρ‹Ρ… для ΠΈΠ³Ρ€Ρ‹.

ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ³Ρ€Ρ‹ «ΠœΠ°Π³ΠΈΡ Π‘Π»ΠΎΠ²»:

ЦСль ΠΈΠ³Ρ€Ρ‹ — ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠ° Π΄ΠΎ Π½ΡƒΠ»Ρ, ΠΏΡƒΡ‚Π΅ΠΌ слоТСния слов ΠΈΠ· Π±ΡƒΠΊΠ². ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ³Ρ€Ρ‹ «ΠœΠ°Π³ΠΈΡ Π‘Π»ΠΎΠ²» ΠΎΡ‡Π΅Π½ΡŒ просты:

Π˜Π³Ρ€ΠΎΠΊ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π»ΠΎΠΊΠ°Ρ†ΠΈΡŽ.

Π˜Π³Ρ€ΠΎΠΊΡƒ даСтся ΠΏΠΎΠ»Π΅, состоящСС ΠΈΠ· 16 Π±ΡƒΠΊΠ².

Π˜Π³Ρ€ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π² ΡΠ²ΠΎΠΉ Ρ…ΠΎΠ΄ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ слово, количСство Π±ΡƒΠΊΠ² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ нанСсСнному ΡƒΡ€ΠΎΠ½Ρƒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ большС слово, Ρ‚Π΅ΠΌ большС ΡƒΡ€ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ нанСсСно ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΡƒ.

ΠŸΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ слова, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ свои способности, наносящиС ΡƒΡ€ΠΎΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ½ΠΈΠΆΠ°ΡŽΡ‰ΠΈΠ΅ силу ΠΈΠ³Ρ€ΠΎΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡΠ²ΠΎΠΉ Ρ…ΠΎΠ΄.

ПобСдив ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠ°, ΠΈΠ³Ρ€ΠΎΠΊ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΡƒ ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅Ρ‚ Π΄ΠΎ Π±ΠΎΡΡΠ° Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ.

Если ΠΈΠ³Ρ€ΠΎΠΊ ΠΏΠΎΠ³ΠΈΠ±Π°Π΅Ρ‚ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ прохоТдСния Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ, Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ сначала.

Π’ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ элСмСнтов ΠΈΠ³Ρ€Ρ‹ Π²Π²ΠΈΠ΄Ρƒ ограничСнности Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ³Ρ€Ρ‹ «Π‘ΠΎΠΉ словами» Ρ‚Π°ΠΊΠΎΠ²Ρ‹:

НачинаСтся ΠΈΠ³Ρ€Π°

Π˜Π³Ρ€ΠΎΠΊΠ°ΠΌ даСтся ΠΏΠΎΠ»Π΅, состоящСС ΠΈΠ· 16 Π±ΡƒΠΊΠ² ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΠ΅ ΠΎΠ±ΠΎΠΈΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠ°ΠΌ, ΠΈ 2 ΠΌΠΈΠ½ΠΈ-поля, состоящСС ΠΈΠ· 4 Π±ΡƒΠΊΠ² ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΠ΅ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΌΡƒ ΠΈΠ³Ρ€ΠΎΠΊΡƒ.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ…ΠΎΠ΄ ΠΈΠ³Ρ€ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ· Π±ΡƒΠΊΠ² поля ΠΈ ΠΌΠΈΠ½ΠΈ-поля слово, количСство Π±ΡƒΠΊΠ² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ нанСсСнному ΡƒΡ€ΠΎΠ½Ρƒ.

ΠŸΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»Π΅ΠΌ становится Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ снизил ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠ° Π΄ΠΎ Π½ΡƒΠ»Ρ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠ³Ρ€Π° «Π‘ΠΎΠΉ словами» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄Π²ΡƒΡ… ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΈΠ³Ρ€Π° «ΠœΠ°Π³ΠΈΡ Π‘Π»ΠΎΠ²» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ.

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

Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½ΡƒΠΆΠ½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹.

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

#include «HelloWorldScene.h»

#include

#include

#include

#include

#include

#include

using namespace std;

using namespace cocos2d;

Π’Π΅ΠΏΠ΅Ρ€ΡŒ объявим Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ‹, Π½ΡƒΠΆΠ½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠœΠ°ΡΡΠΈΠ²Ρ‹ Ρ‚ΠΈΠΏΠ° CCPoint хранят Π² ΡΠ΅Π±Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π±ΡƒΠΊΠ²Ρ‹. ΠœΠ°ΡΡΠΈΠ²Ρ‹ Ρ‚ΠΈΠΏΠ° int хранят Π² ΡΠ΅Π±Π΅ индСксы Π±ΡƒΠΊΠ². ΠœΠ°ΡΡΠΈΠ²Ρ‹ points ΠΈ wordl относятся ΠΊ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌΡƒ полю, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ввСсти слово. ΠœΠ°ΡΡΠΈΠ²Ρ‹ field ΠΈ lettersl относятся ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌΡƒ полю, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π±ΡƒΠΊΠ²Ρ‹, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ слова. ΠœΠ°ΡΡΠΈΠ²Ρ‹ field1 ΠΈ letters1l относятся ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ Π±ΠΎΠΊΠΎΠ²ΠΎΠΌΡƒ полю ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π±ΡƒΠΊΠ²Ρ‹ для составлСния слов, Π° field 2 ΠΈ letters2l относятся для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°.

// ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚

CCPoint points [8];

CCPoint field [16];

CCPoint field1 [4];

CCPoint field2 [4];

// ΠœΠ°ΡΡΠΈΠ²Ρ‹ индСксов

int wordl[8];

int lettersl[16];

int letters1l[4];

int letters2l[4];

// ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΆΠΈΠ·Π½Π΅ΠΉ Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ²

int health1;

int health2;

// Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΈΠ³Ρ€ΠΎΠΊ

int current_player;

bool AI_enabled;

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

Для Π½Π°Ρ‡Π°Π»Π° сдСлаСм мСню для ΠΈΠ³Ρ€Ρ‹.

// Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Π»Π°Π²Π½ΠΎΠ΅ мСню

sSprite = CCSprite: create («menu.png»);

sSprite->setPosition (ccp (size.width/2, size. height/2));

this->addChild (sSprite, 10);

// Кнопка ΠΈΠ³Ρ€Ρ‹ с ΠΆΠΈΠ²Ρ‹ΠΌ сопСрником

CCMenuItemImage *Player = CCMenuItemImage: create (

" pl_btn.png" ,

" pl_btn.png" ,

this,

menu_selector (HelloWorld:playPlayer));

Player->setPosition (ccp (200, size. height/2));

// Кнопка ΠΈΠ³Ρ€Ρ‹ с AI

CCMenuItemImage *AI = CCMenuItemImage: create (

" ai_btn.png" ,

" ai_btn.png" ,

this,

menu_selector (HelloWorld:playAI));

AI->setPosition (ccp (size.width-200, size. height/2));

// Π“Π»Π°Π²Π½ΠΎΠ΅ мСню

sMenu = CCMenu: create (Player, AI, NULL);

sMenu->setPosition (CCPointZero);

this->addChild (sMenu, 10);

Основой ΠΈΠ³Ρ€Ρ‹ являСтся ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, состоящСС ΠΈΠ· 4 ΠΏΠΎΠ»Π΅ΠΉ. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ располагаСтся свСрху. Π’ Π½Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ввСсти слово, количСство Π±ΡƒΠΊΠ² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ количСству нанСсСнного ΡƒΡ€ΠΎΠ½Π°. Π‘Π½ΠΈΠ·Ρƒ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ поля с Π±ΡƒΠΊΠ²Π°ΠΌΠΈ — Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ Π±ΠΎΠΊΠΎΠ²Ρ‹Π΅. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ 16 Π±ΡƒΠΊΠ², доступно для всСх ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ². Π‘ΠΎΠΊΠΎΠ²Ρ‹Π΅ поля, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ 4 Π±ΡƒΠΊΠ²Ρ‹, доступны ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠ°ΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ — Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ ΠΏΡ€Π°Π²ΠΎΠ΅.

Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΊΠ½Π°, для нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

// ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΊΠ½Π°

CCSize size = CCDirector: sharedDirector ()->getWinSize ();

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ.

// ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ

this->setTouchEnabled (true);

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, нСпосрСдствСнно, создаСм мСню с ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ. Кнопки Π±ΡƒΠ΄ΡƒΡ‚ описаны Π½ΠΈΠΆΠ΅.

// МСню

CCMenu* pMenu = CCMenu: create (Attack, Shuffle, NULL);

pMenu->setPosition (CCPointZero);

CC_BREAK_IF (! pMenu);

this->addChild (pMenu, 1);

Cocos2dx Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со ΡΠΏΡ€Π°ΠΉΡ‚Π°ΠΌΠΈ, поэтому ΠΈΠ³Ρ€ΠΎΠ²Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ являСтся ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°, нарисованная с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ графичСского Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° GIMP.

Рисунок 1 — Π˜Π³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

// Π€ΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

CCSprite* pSprite = CCSprite: create («background_img.png»);

pSprite->setPosition (ccp (size.width/2, size. height/2));

this->addChild (pSprite, 0);

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ слово Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ слова ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° индСксов слова.

// Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ слова ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° индСксов слова

for (i=0; i<8; i++)

{

points[i] = CCPoint (137+i*75, 462);

wordl[i]=-1;

}

ПослС этого ΠΌΡ‹ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ массив ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ поля ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° индСксов поля ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π±ΡƒΠΊΠ²Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ поля.

for (i=0; i<16; i++)

{

field[i] = CCPoint (287+(i%4)*75, 287-(i/4)*75);

addLetter ((char)('A'+rand ()%26), field[i]);

lettersl[i]=i;

}

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ массивы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ поля ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° индСксов поля ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π±ΡƒΠΊΠ²Ρ‹ поля ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°.

// Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ поля ΠΏΠ΅Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° индСксов поля ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°, созданиС Π±ΡƒΠΊΠ² поля ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°

for (i=0; i<4; i++)

{

field1[i] = CCPoint (63, 287-(i)*75);

addLetter ((char)('A'+rand ()%26), field1[i]);

letters1l[i]=i+16;

}

// Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ поля Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° индСксов поля Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°, созданиС Π±ΡƒΠΊΠ² поля Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°

for (i=0; i<4; i++)

{

field2[i] = CCPoint (737, 287-(i)*75);

addLetter ((char)('A'+rand ()%26), field2[i]);

letters2l[i]=i+20;

}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π°Ρ‚Π°ΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊ ΠΆΠ΅ Π±Ρ‹Π»ΠΈ нарисованы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ графичСского Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° GIMP.

// Кнопка Π°Ρ‚Π°ΠΊΠΈ

CCMenuItemImage *Attack = CCMenuItemImage: create (

" attack_btn.png" ,

" attack_btn.png" ,

this,

menu_selector (HelloWorld:attackCallback));

Attack->setPosition (ccp (CCDirector:sharedDirector ()->getWinSize ().width/2, 375));

// Кнопка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Π½ΠΈΡ

CCMenuItemImage *Shuffle = CCMenuItemImage: create (

" shuffle_btn.png" ,

" shuffle_btn.png" ,

this,

menu_selector (HelloWorld:shuffleCallback));

Shuffle->setPosition (ccp (CCDirector:sharedDirector ()->getWinSize ().width/2, 545));

Рисунок 2 — Кнопка Π°Ρ‚Π°ΠΊΠΈ

Рисунок 3 — Кнопка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Π½ΠΈΡ

4. ДСйствия Π½Π°Π΄ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ

Π”Π°Π½Π½Ρ‹ΠΉ этап описываСт всС дСйствия Π½Π°Π΄ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ. НачнСм с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±ΡƒΠΊΠ²Ρ‹ Π² ΠΈΠ³Ρ€Ρƒ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΡƒΠΊΠ²Π° Π½Π΅ Ρ‚Π΅Ρ€ΡΠ»Π°ΡΡŒ Π½Π° Π±Π΅Π»ΠΎΠΌ Ρ„ΠΎΠ½Π΅, Π±Ρ‹Π» создан спрайт для ячСйки Π² Π³Ρ€Π°Ρ„ичСском Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ GIMP, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Π±ΡƒΠΊΠ²Π°. Π­Ρ‚ΠΎ всё Π΄Π΅Π»Π°Π΅Ρ‚ функция addLetter.

void HelloWorld: addLetter (char letter, CCPoint position)

{

// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ изобраТСния для Π±ΡƒΠΊΠ²Ρ‹

CCSprite* image = CCSprite: create («letter.png»);

image->setPosition (position);

this->addChild (image, 0);

// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ надписи для Π±ΡƒΠΊΠ²Ρ‹

const char* str = &letter;

CCLabelTTF* label = CCLabelTTF: create (str, «Calibri», 64,

CCSizeMake (image->getContentSize ().width, image->getContentSize ().height), kCCTextAlignmentCenter);

label->setPosition (ccp (image->getContentSize ().width/2,image->getContentSize ().height/2));

image->addChild (label, 0);

// Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΠΊΠ²Ρ‹ Π² ΠΌΠ°ΡΡΠΈΠ²

_letters->addObject (image);

}

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° наТатия ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ. Она ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ наТатия ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π² ΠΈΠ³Ρ€Π΅ ΠΎΠ½Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄Π½ΠΈΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ Π½Π΅ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ сразу 4 Π±ΡƒΠΊΠ²Ρ‹.

void HelloWorld: ccTouchesEnded (CCSet* touches, CCEvent* event)

{

// ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ наТатия

CCTouch* touch = (CCTouch*)(touches->anyObject ());

CCPoint location = touch->locationInView ();

location = CCDirector: sharedDirector ()->convertToGL (location);

// Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π² ΠΈΠ³Ρ€Π΅

for (int i=0; i<_letters->count (); i++)

{

// ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ

CCSprite *letter = dynamic_cast (_letters->objectAtIndex (i));

int xmax, xmin, ymax, ymin;

xmax = letter->getPositionX () + letter->getContentSize ().width/2;

xmin = letter->getPositionX () — letter->getContentSize ().width/2;

ymax = letter->getPositionY () + letter->getContentSize ().height/2;

ymin = letter->getPositionY () — letter->getContentSize ().height/2;

// Если Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±ΡƒΠΊΠ²Ρ‹

if (location.x>xmin && location. xymin && location. y

{

// Если Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΎ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ выстраиваСмого слова

if (location.y>400)

{

// Найти, Π½Π° ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠΎ ΡΡ‡Π΅Ρ‚Ρƒ Π±ΡƒΠΊΠ²Ρƒ Π² ΡΠ»ΠΎΠ²Π΅ Π½Π°ΠΆΠ°Π»ΠΈ, Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π΅ ΠΈ Π²ΡΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π° Π½Π΅ΠΉ Π½Π° ΠΌΠ΅ΡΡ‚ΠΎ.

for (int j=0; j<8; j++)

{

if (wordl[j] == i)

{

returnLetters (j);

}

}

}

// Если Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ ΠΏΠΎΠ»Π΅ΠΉ Π±ΡƒΠΊΠ²

else

{

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΡƒΠΊΠ²Ρƒ (Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π»ΠΈ ΠΎΠ½Π° ΠΈΠ³Ρ€ΠΎΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сСйчас Π½Π΅ Ρ…ΠΎΠ΄ΠΈΡ‚)

bool valid = true;

if (current_player == 1)

{

for (int k = 0; k < 4; k++)

{

if (letters2l[k] == i)

{

valid = false;

}

}

}

else

{

for (int k = 0; k < 4; k++)

{

if (letters1l[k] == i)

{

valid = false;

}

}

}

// Если Π±ΡƒΠΊΠ²Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ словС мСньшС 8 Π±ΡƒΠΊΠ²

if (word_index<8 && valid)

{

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Π½Π΅ Π΄Π²ΠΈΠΆΠ΅Ρ‚ся Π»ΠΈ эта Π±ΡƒΠΊΠ²Π° Π½Π° ΡΠ²ΠΎΠ΅ мСсто Π² ΡΠ»ΠΎΠ²Π΅

bool exists = false;

for (int j = 0; j < 8; j++)

{

if (wordl[j]==i)

exists = true;

}

// Если всС Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρƒ Π½Π° Π΅Π΅ ΠΌΠ΅ΡΡ‚ΠΎ Π² ΡΠ»ΠΎΠ²Π΅, Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π΅ ΠΈΠ½Π΄Π΅ΠΊΡ Π² ΠΌΠ°ΡΡΠΈΠ² индСксов слова, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ индСкс ΠΊΠΎΠ½Ρ†Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ слова

if (!exists)

{

moveLetter (i, points[word_index]);

wordl[word_index]=i;

word_index++;

}

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ функция, returnLetter, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ· Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ поля Π½Π° Π΅Ρ‘ ΠΌΠ΅ΡΡ‚ΠΎ.

void HelloWorld: returnLetter (int index)

{

int i;

// Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρƒ Π½Π° Π΅Π΅ ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

// Поиск ΠΏΠΎ Π±ΡƒΠ²Π°ΠΌ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ поля

for (i=0; i<16; i++)

{

if (lettersl[i]==index)

{

moveLetter (index, field[i]);

}

}

// Поиск ΠΏΠΎ Π±ΡƒΠ²Π°ΠΌ ΠΈΠ· ΠΏΠΎΠ»Ρ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°

for (i=0; i<4; i++)

{

if (letters1l[i]==index)

{

moveLetter (index, field1[i]);

}

}

// Поиск ΠΏΠΎ Π±ΡƒΠ²Π°ΠΌ ΠΈΠ· ΠΏΠΎΠ»Ρ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°

for (i=0; i<4; i++)

{

if (letters2l[i]==index)

{

moveLetter (index, field2[i]);

}

}

}

Ѐункция returnLetter вызываСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ returnLetters, которая, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±ΡƒΠΊΠ²Ρ‹ Π½Π° ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, начиная с ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ индСкса.

void HelloWorld: returnLetters (int index)

{

int i;

for (i=index; i<8; i++)

{

returnLetter (wordl[i]);

wordl[i]=-1;

}

word_index=index;

}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ removeLetter. Данная функция функция прячСт Π±ΡƒΠΊΠ²Ρƒ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΠΏΠΎΠ»Π΅, ставит Π΅Ρ‘ Π½Π° ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ»Π°ΡΡŒ ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ Π±ΡƒΠΊΠ²Π°, функция removeLetter Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ resetLetter.

void HelloWorld: removeLetter (int word_index)

{

// Π—Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий для изобраТСния Π±ΡƒΠΊΠ²Ρ‹: ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΉ, Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π·Π°ΠΌΠ΅Π½Ρ‹ Π±ΡƒΠΊΠ²Ρ‹, Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΉ

((CCSprite*)_letters->objectAtIndex (word_index))->runAction (CCSequence:create (

CCFadeTo:create (0.5, 0),

CCCallFuncND:create (this, callfuncND_selector (HelloWorld:resetLetter), (void*)word_index),

CCDelayTime:create (0.25),

CCFadeTo:create (0.5, 255),

NULL));

// Аналогичная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий для надписи Π±ΡƒΠΊΠ²Ρ‹

((CCSprite*)((CCSprite*)_letters->objectAtIndex (word_index))->getChildren ()->objectAtIndex (0))->runAction (CCSequence:create (

CCFadeTo:create (0.5, 0),

CCDelayTime:create (0.25),

CCFadeTo:create (0.5, 255),

NULL));

// Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ исходная позиция Π±ΡƒΠΊΠ²Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ свободна

for (int i=0; i<16; i++)

{

if (lettersl[i]==word_index)

{

lettersl[i]=-1;

}

}

for (int i=0; i<4; i++)

{

if (letters1l[i]==word_index)

{

letters1l[i]=-1;

}

}

for (int i=0; i<4; i++)

{

if (letters2l[i]==word_index)

{

letters2l[i]=-1;

}

}

}

void HelloWorld: resetLetter (CCNode* sender, void* word_index)

{

int w=((int) word_index);

// Поиск пустого мСста Π² ΠΏΠΎΠ»Π΅, гСнСрация Π½ΠΎΠ²ΠΎΠΉ надписи для Π±ΡƒΠΊΠ²Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π±ΡƒΠΊΠ²Ρ‹ Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ

// Π’ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅

for (int i=0; i<16; i++)

{

if (lettersl[i]==-1)

{

char letter = (char)('A'+rand ()%26);

char s1[] = ««;

s1[0] = letter;

char* str = s1;

((CCSprite*)_letters->objectAtIndex (w))->setPosition (field[i]);

((CCLabelTTF*)((CCSprite*)_letters->objectAtIndex (w))->getChildren ()->objectAtIndex (0))->setString (str);

lettersl[i] = w;

return;

}

}

// Π’ ΠΏΠΎΠ»Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°

for (int i=0; i<4; i++)

{

if (letters1l[i]==-1)

{

char letter = (char)('A'+rand ()%26);

char s1[] = ««;

s1[0] = letter;

char* str = s1;

((CCSprite*)_letters->objectAtIndex (w))->setPosition (field1[i]);

((CCLabelTTF*)((CCSprite*)_letters->objectAtIndex (w))->getChildren ()->objectAtIndex (0))->setString (str);

letters1l[i] = w;

return;

}

}

// Π’ ΠΏΠΎΠ»Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°

for (int i=0; i<4; i++)

{

if (letters2l[i]==-1)

{

char letter = (char)('A'+rand ()%26);

char s1[] = ««;

s1[0] = letter;

char* str = s1;

((CCSprite*)_letters->objectAtIndex (w))->setPosition (field2[i]);

((CCLabelTTF*)((CCSprite*)_letters->objectAtIndex (w))->getChildren ()->objectAtIndex (0))->setString (str);

letters2l[i] = w;

return;

}

}

}

5. ДСйствия ΠΈΠ³Ρ€ΠΎΠΊΠ°

Π˜Π³Ρ€ΠΎΠΊΡƒ доступны Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ — «Attack» ΠΈ «Shuffle». НаТатиС ΠΊΠ½ΠΎΠΏΠΊΠΈ «Attack» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ attackCallback. Π­Ρ‚Π° функция Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ строку ΠΈΠ· Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠΊΠ² ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ этой строки Π² ΡΠ»ΠΎΠ²Π°Ρ€Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ findword.

void HelloWorld: attackCallback (CCObject* pSender)

{

int i;

char a[9];

// Из Π±ΡƒΠΊΠ², выстроСнных Π² Ρ€ΡΠ΄, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ слово

for (i=0; i

{

const char* t = ((CCLabelTTF*)((CCSprite*)_letters->objectAtIndex (wordl[i]))->getChildren ()->objectAtIndex (0))->getString ();

a[i] = *t;

}

// Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ символ окончания строки Π² ΠΊΠΎΠ½Π΅Ρ† ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ слова

i = 0;

while (a[i] >= 'A' && a[i] <= 'Z')

{

i++;

}

a[i] = '';

// Если ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ слово Π΅ΡΡ‚ΡŒ Π² ΡΠ»ΠΎΠ²Π°Ρ€Π΅, Ρ…ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΄ΡƒΡ€Π³ΠΎΠΌΡƒ, ΠΈΠ³Ρ€ΠΎΠΊ наносит ΡƒΡ€ΠΎΠ½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹ΠΌΠΈ

if (findword (a))

{

changePlayer ();

damagePlayer (current_player, i);

for (int i=0; i<8; i++)

{

if (wordl[i]>=0)

{

removeLetter (wordl[i]);

wordl[i]=-1;

word_index—;

}

Если ΠΈΠ³Ρ€ΠΎΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ слово ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π΅ΠΌΡƒ Π±ΡƒΠΊΠ², Ρ‚ΠΎ Π½Π° ΡΡ‚ΠΎΡ‚ случай Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ° «Shuffle». Π­Ρ‚Π° функция замСняСт всС Π±ΡƒΠΊΠ²Ρ‹ Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ»Π΅ Π½Π° Π½ΠΎΠ²Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹, Π½ΠΎ Π½Π°Π½ΠΎΡΠΈΡ‚ ΡƒΡ€ΠΎΠ½ ΠΈΠ³Ρ€ΠΎΠΊΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠ΅ΠΌΡƒ эту ΠΊΠ½ΠΎΠΏΠΊΡƒ. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ это посрСдством Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ returnLetters ΠΈ removeLetter. Ѐункция returnLetters Π½ΡƒΠΆΠ½Π° для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Π±ΡƒΠΊΠ²Ρ‹ Π²Π΅Ρ€Π½ΡƒΠ»ΠΈΡΡŒ Π½Π° ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ мСста, Π° Ρ„ункция removeLetter для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ всС Π±ΡƒΠΊΠ²Ρ‹ Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ»Π΅.

void HelloWorld: shuffleCallback (CCObject* pSender)

{

int i;

// Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ всС выстроСнныС Π±ΡƒΠΊΠ²Ρ‹ Π½Π° ΠΌΠ΅ΡΡ‚Π°

returnLetters (0);

// Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС Π±ΡƒΠΊΠ²Ρ‹ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅

for (i=0; i<16; i++)

{

removeLetter (lettersl[i]);

}

// НанСсти ΡƒΡ€ΠΎΠ½ ΠΈΠ³Ρ€ΠΎΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Π» Π±ΡƒΠΊΠ²Ρ‹

damagePlayer (current_player, 3);

}

Ѐункция damagePlayer наносит ΡƒΡ€ΠΎΠ½. Ѐункция ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΡƒΡ€ΠΎΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ нанСсСно ΠΈΠ³Ρ€ΠΎΠΊΡƒ. ПослС этих манипуляций обновляСтся ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ ΠΈΠ³Ρ€ΠΎΠΊΠ°.

void HelloWorld: damagePlayer (int player, int damage)

{

char hlt[4];

if (player == 1)

{

health1-=damage;

sprintf (hlt," %i", health1);

player1->setString (hlt);

}

if (player == 2)

{

health2-=damage;

sprintf (hlt," %i", health2);

player2->setString (hlt);

}

}

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

Рисунок 4 — Π˜Π³Ρ€ΠΎΠΊ составляСт слово

ПослС этого ΠΈΠ³Ρ€ΠΎΠΊ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Attack», Π±ΡƒΠΊΠ²Ρ‹ ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‚ ΠΈΠ· Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ поля, Π° Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ ΠΈ Π±ΠΎΠΊΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹. Π‘ΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° скрываСтся. Π₯ΠΎΠ΄ ΠΈΠ³Ρ€ΠΎΠΊΠ° заканчиваСтся.

Рисунок 5 — Π˜Π³Ρ€ΠΎΠΊ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π°Ρ‚Π°ΠΊΠΈ

6. ДСйствия ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°

На Π΄Π°Π½Π½ΠΎΠΌ этапС Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ дСйствия искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°. Ѐункция findword построчно считываСт содСрТаниС Ρ„Π°ΠΉΠ»Π° словаря, пробСгаСтся ΠΏΠΎ Π²ΡΠ΅ΠΌ доступным Π±ΡƒΠΊΠ²Π°ΠΌ, составляСт слова ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ самоС Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ….

bool HelloWorld: findword (string word)

{

int i;

bool found=false;

// ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°

string STRING;

ifstream infile;

infile.open («dict.txt»);

while (!infile.eof ()) // To get you all the lines.

{

// Π§Ρ‚Π΅Π½ΠΈΠ΅ строки ΠΈΠ· Ρ„Π°ΠΉΠ»Π°

getline (infile, STRING); // Saves the line in STRING.

i = 0;

// Если считанная строка ΠΈ ΡΠ»ΠΎΠ²ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹

if (STRING.size () == word. size ())

{

// Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅ΠΌ строки посимвольно

while (i < word. size ())

{

if (STRING[i] == word[i])

{

i++;

}

else

{

i = word. size ()+1;

}

}

if (i == word. size ())

{

found = true;

}

}

}

// Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°

infile.close ();

// Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ true, Ссли слово Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΠΈ false, Ссли Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ.

return found;

}

Ѐункция getAvailableLetters ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ список доступных Π±ΡƒΠΊΠ² для искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°.

void HelloWorld: getAvailableLetters ()

{

int i;

for (i = 0; i < 16; i++)

{

const char* t = ((CCLabelTTF*)((CCSprite*)_letters->objectAtIndex (lettersl[i]))->getChildren ()->objectAtIndex (0))->getString ();

available[i] = *t;

}

for (i = 0; i < 4; i++)

{

const char* t = ((CCLabelTTF*)((CCSprite*)_letters->objectAtIndex (letters2l[i]))->getChildren ()->objectAtIndex (0))->getString ();

available[i+16] = *t;

}

available[20] = '';

}

Ѐункция letterAvailable провСряСт, Π΅ΡΡ‚ΡŒ Π»ΠΈ такая Π±ΡƒΠΊΠ²Π° срСди ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π±ΡƒΠΊΠ².

bool HelloWorld: letterAvailable (char letter, int count)

{

int i;

int found = 0;

for (i = 0; i < 20; i++)

{

if (letter == available[i])

{

found++;

}

}

if (found>=count)

{

return true;

}

else

{

return false;

}

}

Ѐункция letterCount провСряСт количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ² Π±ΡƒΠΊΠ²Ρ‹ Π² ΡΠ»ΠΎΠ²Π΅.

int HelloWorld: letterCount (string word, int index)

{

int count = 1;

int i;

for (i = index+1; i < word. size (); i++)

{

if (word[i] == word[index])

{

count++;

}

}

return count;

}

Ѐункция checkAvailableWord Π±Π΅Ρ€Π΅Ρ‚ слово ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΅Π³ΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ· ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π±ΡƒΠΊΠ².

{

int i = 0;

int j = 0;

int count = 0;

bool possible = true;

if (word.size () > 8 || word. size () <= optimal_length)

{

possible = false;

}

while (i < word. size () && possible)

{

possible = letterAvailable (word[i], letterCount (word, i));

i++;

}

if (possible)

{

optimal = word;

optimal_length = word. size ();

}

return possible;

}

Ѐункция AI_turn ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» словаря, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ список доступных Π±ΡƒΠΊΠ² для искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°, считываСт строки ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, составляСт ΠΈΠ· ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π±ΡƒΠΊΠ² слово. Если функция Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ слово, Ρ‚ΠΎ ΠΎΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, shuffleAI, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Shuffle».

void HelloWorld: AI_turn (CCNode* sender)

{

string STRING;

ifstream infile;

infile.open («dict.txt»);

getAvailableLetters ();

optimal_length = 0;

while (!infile.eof ()) // To get you all the lines.

{

// Π§Ρ‚Π΅Π½ΠΈΠ΅ строки ΠΈΠ· Ρ„Π°ΠΉΠ»Π°

getline (infile, STRING); // Saves the line in STRING.

checkAvailableWord (STRING);

}

if (optimal_length == 0)

{

CCLog («Shuffling»);

this->runAction (CCSequence:create (

CCCallFuncN:create (this, callfuncN_selector (HelloWorld:shuffleAI)),

CCDelayTime:create (1.5),

CCCallFuncN:create (this, callfuncN_selector (HelloWorld:AI_turn)), NULL));

}

else

{

createWord (optimal);

this->runAction (CCSequence:create (

CCDelayTime:create (1.5),

CCCallFuncN:create (this, callfuncN_selector (HelloWorld:attackAI)), NULL));

}

}

Ѐункция createWord создаСт слово.

void HelloWorld: createWord (string word)

{

int i, j, k;

bool found;

bool used;

char letters[16];

for (i = 0; i < word. size (); i++)

{

found = false;

//Для основного поля

for (j = 0; j < 16; j++)

{

const char* t = ((CCLabelTTF*)((CCSprite*)_letters->objectAtIndex (lettersl[j]))->getChildren ()->objectAtIndex (0))->getString ();

letters[j] = *t;

if (letters[j] == word[i] &&!found)

{

//Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ, задСйствована Π»ΠΈ Π±ΡƒΠΊΠ²Π° Π² ΡΠ»ΠΎΠ²Π΅

used = false;

for (k = 0; k < 8; k++)

{

if (wordl[k] == lettersl[j])

{

used = true;

}

}

//Если Π½Π΅ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Π½Π°

if (!used)

{

moveLetter (lettersl[j], points[word_index]);

wordl[word_index]=lettersl[j];

word_index++;

found = true;

}

}

}

for (j = 0; j < 4; j++)

{

const char* t = ((CCLabelTTF*)((CCSprite*)_letters->objectAtIndex (letters2l[j]))->getChildren ()->objectAtIndex (0))->getString ();

letters[j] = *t;

if (letters[j] == word[i] &&!found)

{

used = false;

for (k = 0; k < 8; k++)

{

if (wordl[k] == letters2l[j])

{

used = true;

}

}

if (!used)

{

moveLetter (letters2l[j], points[word_index]);

wordl[word_index]=letters2l[j];

word_index++;

found = true;

}

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ shuffleAI ΠΈ attackAI Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ функциям shuffleCallback ΠΈ attackCallback, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°.

void HelloWorld: shuffleAI (CCNode* sender)

{

int i;

// Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ всС выстроСнныС Π±ΡƒΠΊΠ²Ρ‹ Π½Π° ΠΌΠ΅ΡΡ‚Π°

returnLetters (0);

// Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС Π±ΡƒΠΊΠ²Ρ‹ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅

for (i=0; i<16; i++)

{

removeLetter (lettersl[i]);

}

// НанСсти ΡƒΡ€ΠΎΠ½ ΠΈΠ³Ρ€ΠΎΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Π» Π±ΡƒΠΊΠ²Ρ‹

damagePlayer (current_player, 3);

}

void HelloWorld: attackAI (CCNode* sender)

{

changePlayer ();

damagePlayer (current_player, optimal_length);

for (int i=0; i<8; i++)

{

if (wordl[i]>=0)

{

removeLetter (wordl[i]);

wordl[i]=-1;

word_index—;

}

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ…ΠΎΠ΄ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° выглядит Ρ‚Π°ΠΊ. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ составляСт слово ΠΈΠ· Π±ΡƒΠΊΠ² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ Π±ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пСрСносятся Π² Π²Π΅Ρ€Ρ…Π½Π΅Π΅ ΠΏΠΎΠ»Π΅.

Рисунок 6 — ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ составляСт слово

ПослС этого ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Attack», Π±ΡƒΠΊΠ²Ρ‹ ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‚ ΠΈΠ· Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ поля, Π° Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ ΠΈ Π±ΠΎΠΊΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹. Π‘ΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° скрываСтся. Π₯ΠΎΠ΄ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° заканчиваСтся.

Рисунок 7 — ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡƒ Π°Ρ‚Π°ΠΊΠΈ

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

Π’ Ρ…ΠΎΠ΄Π΅ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½Ρ‹ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΈΠ³Ρ€Π° «ΠœΠ°Π³ΠΈΡ Π‘Π»ΠΎΠ²» ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Alawar Entertainment. Они Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для написания собствСнной ΠΈΠ³Ρ€Ρ‹. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ использовался Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ cocos2dx, языком создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π» Π‘++.

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

БиблиографичСский список

1. ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½, Π‘. Π―Π·Ρ‹ΠΊ программирования C /Π‘. ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½, Π”. Π ΠΈΡ‚Ρ‡ΠΈ. Π’ΠΈΠ»ΡŒΡΠΌΡ, 2012. 304 с.

2. Пошаговая инструкция ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ простых ΠΈΠ³Ρ€ Π½Π° cocos2dx [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс] / http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Step_by_Step_Cocos2dxSimpleGame_Series.

3.ΠœΠ°Π½ΡƒΠ°Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс] / http://www.cocos2d-x.org/projects/cocos2d-x/wiki

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ