1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> ROB สลิง: สวัสดีครับผมร็อบและให้กระโดด เป็นรุ่นที่แฮ็กเกอร์ของมาริโอ 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 เราเห็นเราอยู่ด้านในของวงที่ต้องทำในขณะที่ ที่จะยังคงวนลูปตราบเท่าที่ 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 >> เมื่อเรามีความสูงที่เราได้รับ หลักสำหรับวงของโปรแกรมของเรา 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 ครั้งแรกที่พิมพ์สี่ hashes สองช่องว่าง และอีกสี่ hashes 14 00:01:01,520 --> 00:01:06,280 >> จากนั้นหนึ่งในแถวด้านบนที่พิมพ์หนึ่ง พื้นที่สาม hashes สองช่องว่าง 15 00:01:06,280 --> 00:01:09,690 แยกปิรามิดและ จากนั้นอีกสาม hashes 16 00:01:09,690 --> 00:01:13,460 และเหนือที่สองช่องว่างสอง hashes, สองช่องว่างสอง hashes 17 00:01:13,460 --> 00:01:18,090 และในที่สุดก็สามช่องว่างหนึ่ง กัญชาสองช่องว่างหนึ่งกัญชา 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 ทางลงเนื่องจากเราไม่สามารถพิมพ์ ด้านล่างจากนั้นแถวที่หนึ่งขึ้นและ 25 00:01:37,790 --> 00:01:39,140 จากนั้นหนึ่งแถวขึ้น 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 เรากำลังจะพิมพ์สามช่องว่างแล้ว กัญชาหนึ่งแล้วสองช่องว่าง 29 00:01:50,120 --> 00:01:53,350 ที่แยกจากกันและอีกกัญชา 30 00:01:53,350 --> 00:01:57,320 >> ดังนั้นช่องว่างที่มีค่าเท่ากับ แถวลบความสูง 31 00:01:57,320 --> 00:02:03,180 ถ้าแถวคือ 1 และความสูงของเราคือ 4, ที่จะทำให้เรามี 3 ช่องว่างตามที่เราต้องการ 32 00:02:03,180 --> 00:02:06,900 แล้วนี้สำหรับวงเพียงแค่พิมพ์ จำนวนช่องว่างที่ 33 00:02:06,900 --> 00:02:12,630 หากช่องว่างที่สามแล้วที่เรากำลังจะ สร้างพื้นที่เดียวสามครั้ง 34 00:02:12,630 --> 00:02:18,750 >> อย่างต่อเนื่องในขณะนี้เราต้องการที่จะพิมพ์ hashes ของปิรามิดด้านซ้ายซึ่งเป็น 35 00:02:18,750 --> 00:02:20,630 เพียงเท่ากับจำนวนแถว 36 00:02:20,630 --> 00:02:23,250 มองกลับมาที่นี่ในแถว หนึ่งที่เราพิมพ์หนึ่งกัญชา 37 00:02:23,250 --> 00:02:25,960 ในแถวที่สองเราพิมพ์สองใน แถวสามเราพิมพ์สาม 38 00:02:25,960 --> 00:02:30,440 ครั้งแถวดังนั้นเราก็ห่วง สัญลักษณ์การพิมพ์กัญชา 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 อีกครั้งจำนวนเดียวกันของ hashes เป็นทางด้านซ้าย 43 00:02:42,160 --> 00:02:45,680 และดังนั้นจึงเป็นที่แน่นอนเดียวกัน สำหรับวงดังกล่าวที่นี่ 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 ชื่อของฉันคือร็อบและนี่ก็เป็นมาริโอ 48 00:02:54,860 --> 00:03:01,718