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