1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> რობ Bowden: Hi, მე რობ, და მოდით ხტომა თარგმნეს ჰაკერი გამოცემა მარიო. 3 00:00:18,290 --> 00:00:21,760 ასე რომ, პირველი, რაც ჩვენ უნდა გავაკეთოთ არის მიიღეთ სიმაღლე შესახებ. 4 00:00:21,760 --> 00:00:26,290 აქ ჩვენ ეკითხება მათ არასამთავრობო უარყოფითი რიცხვი არანაკლებ 24 და 5 00:00:26,290 --> 00:00:31,710 ჩვენ გამოყენებით CS50 GetInt ფუნქცია დაიბრუნოს, რომ რიცხვი საწყისი მომხმარებელს. 6 00:00:31,710 --> 00:00:35,260 ჩვენ ვხედავთ, რომ ჩვენ შიგნით do-ხოლო loop რომ გაგრძელდება looping რადგან 7 00:00:35,260 --> 00:00:38,400 სიმაღლე მეტია 23 ან ნაკლები 0. 8 00:00:38,400 --> 00:00:42,850 და ასე გავაგრძელებთ მანამ, სანამ შესახებ რეალურად გვაძლევს, რაც ჩვენ გვინდა. 9 00:00:42,850 --> 00:00:46,960 >> მას შემდეგ, რაც ჩვენ გვაქვს, რომ სიმაღლე, მივიღებთ მთავარი for loop ჩვენი პროგრამა. 10 00:00:46,960 --> 00:00:49,510 მოდით პირველი შევხედოთ მაგალითს საწყისი pset სპეც. 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 ჩვენ ვხედავთ ამ მაგალითად, რომ როდესაც ჩვენ შესვლის სიმაღლე 4, ქვედა გრაფაში 13 00:00:56,940 --> 00:01:01,520 პირველი ბეჭდავს ოთხი ჰეშები, ორი ფართები, და კიდევ ოთხი ჰეშები. 14 00:01:01,520 --> 00:01:06,280 >> მაშინ ერთ გრაფაში ზემოთ, რომელიც ბეჭდავს ერთი ფართი სამი ჰეშები, ორი ფართები 15 00:01:06,280 --> 00:01:09,690 ცალკე პირამიდები და შემდეგ სამი ჰეშები. 16 00:01:09,690 --> 00:01:13,460 და ზემოთ რომ ორი ფართები, ორი ჰეშები, ორ ფართები, ორი ჰეშები. 17 00:01:13,460 --> 00:01:18,090 და ბოლოს, სამი ფართები ერთი hash ორი ფართები ერთი hash. 18 00:01:18,090 --> 00:01:20,980 ასე, რომ თქვენ უნდა დაიწყოს შენიშნავს ნიმუში აქ. 19 00:01:20,980 --> 00:01:22,545 >> მოდით შევხედოთ კოდი რამდენ ჩვენ ვაპირებთ, რომ გავაკეთოთ. 20 00:01:22,545 --> 00:01:25,290 21 00:01:25,290 --> 00:01:28,840 ჩვენ ვხედავთ, აქ რომ ჩვენ iterating მთელი რიგები პირამიდის. 22 00:01:28,840 --> 00:01:31,720 პირველი, ჩვენ გვინდა, რომ გამოვთვალოთ რაოდენობის ფართები. 23 00:01:31,720 --> 00:01:34,690 და გვახსოვდეს, რომ ჩვენ უნდა დავიწყოთ ზედა პირამიდის და მუშაობა ჩვენი 24 00:01:34,690 --> 00:01:37,790 გზა down, რადგან ჩვენ არ შეგვიძლია ბეჭდვა ბოლოში მაშინ ერთ გრაფაში მდე და 25 00:01:37,790 --> 00:01:39,140 მაშინ ერთი row up. 26 00:01:39,140 --> 00:01:44,030 ასე რომ ზედა პირამიდის, ცნობა რომ ფართების უდრის 27 00:01:44,030 --> 00:01:45,720 სიმაღლე მინუს 1. 28 00:01:45,720 --> 00:01:50,120 ჩვენ ვაპირებთ ბეჭდვა სამი ფართები შემდეგ ერთი hash და შემდეგ ორი ფართები 29 00:01:50,120 --> 00:01:53,350 ცალკე და კიდევ ერთი hash. 30 00:01:53,350 --> 00:01:57,320 >> ასე ფართები უდრის სიმაღლე მინუს row. 31 00:01:57,320 --> 00:02:03,180 იმ შემთხვევაში, თუ row 1 და ჩვენი სიმაღლე 4, რომ ყველაფერს გვაძლევს 3 ფართები, როგორც ჩვენ გვინდა. 32 00:02:03,180 --> 00:02:06,900 მაშინ ამ for loop უბრალოდ ბეჭდავს რომ ნომერი ფართები. 33 00:02:06,900 --> 00:02:12,630 იმ შემთხვევაში, თუ ფართები არის სამი, მაშინ ჩვენ ვაპირებთ შეიქმნას ერთიანი სივრცე სამჯერ. 34 00:02:12,630 --> 00:02:18,750 >> გრძელდება, ახლა ჩვენ გვინდა ბეჭდვა ჰეშები მარცხენა პირამიდა, რომელიც 35 00:02:18,750 --> 00:02:20,630 უბრალოდ ტოლია რიგის ნომერი. 36 00:02:20,630 --> 00:02:23,250 ვეძებთ უკან აქ, row ერთი, ჩვენ ბეჭდვა ერთი hash. 37 00:02:23,250 --> 00:02:25,960 ზედიზედ ორი ჩვენ ბეჭდვა ორი წლის ზედიზედ სამი ჩვენ ბეჭდვა სამი. 38 00:02:25,960 --> 00:02:30,440 ასე რომ, ჩვენ უბრალოდ loop row ჯერ ბეჭდვის hash სიმბოლო. 39 00:02:30,440 --> 00:02:34,830 მაშინ ყველა რიგები პირამიდის, ჩვენ ბეჭდვა ზუსტად ორი ფართების გამოყოფა 40 00:02:34,830 --> 00:02:36,360 იმ პირამიდები. 41 00:02:36,360 --> 00:02:39,590 >> და ბოლოს, ჩვენ გვინდა ბეჭდვა უფლება მხარე პირამიდის, რომელიც 42 00:02:39,590 --> 00:02:42,160 ისევ იგივე რაოდენობის ჰეშები როგორც მარცხენა ფლანგზე. 43 00:02:42,160 --> 00:02:45,680 და ამიტომ იგივე ზუსტი for loop როგორც ზემოთ აქ. 44 00:02:45,680 --> 00:02:49,445 და ბოლოს, ჩვენ უნდა შევქმნათ ახალი ხაზი იმისათვის, რომ გადაადგილება, რათა მომდევნო გრაფაში 45 00:02:49,445 --> 00:02:51,690 პირამიდის და გააგრძელებს ბეჭდვა. 46 00:02:51,690 --> 00:02:53,010 და რომ არის ის. 47 00:02:53,010 --> 00:02:54,860 ჩემი სახელი არის რობ და ეს იყო Mario. 48 00:02:54,860 --> 00:03:01,718