WEBVTT 00:00:01.383 --> 00:00:05.679 ახლა ვისაუბრებთ იმაზე, რასაც უკვე აქტიურად ვიყენებთ: ფუნქციებზე. 00:00:05.685 --> 00:00:09.390 ისეთ ბრძანებებს გამოყენებისას, როგორებიცაა მაგალითად, rect(), fill() ან text() 00:00:09.390 --> 00:00:14.536 თქვენ ფუნქციებს იძახებთ. სწორედ ეს ფუნქციები აკეთებენ იმას, რასაც ეუბნებით. 00:00:14.902 --> 00:00:16.126 რა არის ფუნქცია? 00:00:16.126 --> 00:00:19.483 ფუნქცია არის კოდის გაერთიანებული ნაწილი, რომელსაც სახელი აქვს დარქმეული 00:00:19.483 --> 00:00:23.370 რადგან მისი გამოყენება ბევრჯერ გვინდა. 00:00:23.370 --> 00:00:25.981 განვიხილოთ rect() ფუნქცია. რას აკეთებს ის? 00:00:25.981 --> 00:00:28.551 ის უბრალოდ ოთხ ხაზს ხატავს. 00:00:28.551 --> 00:00:33.801 შევეძლო მხოლოდ line()-ს გამოყენებით მიგვეღო მართკუთხედი 00:00:33.847 --> 00:00:38.991 მაგრამ, თუ ბევრი მართკუთხედის დახატვა გვინდა 00:00:38.991 --> 00:00:42.052 მოუხერხებელი იქნებოდა ყოველი ხაზის გასმისას იმის გამოთვლა 00:00:42.052 --> 00:00:45.793 როგორ გავავლოთ ხაზი ერთი კუთხიდან მოერეში, მეორედამ მესამეში და ა.შ. 00:00:45.818 --> 00:00:48.538 ამის მაგივრად, უბრალოდ შევქმენით ფუნქცია rect(). 00:00:48.538 --> 00:00:51.818 ეს ფუნქცია აკეთებს იმავეს, რასაც კოდის ის ოთხი ხაზი 00:00:51.818 --> 00:00:54.178 მაგრამ გაცილებით უფრო მოკლეა. 00:00:55.528 --> 00:00:58.399 rect()-ი ერთ-ერთი იმ ფუნქციათაგანია, 00:00:58.399 --> 00:01:02.599 რომელიც ხანის აკადემის ყველა პროგრამაში არის ხელმისაწვდომი. 00:01:02.729 --> 00:01:05.339 თქვენც შეგიძლიათ საკუთარი ფუნქციების შექმნა 00:01:05.339 --> 00:01:08.409 და შემდეგ მათი გამოყენება თქვენს პროგრამებში. 00:01:08.409 --> 00:01:14.300 მაგალითად, ვწერთ პროგრამას და მასში ბევრჯერ გვინდა ვინსტონის დახატვა. 00:01:14.434 --> 00:01:17.017 შეიძლება გვინდოდეს ვინსტონის ცხოვრების ისტორია მოვყვეთ 00:01:17.017 --> 00:01:20.190 და ვაჩვენოთ, როგორი იყო ის სხვადასხვა ასაკში. 00:01:20.190 --> 00:01:24.243 კოდი, რომელიც ვინსტონს დახატავდა, ასე შეიძლება დავიწყოთ: 00:01:24.243 --> 00:01:28.896 გვაქვს "faceX" და "faceY" ცვლადები, რომლებიც სახის ცენტრს შეესაბამებიან 00:01:29.029 --> 00:01:32.159 ამ ცენტრის მიმართ ვხატავთ თვალებსა და პირს 00:01:32.439 --> 00:01:36.322 ახლა პროგრამა ხედავს კოდს, რომელიც არ არის ფუნქციაში 00:01:36.322 --> 00:01:39.695 ამიტომაც ეს კოდი იშვება მხოლოდ ერთხელ. 00:01:39.739 --> 00:01:43.717 მოდით ეს კოდი ფუნქციად გადავაკეთოდ. 00:01:43.717 --> 00:01:47.439 ფუნქციის შექმნა ძალიან ჰგავს ცვლადის გამოცხადებას 00:01:47.439 --> 00:01:50.247 რადგან ჩვენ მართლა ცვლადს ვქმნით. 00:01:50.247 --> 00:01:52.077 ვწერთ: var drawWinston. 00:01:52.077 --> 00:01:54.551 სახელი კარგად უნდა აღწერდეს ფუნქციას. 00:01:54.551 --> 00:01:59.037 შემდეგ ვწერთ ტოლობის ნიშანს("="), მაგრამ სტრინგის ან რიცხვის მაგივრად 00:01:59.037 --> 00:02:02.721 ვწერთ function (მართლწერაში არ შეცდეთ) 00:02:02.721 --> 00:02:08.017 ამის შემდეგ ვწერთ ცარიელ ფრჩხილებს "()", და შემდეგ ვხსნით ფიგურულ ფრჩხილს "{" 00:02:08.137 --> 00:02:11.563 შემდეგ, ვხურავთ ფიგურულ ფრჩხილს "}" და ვწერთ წერტილ-მძიმეს ";". 00:02:11.563 --> 00:02:14.490 ფიგურულ ფრჩხილებს შორის ვათავსებთ ყველაფერს, 00:02:14.490 --> 00:02:19.454 რაც გვინდა, რომ ფუნქციამ შეასრულოს. 00:02:19.454 --> 00:02:22.950 ავიღოთ მთელი ეს კოდი, ჩავსვათ ჩვენს ფუნქციაში 00:02:22.950 --> 00:02:24.590 წავწიოთ ის წინ 00:02:24.590 --> 00:02:26.816 და მზადაა! 00:02:26.816 --> 00:02:32.250 ახლა ჩვენ გვაქვს ცვლადი, რომელშიც შენახულია ფუნქცია. 00:02:32.379 --> 00:02:36.479 კოდის ამ ბლოკს მივანიჭეთ სახელი, რაც საშუალებას მოგვცემს 00:02:36.479 --> 00:02:40.765 პროგრამას ნებისმიერ დროს ვუთხრათ იპოვოს ეს ბლოკი და გაუშვას მასში მოქცეული კოდი. 00:02:40.765 --> 00:02:43.551 კოდის ეს ნაწილი გახდა მრავალჯერ გამოყენებადი. 00:02:43.551 --> 00:02:46.535 ალბათ შეამჩნევთ, რომ ვინსტონი გაქრა. 00:02:46.535 --> 00:02:49.357 ვინსტონი დავკარგეთ! სად წავიდა? 00:02:49.357 --> 00:02:53.025 ასეთი რამ მოხდა: კოდის ეს ნაწილი ფუნქციაში რომ ჩავწერეთ 00:02:53.025 --> 00:02:57.807 პროგრამას ვუთხარით, რომ ეს არის კოდი, რომლის გამოყენებაც მომავალში გვინდა 00:02:57.847 --> 00:03:00.807 მაგრამ მხოლოდ მაშინ, როდესაც მას ჩვენ გავუშვებთ. 00:03:00.807 --> 00:03:04.288 ჩვენ უნდა ვუთხრათ პროგრამას, რომ გაუშვას ეს კოდი 00:03:04.288 --> 00:03:06.400 რაც იმას ნიშნავს, რომ ეს ფუნქცია უნდა გამოვიძახოთ 00:03:06.400 --> 00:03:09.400 ისევე როგორც ellipse(), rect() და line() 00:03:09.400 --> 00:03:13.753 უბრალოდ ვწერთ ფუნქციის სახელს (drawWinston) 00:03:13.753 --> 00:03:18.309 ვუწერთ ცარიელ ფრჩხილებს "()" და, რა თქმა უნდა, წერტილ-მძიმეს 00:03:18.309 --> 00:03:20.942 ვინსტონიც გამოჩნდა! 00:03:20.942 --> 00:03:26.567 შეიძლება გეგონოთ, რომ ეს უაზრობაა, იმიტომ რომ პროგრამამ იგივე გააკეთა 00:03:26.567 --> 00:03:30.203 რასაც ფუნქციის გარეშეც ვაკეთებდით. 00:03:30.239 --> 00:03:33.640 ფუნქციის მთავარი ღირსება ისაა, რომ მისი ხელახლა გამოყენება შეგვიძლია. 00:03:33.640 --> 00:03:34.957 მოდით ახლავე გავაკეთოთ ეს. 00:03:34.957 --> 00:03:41.162 შეგვიძლია ფუნქცია ბერვჯერ დავაკოპიროთ, 00:03:41.162 --> 00:03:46.572 მაგრამ გამოსახულება იგივე რჩება 00:03:46.608 --> 00:03:51.474 ეს იმის ბრალია, რომ ვინსტონი ერთსა და იმავე ადგილას იხატება 00:03:51.474 --> 00:03:57.588 რენტგენული მხედველობა რომ გვქონოდა, დავინახავდით სამ ვინსტონს. 00:03:57.631 --> 00:04:00.334 მაგრამ ასეთი მხედველობა, სამწუხაროდ, არ მაქვს. 00:04:00.334 --> 00:04:03.440 სამაგიეროდ შეგვიძლია ოდნავ შევცვალოთ ფუნქცია 00:04:03.440 --> 00:04:05.486 და სამივე ვინსტონს დავინახავთ 00:04:05.486 --> 00:04:08.825 ხედავთ, რომ faceX და faceY ყოველთვის 202-სა და 208-ს უდრის? 00:04:08.825 --> 00:04:12.467 შეგვიძლია ეს random() (შემთხვევითი რიცხვების) ფუნქციის გამოყენებით შევცვალოთ 00:04:12.467 --> 00:04:14.849 random() 50-დან 350-მდე 00:04:14.849 --> 00:04:17.693 ის დააბრუნებს რიცხვს ამ ორ რიცხვს შორის ინტერვალიდან 00:04:17.693 --> 00:04:18.973 იგივე აქაც 00:04:18.973 --> 00:04:23.526 ამ ფუნქციის ყოველ გამოძახებაზე ის ახალ რიცხვებს აბრუნებს. 00:04:23.526 --> 00:04:27.919 თუ restart-ს დავაჭერთ, ახალ შემთხვევით ვინსტონებს მივიღებთ. 00:04:29.359 --> 00:04:34.755 ფუნქცია რომ არ გვქონოდა, საკმაოდ გრძელი კოდის წერა მოგვიწევდა 00:04:34.916 --> 00:04:37.387 ის ამ კოდზე სამჯერ უფრო გრძელი იქნებოდა 00:04:37.387 --> 00:04:40.960 მაგრამ ეს ფუნქცია ჯერ არ არის იმდენად სასარგებლო, რამდენადაც შეიძლება იყოს. 00:04:40.960 --> 00:04:43.796 ჩვენ არ გვჭირდება შემთხვევითი ვინსტონები. 00:04:43.796 --> 00:04:47.726 ჩვენ გვინდა, რომ ვინსტონები ეკრანის განსაზღვრულ ადგილებას გამოჩნდეს. 00:04:47.796 --> 00:04:49.933 გააგრძელეთ ჩვენი ვიდეოების ყურება 00:04:49.933 --> 00:04:53.620 შემდეგზე ვილაპარაკებთ იმაზე, თუ როგორ გადავცეთ ჩვენ ფუნქციას პარამეტრები 00:04:53.620 --> 00:04:56.000 იმისთვის, რომ ვინსტონი კონკრეტულ ადგილას დავხატოთ.