Тенис с ръкавици, код на играта и логика / Tennis with gloves Scratch

 В тази игра ще се състезавате за точки срещу компютъра, който ще играе ролята на Играч 2/

Тук ще използвате:
- Булеви променливи.
Какво са Булеви променливи?
В компютърното програмиране променливите, които имат стойност true или false , се наричат БУЛЕВИ. Те носят името на ученияДжордж Бул, който пръв е предложил да има променливи с такива стойности.
- Създаване на втори игра, който се управлява от компютъра.

Преди да започнете със сценария:
- създайте променливи, които ще отчитат точките на всеки от играчите. Нашият тенис ще е с различни играчи - ръкавици. Създайте и променлива Start, която ще отчита времто при всеки рунд.
- Създайте декора - фона. Ние направихме три костюма, един по време на игра и два, при победа съответно на червената ръкавица или на жълтата.
- Спрайтовете. Ръкавиците са готов ресурс от библиотеката на Скрач с малки промени в тях. Топката изрисувахме в графичния редактор на Скрач.
Идеята е тези спрайтове да се изградят предварително, за да може да са достъпни в падащите менюта след това. Ще го видите в техните сценарии.
Тенис топката
Сценарият е от някоко части, но всичко вече е много добре познато. 
Описание:
Първият ляв сценарий е началният, с който се нулират всички променливи и поставя топката в центъра на игралното поле. Променливата Start е приравнена на False, т.к. тази променлива ще я използваме, за да укажем кога започва играта. Това ще се случва, като променяме стойността ѝ от невярно (False) на вярно ( True). Остналите блокове от този сценарий насочват топката надолу. Ако не го направим, е възможно топката да тръгне настрани при старта на играта, а  полето ни се простира нагоре и надолу.
Вторият сценарий, горе в центъра започва също при натискане на зеления флаг. Ролята му е да рестартира играта след всяка точка. В него има условен оператор АКО_ТОГАВА_ИНАЧЕ (IF-Then-else), чието изпълнение зависи от стойността на променливата Start. Ако Start=True, кодът ще премести топката на 10 стъпки разстояние. Не забравяйте, че в началото на играта приравнихме STart на False. Следователно първата част от този сценарий няма се изпълнява в началото на играта, а само частта започваща след else. Тази част от кода позиционира топката в центъра на позиция Х:0 и У:0 и предва съобщението Countdown (обратно броене), изпозлвайки блоковете Broadcast от категория Events (Събития).
Третият сценрий от първи ред започва с блок "когато получа съобщението Coundown". който кара да има обратно броене  с блок кажи "3,2,1"преди променливата Start да се приравни на true.
На втория ред сценариите.
Първият управлява резултата в играта. Условните оператори с блоковете ако-тогава, проверяват дали топката се движи над позиция У:160 или под позиция У:-160, които съответстват на краищата на игралното поле. След като променим резултата, условните оператори ако-тогава променят стойсността на променливата START отново на false. Проравняването ѝ на false активира горния централен сценарий, който връща топката в центъра на полето за нов рунд.
Долният среден сценарий управлява посоката, в която отскача топката, след като се удари в ръкавицата на играча. Използва се блока избери случайно число (pick random ... to ...), за да накараме топката да отскача в случайна посока и играта да бъде непредсказуема и интересна. В този сценарий е важно да се съобрази посоката, в която ще отскача топката, след като докосне ръкавица. Посоката на Играч 1 е лесна - между -45 и 45. Посоката на Играч 2 е по-сложна за определяне, т.к. трябва да насочим топката надолу. Съветвам ви да изпозлвате блока избери случайно от 135 до 225.(point in direction "pick random 135 to 225").

Играч 1/Червена ръкавица
Първата част позиционира ръкавицата в долната част на полето (У -100) и указва позицията по Х да следва курсора на мишката, така че да може да се движи наляво-надясно.
Втората част започва с блока чакай докато (wait until), който изчаква, докато резултатъ на играч 1 не достигне 5 точки, преди играта да свърши. Изчакай докато точките на  Играч 1 RedGloves=5 и изпрати broadcast Red win и завършва с блока stop all, за да спре всички спрайтове и движения в сцената.

Играч 2 / Компютъра / Жълта ръкавица


Логиката в този код е, че компютърната ръкавица ще следва позицията по Х на топката. Работи доста добре.
Тайната е в това да накарате Играч 2 да следва позицията по Х на топката, но с леко закъсняваща скорост на плъзгане. Нарочно забавяме компютъра, за да има шанс Играч 1 да спечели. В противен случй Играч 2 винаги ще печели, ако закъснението е насторено на 0 секунди. В моя опит установих , че най добър шанс имаме при променящо се време от  0 и 0.25 секунди с блока избери случайно. Десният сценарий е като този на Играч 1 за край на играта. Изчакай докато точките на  Играч 2 YellowGloves=5 и изпрати broadcast Yellow win и завършва с блока stop all, за да спре всички спрайтове и движения в сцената.
Блокът backdrop#  of Stage
Вероятно ще се затрудните с блока, койтое вмъкнат в сценария на Играч 2 "x position of Tennis ball"
Той се намира в блоковете от категория Сетива - светло синята и е с име backdrop#  of Stage със трелки, от които има избор. Първо изберете отдясно и сменете Stage на Tennis ball  и след това backdrop# на x psoition.
Това е най-специфичното от целия код.

Сцената с трите костюма
За по-голямо разнообразие решихме да се сменя декора при победа на съотвения играч. Това става с помощта на блоковете за съобщения. Тук използваме блока за получаване на съобщения. Съответно всяко такова сменя искания костюм на декора. И в този сценарий сме вмъкнали и блокове за фонова музика по врем на играта с блоковете play sound.

Връзка към Скрач ->