პროგრამირება

Scratch დამწყებთათვის: პირველი თამაში 30 წუთში (ნაბიჯ-ნაბიჯ)

ნაბიჯ-ნაბიჯ სკრეჩის გაკვეთილი: თასი ისრებით მოძრაობს, ვაშლები ზემოდან ცვივა, ქულა ითვლება და 30 წამში თამაში მთავრდება. ბლოკები ქართულ ინტერფეისში, ინგლისური სახელებით ფრჩხილებში.

ბავშვები Scratch-ის გაკვეთილზე ლეპტოპებთან სხედან, ეკრანზე სკრეჩის ბლოკებია

ფოტო: Jason.themade / Wikimedia Commons · CC BY-SA 4.0

Scratch-ში პირველი თამაში 30 წუთში იქმნება: აირჩიეთ ფონი, დაამატეთ თასი და ვაშლი, თასს ისრებით ამოძრავებთ, ვაშლს ზემოდან ჩამოაგდებთ, ცვლადით ქულას დაითვლით და წამზომით თამაშს 30 წამში დაასრულებთ. ქვემოთ ყველა ბლოკი სკრეჩის ქართულ ინტერფეისშია დასახელებული, ინგლისური სახელით ფრჩხილებში.

ეს გაკვეთილი 8–12 წლის ბავშვისთვისაა, რომელიც სკრეჩს პირველად ხსნის, და მშობლისთვის, რომელიც გვერდით უჯდება. პროგრამირების ცოდნა არ გჭირდებათ. ბოლოს გექნებათ მომუშავე თამაში და გეცოდინებათ სამი მთავარი იდეა, რომელზეც ნებისმიერი თამაში დგას: ციკლი, პირობა და ცვლადი.

რა არის სკრეჩი და რა დაგჭირდებათ?

სკრეჩი (Scratch) უფასო ბლოკური პროგრამირების ენაა, რომელიც MIT Media Lab-ში შეიქმნა და ახლა არაკომერციული Scratch Foundation ავითარებს. ის ძირითადად 8–16 წლისთვისაა განკუთვნილი. სკრეჩის პროგრამა ბრაუზერში მუშაობს, მისამართზე scratch.mit.edu, ხოლო ინტერნეტის გარეშე სამუშაოდ არსებობს Scratch-ის აპლიკაცია.

რა დაგჭირდებათ:

  • კომპიუტერი ან ლეპტოპი კლავიატურით (პლანშეტზე ისრებით მართვა მოუხერხებელია);
  • 30 წუთი და ცოტა მოთმინება;
  • სურვილისამებრ Scratch-ის ანგარიში, თუ პროექტის ონლაინ შენახვა და გაზიარება გინდათ.

ენის შესაცვლელად რედაქტორის ზედა მენიუში დააჭირეთ გლობუსის ხატულას და აირჩიეთ „ქართული“. ბლოკების ქართული სახელები Scratch-ის ოფიციალური თარგმანიდანაა (scratch-l10n). ზოგი თარგმანი უჩვეულოდ ჟღერს და შეიძლება დროთა განმავლობაში შეიცვალოს, ამიტომ ფრჩხილებში ინგლისურ სახელსაც ვუთითებთ: ასე ბლოკს ნებისმიერ ენაზე იპოვით.

კურსი TDS-შირობოტიკა და ელექტრონიკა 7–9: mBot-იდან საკუთარ Otto რობოტამდე7 თვე · 3 ფაზა · 72 სთ · დაწყება 21 ნოედეტალურად

ნაბიჯი 1: პროექტი, ფონი და სპრაიტები (5 წუთი)

თამაშის იდეა მარტივია: ზემოდან ვაშლები ცვივა, ქვემოთ თასია, მოთამაშე თასს მარცხნივ და მარჯვნივ ამოძრავებს და ცდილობს, რაც შეიძლება მეტი ვაშლი დაიჭიროს.

წითელი ვაშლები ვერცხლის ლანგარში: სკრეჩის თამაშის იდეა „დაიჭირე ვაშლი“
წითელი ვაშლები ვერცხლის ლანგარში: სკრეჩის თამაშის იდეა „დაიჭირე ვაშლი“ფოტო: George E. Koronaios / Wikimedia Commons · CC BY-SA 4.0

პროექტის მოსამზადებლად ოთხი მოქმედება გჭირდებათ:

  1. გახსენით scratch.mit.edu და ზედა მენიუში დააჭირეთ ახალი პროექტის ღილაკს (Create). გაიხსნება რედაქტორი კატის სპრაიტით.
  2. კატაზე, სპრაიტების სიაში, დააჭირეთ მარჯვენა ღილაკს და აირჩიეთ „წაშლა“ (delete).
  3. ქვედა მარჯვენა კუთხეში დააჭირეთ „აირჩიე ფონი“ (Choose a Backdrop) და აირჩიეთ Blue Sky.
  4. დააჭირეთ „აირჩიე სპრაიტი“ (Choose a Sprite) და მოძებნეთ Bowl (თასი). შემდეგ იგივე გაიმეორეთ Apple-ისთვის (ვაშლი).

თუ თასი ძალიან პატარა გეჩვენებათ, სპრაიტის პარამეტრებში, ველში „ზომა“ (Size), ჩაწერეთ 150. დიდი თასით თამაში მარტივდება, პატარით კი რთულდება.

სცენა 480 პიქსელი სიგანისაა და 360 პიქსელი სიმაღლის. ცენტრი წერტილია x: 0, y: 0. x მარცხნივ −240-მდე იცვლება, მარჯვნივ 240-მდე, y კი ქვემოთ −180-მდე და ზემოთ 180-მდე. ეს რიცხვები ახლავე დაგვჭირდება.

ნაბიჯი 2: თასის მართვა ისრებით (5 წუთი)

აირჩიეთ Bowl სპრაიტი და კოდის ზონაში ააწყვეთ ეს სკრიპტი. ბლოკები კატეგორიებშია: „მოვლენები“ (Events), „მართვა“ (Control), „სენსორები“ (Sensing), „მოძრაობა“ (Motion).

როდესაც აჭერ (მწვანე დროშას)            when green flag clicked
გადადი x: 0 y: -140                       go to x: 0 y: -140
მუდმივად                                   forever
    თუ <ღილაკი ისარი მარჯვნივ დაჭერილია?> მაშინ     if <key right arrow pressed?> then
        შეცვალე x 10ით                     change x by 10
    თუ <ღილაკი ისარი მარცხნივ დაჭერილია?> მაშინ     if <key left arrow pressed?> then
        შეცვალე x -10ით                    change x by -10

დააჭირეთ მწვანე დროშას და სცადეთ ისრები. თასი შეუფერხებლად უნდა მოძრაობდეს.

რატომ „მუდმივად“ და „თუ“, და არა ბლოკი „როდესაც აჭერ ღილაკს“ (when key pressed)? მეორე ვარიანტში კომპიუტერი ღილაკის განმეორებას პატარა პაუზით იწყებს და თასი „ბორძიკობს“. ციკლი კი ღილაკს წამში ბევრჯერ ამოწმებს, ამიტომ მოძრაობა გლუვია. ესაა თქვენი პირველი გაკვეთილი ციკლზე: ბრძანება, რომელიც თამაშის დასრულებამდე მეორდება.

ნაბიჯი 3: ვაშლი ზემოდან ცვივა (10 წუთი)

ახლა აირჩიეთ Apple სპრაიტი. ვაშლი სცენის ზედა ნაწილში, შემთხვევით ადგილას უნდა გაჩნდეს და ქვემოთ ეცემოდეს. ბლოკი „შემთხვევითი“ (pick random) „ოპერატორებშია“ (Operators), „y მდებარეობა“ (y position) კი „მოძრაობის“ ბოლოში.

როდესაც აჭერ (მწვანე დროშას)
გადადი x: (შემთხვევითი -220დან 220მდე) y: 170
მუდმივად
    შეცვალე y -5ით                                   change y by -5
    თუ <ეხება Bowl?> მაშინ                           if <touching Bowl?> then
        შეცვალე ქულა 1ით                             change score by 1
        ჩართე ხმა Chomp                              start sound Chomp
        გადადი x: (შემთხვევითი -220დან 220მდე) y: 170
    თუ <(y მდებარეობა) < -170> მაშინ                 if <(y position) < -170> then
        გადადი x: (შემთხვევითი -220დან 220მდე) y: 170

ბლოკი „შეცვალე ქულა 1ით“ ჯერ არ გექნებათ: მას შემდეგ ნაბიჯში შევქმნით. ამ სკრიპტში ორი პირობაა: თუ ვაშლი თასს შეეხო, ქულა იზრდება და ვაშლი თავიდან ზემოთ ჩნდება. თუ ვაშლი ძირს დაეცა (y −170-ზე ნაკლებია), ისიც ზემოთ ბრუნდება, ოღონდ ქულის გარეშე.

რატომ −220 და 220 და არა −240 და 240? რომ ვაშლი სცენის კიდეზე ნახევრად არ „ჩაიმალოს“ და მოთამაშემ ყოველთვის დაინახოს.

რიცხვი −5 სიჩქარეა. სცადეთ −3 და −10: პატარა რიცხვი თამაშს ამარტივებს, დიდი ართულებს.

ნაბიჯი 4: ქულის ცვლადი (5 წუთი)

ცვლადი ყუთია, რომელშიც კომპიუტერი რიცხვს ინახავს. ჩვენს ყუთს „ქულა“ დავარქვათ.

  1. გახსენით კატეგორია „ცვლადები“ (Variables) და დააჭირეთ „შექმენი ცვლადი“ (Make a Variable).
  2. სახელად ჩაწერეთ „ქულა“ და დატოვეთ მონიშნული „ყველა სპრაიტისთვის“ (For all sprites).
  3. სცენის კუთხეში გამოჩნდება მრიცხველი. თუ არ ჩანს, ცვლადის გვერდით მონიშნეთ კვადრატი.
  4. Apple-ის სკრიპტში ჩასვით „შეცვალე ქულა 1ით“ (change score by 1), იქ, სადაც ზემოთ აღვწერეთ.
  5. Bowl-ის სკრიპტში, „როდესაც აჭერ“ ბლოკის ქვემოთ, ჩასვით „მიანიჭე ქულას 0“ (set score to 0). ასე ყოველი ახალი თამაში ნულიდან დაიწყება.

„ყველა სპრაიტისთვის“ მნიშვნელოვანია: ქულას ვაშლი ზრდის, ნულზე კი თასი აბრუნებს. ცვლადი ორივემ უნდა დაინახოს.

ნაბიჯი 5: 30 წამიანი ტაიმერი და თამაშის დასასრული (5 წუთი)

თამაშს დასასრული სჭირდება. ამისთვის სკრეჩს ჩაშენებული წამზომი (timer) აქვს. Bowl სპრაიტს დაუმატეთ მეორე, ცალკე სკრიპტი:

როდესაც აჭერ (მწვანე დროშას)
წამზომის განულება                                       reset timer
იცადე მანამ <(წამზომი) > 30>                            wait until <(timer) > 30>
თქვი (შეაერთე „ქულა: “ (ქულა)) 2 წამით                  say (join "Score: " (score)) for 2 seconds
გააჩერე ყველაფერი                                       stop all

ერთ სპრაიტს რამდენიმე სკრიპტი შეიძლება ჰქონდეს და მწვანე დროშაზე ყველა ერთდროულად ირთვება. ახლა თამაში სრულია: დააჭირეთ დროშას, 30 წამი დაიჭირეთ ვაშლები და ნახეთ შედეგი. პროექტი შეინახეთ: „ფაილი“ (File), შემდეგ „შეინახე შენს კომპიუტერზე“ (Save to your computer).

რჩევა ლაბიდან

ბავშვს ყველა ბლოკი ნუ უკარნახებთ. მეოთხე ნაბიჯის შემდეგ ჰკითხეთ: „როგორ ფიქრობ, რა მოხდება, თუ −5-ს −15-ით შევცვლით?“ ჯერ ვარაუდი, შემდეგ ცდა. ასე ბავშვი კოდის ავტორი ხდება და არა გადამწერი, ეს კი ყველაზე სწრაფად ასწავლის.

სკრეჩის ბლოკები ამ თამაშში: ქართული და ინგლისური სახელები

ბლოკი ქართულადინგლისურადკატეგორიარას აკეთებს
როდესაც აჭერ (დროშას)when green flag clickedმოვლენებიიწყებს სკრიპტს
მუდმივადforeverმართვაიმეორებს უსასრულოდ
თუ … მაშინif … thenმართვაამოწმებს პირობას
ღილაკი … დაჭერილია?key … pressed?სენსორებიამოწმებს ღილაკს
ეხება …?touching …?სენსორებიამოწმებს შეხებას
შეცვალე x …ითchange x by …მოძრაობაამოძრავებს ჰორიზონტალურად
შემთხვევითი …დან …მდეpick random … to …ოპერატორებიიძლევა შემთხვევით რიცხვს
მიანიჭე …ს …set … to …ცვლადებიცვლადს მნიშვნელობას აძლევს
წამზომიtimerსენსორებიითვლის წამებს

ხშირი შეცდომები და როგორ გავასწოროთ

  • ერთ ვაშლზე ქულა რამდენჯერმე იზრდება. „თუ ეხება Bowl?“ ბლოკის შიგნით დაგავიწყდათ „გადადი x… y: 170“. ვაშლი თასზე რჩება და ყოველ ციკლზე ახალ ქულას ითვლის.
  • ახალი თამაში ძველი ქულით იწყება. Bowl-ის სკრიპტს აკლია „მიანიჭე ქულას 0“.
  • ვაშლი ერთხელ ჩამოვარდა და გაქრა. შეამოწმეთ, რომ ყველაფერი „მუდმივად“ ბლოკის შიგნითაა და რომ მეორე პირობა −170-ს ამოწმებს და არა 170-ს.
  • „ქულა“ ცვლადი Bowl-ში არ ჩანს. შექმნისას მონიშნული იყო „მხოლოდ ამ სპრაიტისთვის“. წაშალეთ ცვლადი და თავიდან შექმენით „ყველა სპრაიტისთვის“.
  • თასი სცენის კიდესთან ჩერდება. ეს შეცდომა არ არის: სკრეჩი სპრაიტს სცენიდან მთლიანად გასვლის საშუალებას არ აძლევს.

რა ისწავლა ბავშვმა და როგორ გავაზიაროთ თამაში უსაფრთხოდ

ამ 30 წუთში ბავშვმა ის იდეები გამოიყენა, რომლებზეც ნებისმიერი კომპიუტერული თამაში დგას, Minecraft-იდან ფეხბურთის სიმულატორამდე:

  • მოვლენა (event): პროგრამა რაღაცის შემდეგ ირთვება, ჩვენს შემთხვევაში დროშაზე დაჭერით.
  • თამაშის ციკლი (game loop): „მუდმივად“ ბლოკი ყოველ წამს ბევრჯერ ამოწმებს ღილაკებს, მოძრაობას და შეხებას. პროფესიულ ძრავებშიც ზუსტად ასეა.
  • პირობა: „თუ ეხება, მაშინ…“ თამაშის ყველა წესი პირობებითაა ჩაწერილი.
  • ცვლადი: ქულა, დრო, სიცოცხლე და დონე ცვლადებში ინახება.

ჰკითხეთ ბავშვს, სად ხედავს ამ ოთხ იდეას თავის საყვარელ თამაშში. ეს საუბარი თამაშის მოთამაშიდან შემქმნელად ქცევის დასაწყისია.

თამაშის გასაზიარებლად Scratch-ის ანგარიში და ღილაკი „გააზიარე“ (Share) გჭირდებათ. ამის შემდეგ პროექტს სხვა მომხმარებლებიც ხედავენ, აკომენტარებენ და შეუძლიათ მისი „რემიქსი“. Scratch Foundation საზოგადოების წესებს აქვეყნებს და მოდერაციას ახორციელებს, მაგრამ მშობლისთვის რამდენიმე წესი მაინც ღირს: მომხმარებლის სახელად ნამდვილი სახელი და გვარი არ გამოიყენოთ, პროექტში ბავშვის ფოტო და ხმა არ ჩადოთ და საზოგადოების წესები ერთად წაიკითხეთ. თუ გაზიარება ჯერ არ გინდათ, ფაილი უბრალოდ კომპიუტერში შეინახეთ.

როგორ გავაუმჯობესოთ თამაში: 6 იდეა

როცა საბაზისო თამაში მუშაობს, ყველაზე საინტერესო ნაწილი იწყება. აირჩიეთ ერთი იდეა და თავად სცადეთ:

  1. სიჩქარე იზრდება. შექმენით ცვლადი „სიჩქარე“ და ყოველ 5 ქულაზე გაზარდეთ.
  2. რამდენიმე ვაშლი ერთდროულად. გამოიყენეთ კლონები: „შექმენი (ჩემი)ს კლონი“ (create clone of myself) და „როდესაც მე ვიწყებ როგორც კლონი“ (when I start as a clone).
  3. სიცოცხლეები. სამი სიცოცხლე, დაცემული ვაშლი ერთს აკლებს, ნულზე თამაში მთავრდება.
  4. ლპობილი ვაშლი. მეორე სპრაიტი, რომელიც ქულას აკლებს. მოთამაშეს მოუწევს არჩევა.
  5. რეკორდი. ცვლადი „რეკორდი“, რომელიც მხოლოდ მაშინ იცვლება, როცა ქულა წინა რეკორდზე მეტია.
  6. მუსიკა. „მუსიკის“ (Music) გაფართოებით ფონური მელოდია.

ხშირად დასმული კითხვები

როგორ შევქმნათ თამაში სკრეჩში ნულიდან?

აირჩიეთ ფონი და სპრაიტები, მოთამაშის სპრაიტს მოძრაობის სკრიპტი დაუწერეთ „მუდმივად“ და „თუ“ ბლოკებით, დაამატეთ ობიექტი, რომელიც მოძრაობს, და ქულის ცვლადი. ამ სტატიის ხუთი ნაბიჯი სწორედ ამ თანმიმდევრობით გადის და პირველ თამაშს 30 წუთში გაძლევთ.

სკრეჩი უფასოა?

კი, სკრეჩი სრულიად უფასოა, ბრაუზერში მუშაობს და ინსტალაციას არ საჭიროებს. ინტერნეტის გარეშე სამუშაოდ არსებობს Scratch-ის უფასო აპლიკაცია. ანგარიში მხოლოდ ონლაინ შენახვისა და გაზიარებისთვისაა საჭირო.

რა ასაკიდან შეიძლება სკრეჩის სწავლა?

Scratch ძირითადად 8–16 წლისთვისაა განკუთვნილი, თუმცა 7 წლის ბავშვიც კარგად უმკლავდება მშობლის ან მასწავლებლის დახმარებით. 5–7 წლისთვის არსებობს გამარტივებული ScratchJr პლანშეტისთვის.

სად ვიპოვო სკრეჩის გაკვეთილები ქართულად?

სკრეჩის რედაქტორში ჩაშენებული გაკვეთილებია (Tutorials) და ინტერფეისის ქართულზე გადართვისას მათი ნაწილიც ითარგმნება. მეტი იდეისთვის წაიკითხეთ ჩვენი სტატია პროგრამირება ბავშვებისთვის, სადაც უფასო რესურსების ცხრილია.

რა ვისწავლოთ სკრეჩის შემდეგ?

თუ თამაშები მოგეწონათ, შემდეგი საფეხურებია MakeCode Arcade, Roblox Studio და Godot: ამაზე წერია თამაშების შექმნა ბავშვებისთვის. 11–13 წლიდან კარგი გაგრძელებაა Python: Scratch-იდან Python-მდე.

შემდეგი ნაბიჯი

თამაში მზადაა? გაუზიარეთ ოჯახს და სთხოვეთ, რეკორდი მოხსნან. თუ ბავშვს სურს, რომ მისმა კოდმა ეკრანის ნაცვლად ნამდვილი რობოტი აამოძრაოს, წაიკითხეთ mBot და Scratch ბავშვებისთვის და ნახეთ ჩვენი კურსი პროგრამირება და რობოტიკა: Scratch და mBot 7–10 წლისთვის. კითხვების შემთხვევაში დაგვიკავშირდით უფასო კონსულტაციისთვის.

წყაროები

სკრეჩისკრეჩის პროგრამაScratch თამაშის შექმნაროგორ შევქმნათ თამაშისკრეჩის გაკვეთილებიScratchპროგრამირება ბავშვებისთვის
გაზიარება
წაიკითხე ასევე

მსგავსი სტატიები

ყველა სტატია