‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะจำกัดจำนวนกระสุนที่เรามีจริง ๆ เพื่อที่ว่าเมื่อเราใช้มันจนหมด
‫เราจะไม่เกิดขีปนาวุธอีกต่อไป
‫ฉันหมดกระสุนแล้วและยังได้รับข้อความว่ากระสุนหมด ฉันไม่สามารถวางไข่ได้อีกต่อไป
‫มาดูกันว่าเราทำอย่างไร
‫สิ่งที่เราต้องการจะเกิดขึ้นในอุดมคติคือเมื่อกระสุนของเราเหลือศูนย์ เราไม่สามารถสร้างขีปนาวุธใหม่ได้อีกต่อไป
‫แต่เราจะควบคุมการไหลของโค้ดของเราผ่านค่าในตัวแปรได้อย่างไร?
‫วิธีแก้ปัญหาของปริศนานี้คือสิ่งที่เรียกว่าโหนดสาขา
‫ดังนั้นสาขา ให้เราตรวจสอบว่ามีบางอย่างจริงหรือไม่แล้วจึงดำเนินการบางอย่างตามผลลัพธ์
‫ดังนั้นคุณอาจมีโหนดสาขาที่มีลักษณะเช่นนี้ว่า ถ้าฉันหิว สภาวะคือ
‫ฉันหิว ก็กินอาหารขยะในขณะที่ภรรยาไม่ดู
‫และถ้านั่นไม่เป็นความจริง ก็ให้เล่นวิดีโอเกมต่อไป
‫ดังนั้นโหนดสาขาเหล่านี้จึงอนุญาตให้เราทำสิ่งหนึ่งในกรณีที่เงื่อนไขเป็นจริงและอีกสิ่งหนึ่งหากเงื่อนไขเป็นเท็จ
‫ตัวเลือกใดตัวเลือกหนึ่งเหล่านี้ไม่สามารถทำอะไรได้เลย
‫ดังนั้นคุณสามารถเชื่อมต่อโหนดเท็จหรือเชื่อมต่อโหนดจริงเท่านั้น
‫อย่างใดอย่างหนึ่งเหล่านี้จะทำงาน
‫แล้วคุณจะจำไว้
‫หรือคุณอาจจำได้ว่าสีแดงเกี่ยวข้องกับตัวแปรประเภทบูลีนที่ไม่เป็นจริง
‫ดังนั้นเรามาเตือนตัวเองว่าวัวคืออะไร?
‫bull ย่อมาจาก boolean และมีหลายประเภทที่สามารถเก็บค่าหนึ่งในสองค่าได้ทั้งจริงหรือเท็จ
‫ใช่หรือไม่ใช่
‫มักใช้กับคำสั่ง if หรือสาขา
‫ในอนาคตเราจะใช้ C++ เราจะเรียก Branch if statement
‫แต่สิ่งเดียวกัน แนวคิดเดียวกัน
‫และสามารถควบคุมได้ว่าจะมีอะไรเกิดขึ้นหรือไม่ และบางโหนดสามารถส่งคืนบูลีนได้
‫ดังนั้นโหนดประเภทใดที่สามารถส่งคืนบูลีนได้?
‫เราต้องการคำตอบแบบไหน?
‫เมื่อไหร่ที่เราต้องการให้นักแสดงวางไข่เกิดขึ้น?
‫เราต้องการสร้างโพรเจกไทล์ใหม่เมื่อใด
‫เราต้องการสร้างโพรเจกไทล์ใหม่ก็ต่อเมื่อจำนวนกระสุนที่เรามีมากกว่าศูนย์
‫โชคดีที่ถ้าคุณคลิกขวาในกราฟเหตุการณ์และค้นหาสิ่งที่มากกว่า ก็จะมีโหนดสำหรับสิ่งนั้น
‫โอเปอเรเตอร์หรือโหนดประเภทนี้เรียกว่าการเปรียบเทียบเพราะใช้ค่าสองค่าและสร้างการเปรียบเทียบระหว่างกันและทำให้เรามีคำตอบบูลีน
‫ยิ่งใหญ่คือตัวอย่างหนึ่ง น้อยกว่าคืออีกตัวอย่างหนึ่ง
‫คุณยังเห็นค่านี้น้อยกว่าซึ่งหมายความว่าน้อยกว่าหรือเท่ากับ
‫มันยังเท่ากัน นั่นคือ มันคืออันหนึ่งเช่นกัน
‫เท่ากันหรือไม่เท่ากัน
‫หากค่าสองค่าเหมือนกัน ให้คืนค่า จริง
‫มิฉะนั้นจะคืนค่าเท็จ
‫มาอัพเดทอภิธานศัพท์กันสักหน่อย
‫เราได้ค้นพบว่ากิ่งก้านเป็นสิ่งที่ทำหรือไม่ได้ขึ้นอยู่กับวัว
‫เราพบว่าบูลส์หรือบูลีนเป็นประเภทข้อมูลใช่ ไม่ใช่ และการเปรียบเทียบนั้นเป็นสิ่งที่น้อยกว่ามากกว่าเท่ากัน
‫เป็นต้น ที่ส่งกลับบูลีนอย่างสำคัญ
‫ลองใช้การเปรียบเทียบเหล่านี้กัน
‫ฉันจะคลิกขวาและเพิ่มการเปรียบเทียบที่มากขึ้นในที่นี่
‫จากนั้นฉันจะควบคุมการคลิกตัวแปรกระสุนแล้วลากไปที่โหนดแรกของโหนดเปรียบเทียบของเรา
‫แล้วคุณจะเห็นว่าค่าดีฟอลต์ตรงนี้มากกว่าศูนย์จริงๆ
‫นั่นคือสิ่งที่เราต้องการ
‫เรามีโหนดที่ระบุว่ากระสุนมีค่ามากกว่าศูนย์และค่าที่ส่งกลับเป็นบูลีนที่บอกว่าใช่ถ้าเป็นและไม่ใช่หากไม่ใช่
‫สิ่งที่เราอยากทำคือนำค่าส่งคืนบูล ลากออกจากค่านั้นแล้วค้นหาสาขา
‫จากนั้นเราสามารถเพิ่มโหนดสาขาและเชื่อมต่อเงื่อนไขอินพุตกับบูลีนที่เราลากโดยอัตโนมัติ
‫ตอนนี้ฉันจะลากเหตุการณ์สเปซบาร์ของฉันกลับและลากพินการเรียกใช้โหนดที่กดลงในอินพุตสำหรับสาขา
‫นั่นคือการดำเนินการสาขาของเรา
‫จากนั้นเราต้องการให้กิ่งไม้ถ้ามันเป็นจริง ไปข้างหน้าและวางไข่ของกระสุนปืน มิฉะนั้น มันจะไม่ทำอะไรเลย
‫เลยลองทำดู
‫ถ้าเรากดปุ่มเล่นแล้วเราวางไข่จำนวนมาก เราจะทำให้ค่าของกระสุนของเราลดลงเหลือศูนย์
‫คุณจะเห็นได้ว่าตอนนี้ ไม่ว่าฉันจะกดสเปซบาร์มากแค่ไหน ฉันก็ไม่ได้รับกระสุนปืนอีกต่อไป
‫ฉันเลยอยากจะท้าให้คุณพิมพ์กระสุนออกมา
‫ดังนั้นให้ใช้สาขาเท็จเพื่อให้เราเพิ่มโหนดการพิมพ์ในนั้น
‫และโดยพื้นฐานแล้วเมื่อเราหมดกระสุน ผมอยากให้คุณพิมพ์กระสุนออกมา
‫ดังนั้นให้ทดสอบโค้ดของคุณและตรวจสอบว่าเกิดอะไรขึ้น
‫หยุดวิดีโอชั่วคราวและไปกันเลย
‫ตกลง.
‫ยินดีต้อนรับกลับ.
‫เรามีสาขาที่สองของโหนดสาขาของเรา
‫ลองลากกลับมาเพื่อที่เราจะได้ไม่ข้ามเส้นกับพินการดำเนินการเหล่านี้
‫และสาขาเท็จควรลงมาตรงนี้ เพื่อทำเป็นสตริงการพิมพ์
‫และสายอักขระที่ฉันต้องการให้พิมพ์นั้นกำลังจะหมดกระสุนแล้ว
‫ทีนี้ ถ้าเราเล่นต่อและยิงกระสุนปืนใหญ่ทั้ง 20 นัด คุณจะเห็นว่าทุกครั้งที่ฉันกดสเปซบาร์
‫มันจะพิมพ์ข้อความว่าฉันกระสุนหมด ทำให้ผู้เล่นรู้ว่า เหตุใดจึงไม่มีลูกบอลวางไข่ในที่เกิดเหตุอีกต่อไป
‫สำหรับการบรรยายครั้งนี้
‫เจอกันใหม่ตอนหน้าค่ะ