1 00:00:01,383 --> 00:00:05,679 ახლა ვისაუბრებთ იმაზე, რასაც უკვე აქტიურად ვიყენებთ: ფუნქციებზე. 2 00:00:05,685 --> 00:00:09,390 ისეთ ბრძანებებს გამოყენებისას, როგორებიცაა მაგალითად, rect(), fill() ან text() 3 00:00:09,390 --> 00:00:14,536 თქვენ ფუნქციებს იძახებთ. სწორედ ეს ფუნქციები აკეთებენ იმას, რასაც ეუბნებით. 4 00:00:14,902 --> 00:00:16,126 რა არის ფუნქცია? 5 00:00:16,126 --> 00:00:19,483 ფუნქცია არის კოდის გაერთიანებული ნაწილი, რომელსაც სახელი აქვს დარქმეული 6 00:00:19,483 --> 00:00:23,370 რადგან მისი გამოყენება ბევრჯერ გვინდა. 7 00:00:23,370 --> 00:00:25,981 განვიხილოთ rect() ფუნქცია. რას აკეთებს ის? 8 00:00:25,981 --> 00:00:28,551 ის უბრალოდ ოთხ ხაზს ხატავს. 9 00:00:28,551 --> 00:00:33,801 შევეძლო მხოლოდ line()-ს გამოყენებით მიგვეღო მართკუთხედი 10 00:00:33,847 --> 00:00:38,991 მაგრამ, თუ ბევრი მართკუთხედის დახატვა გვინდა 11 00:00:38,991 --> 00:00:42,052 მოუხერხებელი იქნებოდა ყოველი ხაზის გასმისას იმის გამოთვლა 12 00:00:42,052 --> 00:00:45,793 როგორ გავავლოთ ხაზი ერთი კუთხიდან მოერეში, მეორედამ მესამეში და ა.შ. 13 00:00:45,818 --> 00:00:48,538 ამის მაგივრად, უბრალოდ შევქმენით ფუნქცია rect(). 14 00:00:48,538 --> 00:00:51,818 ეს ფუნქცია აკეთებს იმავეს, რასაც კოდის ის ოთხი ხაზი 15 00:00:51,818 --> 00:00:54,178 მაგრამ გაცილებით უფრო მოკლეა. 16 00:00:55,528 --> 00:00:58,399 rect()-ი ერთ-ერთი იმ ფუნქციათაგანია, 17 00:00:58,399 --> 00:01:02,599 რომელიც ხანის აკადემის ყველა პროგრამაში არის ხელმისაწვდომი. 18 00:01:02,729 --> 00:01:05,339 თქვენც შეგიძლიათ საკუთარი ფუნქციების შექმნა 19 00:01:05,339 --> 00:01:08,409 და შემდეგ მათი გამოყენება თქვენს პროგრამებში. 20 00:01:08,409 --> 00:01:14,300 მაგალითად, ვწერთ პროგრამას და მასში ბევრჯერ გვინდა ვინსტონის დახატვა. 21 00:01:14,434 --> 00:01:17,017 შეიძლება გვინდოდეს ვინსტონის ცხოვრების ისტორია მოვყვეთ 22 00:01:17,017 --> 00:01:20,190 და ვაჩვენოთ, როგორი იყო ის სხვადასხვა ასაკში. 23 00:01:20,190 --> 00:01:24,243 კოდი, რომელიც ვინსტონს დახატავდა, ასე შეიძლება დავიწყოთ: 24 00:01:24,243 --> 00:01:28,896 გვაქვს "faceX" და "faceY" ცვლადები, რომლებიც სახის ცენტრს შეესაბამებიან 25 00:01:29,029 --> 00:01:32,159 ამ ცენტრის მიმართ ვხატავთ თვალებსა და პირს 26 00:01:32,439 --> 00:01:36,322 ახლა პროგრამა ხედავს კოდს, რომელიც არ არის ფუნქციაში 27 00:01:36,322 --> 00:01:39,695 ამიტომაც ეს კოდი იშვება მხოლოდ ერთხელ. 28 00:01:39,739 --> 00:01:43,717 მოდით ეს კოდი ფუნქციად გადავაკეთოდ. 29 00:01:43,717 --> 00:01:47,439 ფუნქციის შექმნა ძალიან ჰგავს ცვლადის გამოცხადებას 30 00:01:47,439 --> 00:01:50,247 რადგან ჩვენ მართლა ცვლადს ვქმნით. 31 00:01:50,247 --> 00:01:52,077 ვწერთ: var drawWinston. 32 00:01:52,077 --> 00:01:54,551 სახელი კარგად უნდა აღწერდეს ფუნქციას. 33 00:01:54,551 --> 00:01:59,037 შემდეგ ვწერთ ტოლობის ნიშანს("="), მაგრამ სტრინგის ან რიცხვის მაგივრად 34 00:01:59,037 --> 00:02:02,721 ვწერთ function (მართლწერაში არ შეცდეთ) 35 00:02:02,721 --> 00:02:08,017 ამის შემდეგ ვწერთ ცარიელ ფრჩხილებს "()", და შემდეგ ვხსნით ფიგურულ ფრჩხილს "{" 36 00:02:08,137 --> 00:02:11,563 შემდეგ, ვხურავთ ფიგურულ ფრჩხილს "}" და ვწერთ წერტილ-მძიმეს ";". 37 00:02:11,563 --> 00:02:14,490 ფიგურულ ფრჩხილებს შორის ვათავსებთ ყველაფერს, 38 00:02:14,490 --> 00:02:19,454 რაც გვინდა, რომ ფუნქციამ შეასრულოს. 39 00:02:19,454 --> 00:02:22,950 ავიღოთ მთელი ეს კოდი, ჩავსვათ ჩვენს ფუნქციაში 40 00:02:22,950 --> 00:02:24,590 წავწიოთ ის წინ 41 00:02:24,590 --> 00:02:26,816 და მზადაა! 42 00:02:26,816 --> 00:02:32,250 ახლა ჩვენ გვაქვს ცვლადი, რომელშიც შენახულია ფუნქცია. 43 00:02:32,379 --> 00:02:36,479 კოდის ამ ბლოკს მივანიჭეთ სახელი, რაც საშუალებას მოგვცემს 44 00:02:36,479 --> 00:02:40,765 პროგრამას ნებისმიერ დროს ვუთხრათ იპოვოს ეს ბლოკი და გაუშვას მასში მოქცეული კოდი. 45 00:02:40,765 --> 00:02:43,551 კოდის ეს ნაწილი გახდა მრავალჯერ გამოყენებადი. 46 00:02:43,551 --> 00:02:46,535 ალბათ შეამჩნევთ, რომ ვინსტონი გაქრა. 47 00:02:46,535 --> 00:02:49,357 ვინსტონი დავკარგეთ! სად წავიდა? 48 00:02:49,357 --> 00:02:53,025 ასეთი რამ მოხდა: კოდის ეს ნაწილი ფუნქციაში რომ ჩავწერეთ 49 00:02:53,025 --> 00:02:57,807 პროგრამას ვუთხარით, რომ ეს არის კოდი, რომლის გამოყენებაც მომავალში გვინდა 50 00:02:57,847 --> 00:03:00,807 მაგრამ მხოლოდ მაშინ, როდესაც მას ჩვენ გავუშვებთ. 51 00:03:00,807 --> 00:03:04,288 ჩვენ უნდა ვუთხრათ პროგრამას, რომ გაუშვას ეს კოდი 52 00:03:04,288 --> 00:03:06,400 რაც იმას ნიშნავს, რომ ეს ფუნქცია უნდა გამოვიძახოთ 53 00:03:06,400 --> 00:03:09,400 ისევე როგორც ellipse(), rect() და line() 54 00:03:09,400 --> 00:03:13,753 უბრალოდ ვწერთ ფუნქციის სახელს (drawWinston) 55 00:03:13,753 --> 00:03:18,309 ვუწერთ ცარიელ ფრჩხილებს "()" და, რა თქმა უნდა, წერტილ-მძიმეს 56 00:03:18,309 --> 00:03:20,942 ვინსტონიც გამოჩნდა! 57 00:03:20,942 --> 00:03:26,567 შეიძლება გეგონოთ, რომ ეს უაზრობაა, იმიტომ რომ პროგრამამ იგივე გააკეთა 58 00:03:26,567 --> 00:03:30,203 რასაც ფუნქციის გარეშეც ვაკეთებდით. 59 00:03:30,239 --> 00:03:33,640 ფუნქციის მთავარი ღირსება ისაა, რომ მისი ხელახლა გამოყენება შეგვიძლია. 60 00:03:33,640 --> 00:03:34,957 მოდით ახლავე გავაკეთოთ ეს. 61 00:03:34,957 --> 00:03:41,162 შეგვიძლია ფუნქცია ბერვჯერ დავაკოპიროთ, 62 00:03:41,162 --> 00:03:46,572 მაგრამ გამოსახულება იგივე რჩება 63 00:03:46,608 --> 00:03:51,474 ეს იმის ბრალია, რომ ვინსტონი ერთსა და იმავე ადგილას იხატება 64 00:03:51,474 --> 00:03:57,588 რენტგენული მხედველობა რომ გვქონოდა, დავინახავდით სამ ვინსტონს. 65 00:03:57,631 --> 00:04:00,334 მაგრამ ასეთი მხედველობა, სამწუხაროდ, არ მაქვს. 66 00:04:00,334 --> 00:04:03,440 სამაგიეროდ შეგვიძლია ოდნავ შევცვალოთ ფუნქცია 67 00:04:03,440 --> 00:04:05,486 და სამივე ვინსტონს დავინახავთ 68 00:04:05,486 --> 00:04:08,825 ხედავთ, რომ faceX და faceY ყოველთვის 202-სა და 208-ს უდრის? 69 00:04:08,825 --> 00:04:12,467 შეგვიძლია ეს random() (შემთხვევითი რიცხვების) ფუნქციის გამოყენებით შევცვალოთ 70 00:04:12,467 --> 00:04:14,849 random() 50-დან 350-მდე 71 00:04:14,849 --> 00:04:17,693 ის დააბრუნებს რიცხვს ამ ორ რიცხვს შორის ინტერვალიდან 72 00:04:17,693 --> 00:04:18,973 იგივე აქაც 73 00:04:18,973 --> 00:04:23,526 ამ ფუნქციის ყოველ გამოძახებაზე ის ახალ რიცხვებს აბრუნებს. 74 00:04:23,526 --> 00:04:27,919 თუ restart-ს დავაჭერთ, ახალ შემთხვევით ვინსტონებს მივიღებთ. 75 00:04:29,359 --> 00:04:34,755 ფუნქცია რომ არ გვქონოდა, საკმაოდ გრძელი კოდის წერა მოგვიწევდა 76 00:04:34,916 --> 00:04:37,387 ის ამ კოდზე სამჯერ უფრო გრძელი იქნებოდა 77 00:04:37,387 --> 00:04:40,960 მაგრამ ეს ფუნქცია ჯერ არ არის იმდენად სასარგებლო, რამდენადაც შეიძლება იყოს. 78 00:04:40,960 --> 00:04:43,796 ჩვენ არ გვჭირდება შემთხვევითი ვინსტონები. 79 00:04:43,796 --> 00:04:47,726 ჩვენ გვინდა, რომ ვინსტონები ეკრანის განსაზღვრულ ადგილებას გამოჩნდეს. 80 00:04:47,796 --> 00:04:49,933 გააგრძელეთ ჩვენი ვიდეოების ყურება 81 00:04:49,933 --> 00:04:53,620 შემდეგზე ვილაპარაკებთ იმაზე, თუ როგორ გადავცეთ ჩვენ ფუნქციას პარამეტრები 82 00:04:53,620 --> 00:04:56,000 იმისთვის, რომ ვინსტონი კონკრეტულ ადგილას დავხატოთ.