Questions of Lion | Scratch програмиране | Игра на принципа питай и отговор | ask - answer game

В края на урпка ще се научите как да създавате игри от типа ask - answer games.
В този урок ще се научите да използвате блоковете:
  •  ПИТАЙ (ask), 
  •  ОТГОВОР (answer), 
  •  АКО-ТОГАВА (if / then), 
  •  допълнителни събития с Broadcast, 
  •  КЛОНИРАНЕ (create clone),
  • ЦИКЪЛ;
  • Смяна на декори;
  • JOIN (съедини)
Преди да започнете изберете спрайта, който ще задава въпросите. В случая е лъвче. Тази игра е създадена за урок  на тема "Лъвовете" с използване на английски език. Сцената е направена в графичния редактор на Скрач и добавяне на снимки. Общо фоновете са 7 и се сменят при всеки въпрос. 
Играта има два възможни изхода:
1. При отговор на всичките въпроси  
2. При преминат въпросник, но с грешки.

Лъвчето ЛИО
Кодът на спрайта е с три сценария.
1. Започва с блок при стартиране на играта със зелен флаг. Блок за движение отиди до (go to) на позиция по х: и у:. От тъмно оранжевата група Variables (променливи) направи променлива Correct answers=0. Следват блокове смени костюм и покажи се.
2. При стартиране на играта лъвчето използва два блока кажи, последвано от блок питай (ASK). Този блок е единственият, който позволява  играча да въведе своя отговор от клавиатурата и да натисне Enter. За целта в долнята част на екрана се появява поле, в което да се въведе отговор. Той се съхранява под формата на променлива, която предварително е създадена от компютъра - блок Answer. Този блок се намира в категорията за сетива (усещания). Той винаги съдържа стойността на отговора на блока питай / ASK, което означава, че вие трябва предварително да му напишете правилния отговор. Двата блока вървят заедно и така се ползват. Следва блок кажи, който използва и вмъкнат в него блок JOIN. Използваме го два пъти с вмъкване един в друг.  Целта му е да се изпише правилно поздрава " Hi, answer (въведения тоговор - име от играча)!" Следва блок питай с въпрос, който очава два възможни отговора. За тази цел следва блокът ако-тогава-иначе, в който слагаме условие ако answer=YES, тогава и се поставя блок за изпълнение. ИНАЧЕ/else - се изпълнява друго. В случая спрамо отговорът дали е Да или НЕ, е зададено да отговори по различен начин с блокове кажи. Завършват с изпращане на съобщение/broadkast с името Questions.
3. Започва с блок When I receive "Questions"/Когато получа съобщението за стартиране. Следват блокове питай, ако-тогава-иначе, които са с еднаква последователност. Ако се отговори с очаквания отговор, който е зададен на променливата answer, да каже Correct! и да промени точките в променливата Correct answers с 1, ИНАЧЕ да изпозлва блок кажи, в който лъва да даде верния отговор на потребителя. Извън блока ако-тогава-иначе, следва блок за изпрати съобщение, чиято цел е да подаде на декора информация да се смени. Така се повтарят блоковете в зависимост колко броя въпроси сте подготвили. В този случай са 4 въпроса започващи с блока ПИТАЙ. Накрая се изпраща последен Broadcast, който е последван от блока STOP all.

Декора
Преди да се изпишат сценарииите за декора, се подготвят няколко различни костюма  с различни изображения на екрана, свързан с всяко питане. Накрая има два костюма, които ще се визуализират в зависимост от резултата в точките на променливата Correct answers.
Кодът на декора е в няколко сценария.
Започва с натискане на зелен флаг, при който се избира фон за играта. Всеки следващ сценарий, който всъщност изисква смяна на фона на декора, се стартират, когато се получи съответното съобщение. Последният сценарий е по-различен. Той прави проверка, след като получи съобщението END, т.е. за край на въпросите, дали променливата Correct answers=4 с БЛОКА АКО-ТОГАВА-ИНАЧЕ. За двата случая са подговени два различни фона.

Пеперудата

По желание, може да включите още един спрайт - пеперуда. Той се появява в края на играта. Специфичното в кода му е, че се използва възможността да се клонира. Използваме един спрайт, на екрана в края ще имаме 17 различни пеперуди.
При започване на играта със зелен флаг, този спрайт се скрива. Чака да получи съобщение, което е за край на играта/въпросите END. Тогава стартира блок за повтаряне с число 17, толкова пъти да се изпълни. Вътре в този цикъл има блок за смяна на костюма (заложихме 5 костюма) и блок create clone of myself. Блок, който позволява на самия себе си да създадеш клонинг и се намира в оранжевата категорията КОНТРОЛ. Не го дублираме, не го копираме. Това спестява много в една игра. Последната част от кода на пеперудата стартира с блок when I start as a clone, тогава се покажи и отиди на случайна позиция.

Клонирането
Това е страхотен начин за копиране на спрайтове. Внимавайте да не създадете твърде много клонинги в една игра. Това ще ѝ попречи да върви гладко. Кога стават клонингите много? Трябва да тествате.

С това приключваме. Подобен сценарий работи за всякакви игри от типа Въпрос-Отговор. (Q&A game). Опитайте и споделете!
Ето нашата игра:

Връзка към Скрач: https://scratch.mit.edu/projects/629075417

Вижте другите уроци от програмирай със Скрач->