สารบัญ:

AI ใน LEGO EV3 Maze-Driving Robot: 13 ขั้นตอน
AI ใน LEGO EV3 Maze-Driving Robot: 13 ขั้นตอน

วีดีโอ: AI ใน LEGO EV3 Maze-Driving Robot: 13 ขั้นตอน

วีดีโอ: AI ใน LEGO EV3 Maze-Driving Robot: 13 ขั้นตอน
วีดีโอ: Introduction to the AI Maze-Solving Robot 2024, กรกฎาคม
Anonim
Image
Image
วิธีแก้เขาวงกต
วิธีแก้เขาวงกต

นี่เป็นหุ่นยนต์ที่ใช้งานง่ายและเรียบง่ายพร้อมปัญญาประดิษฐ์ ออกแบบมาเพื่อสำรวจเขาวงกตและเมื่อวางไว้ที่ทางเข้า เพื่อขับผ่านไปยังทางออกและหลีกเลี่ยงทางตัน มันซับซ้อนกว่าโปรเจ็กต์ก่อนหน้าของฉันมาก ซึ่งแค่ขับรถผ่านเขาวงกต ที่นี่ หุ่นยนต์ต้องจำเส้นทางที่มันเคยไป กำจัดทางตัน จัดเก็บเส้นทางใหม่ แล้วเดินตามเส้นทางใหม่

มีการอธิบายหุ่นยนต์ก่อนหน้าของฉันที่นี่:

หุ่นยนต์ถูกสร้างขึ้นโดยใช้ LEGO Mindstorms EV3 ซอฟต์แวร์ EV3 ทำงานบนคอมพิวเตอร์และสร้างโปรแกรม ซึ่งดาวน์โหลดไปยังไมโครคอนโทรลเลอร์ที่เรียกว่า EV3 Brick วิธีการเขียนโปรแกรมเป็นแบบใช้ไอคอนและระดับสูง เป็นเรื่องง่ายและหลากหลาย

เสบียง

PARTS

  1. ชุดเลโก้ Mindstorms EV3
  2. LEGO Mindstorms EV3 เซ็นเซอร์อัลตราโซนิก ไม่รวมอยู่ในชุด EV3
  3. กระดาษลูกฟูกสำหรับเขาวงกต สองกล่องน่าจะเพียงพอ
  4. กระดาษแข็งแผ่นบางๆ เพื่อช่วยยึดมุมและผนังบางส่วนให้มั่นคง
  5. กาวและเทปเพื่อเชื่อมต่อชิ้นส่วนกระดาษแข็งเข้าด้วยกัน
  6. ซองการ์ดอวยพรสีแดงเพื่อระบุทางออกของเขาวงกต

เครื่องมือ

  1. มีดยูทิลิตี้สำหรับตัดกระดาษแข็ง
  2. ไม้บรรทัดเหล็กเพื่อช่วยในกระบวนการตัด

ซอฟต์แวร์

โปรแกรมอยู่ที่นี่:

ขั้นตอนที่ 1: วิธีแก้เขาวงกต

วิธีการขับเขาวงกต

มีหลายวิธีในการนำทางเขาวงกต หากคุณสนใจที่จะศึกษาพวกเขา พวกเขาจะอธิบายไว้อย่างดีในบทความ Wikipedia ต่อไปนี้: https://en.wikipedia.org/wiki/Maze_ dissolve_algorithm

ฉันเลือกวิธีการตามกำแพงด้านซ้ายมือ แนวคิดก็คือหุ่นยนต์จะรักษากำแพงไว้ทางด้านซ้ายโดยทำการตัดสินใจต่อไปนี้เมื่อเดินผ่านเขาวงกต:

  1. หากสามารถเลี้ยวซ้ายได้
  2. มิฉะนั้น ให้ตรงไปถ้าเป็นไปได้
  3. ถ้าไปทางซ้ายหรือตรงไปไม่ได้ ให้เลี้ยวขวา ถ้าเป็นไปได้
  4. หากไม่สามารถทำตามข้างต้นได้ จะต้องเป็นจุดสิ้นสุด หันไปรอบ ๆ

ข้อควรระวังประการหนึ่งคือวิธีการนี้อาจล้มเหลวได้หากเขาวงกตมีวงวนอยู่ในนั้น ขึ้นอยู่กับตำแหน่งของลูป หุ่นยนต์สามารถวนไปมารอบๆ ลูปได้ วิธีแก้ปัญหาที่เป็นไปได้สำหรับปัญหานี้คือให้หุ่นยนต์สลับไปใช้กฎผู้ติดตามผนังทางขวามือ หากรู้ว่ามันกำลังวนซ้ำ ฉันไม่ได้รวมการปรับแต่งนี้ในโครงการของฉัน

ไขเขาวงกตเพื่อค้นหาเส้นทางโดยตรง

ขณะขับรถผ่านเขาวงกต หุ่นยนต์จะต้องจำเส้นทางที่มันกำลังเดินทางและกำจัดทางตัน ทำได้โดยการจัดเก็บแต่ละเลี้ยวและทางแยกในอาร์เรย์ ตรวจสอบการรวมเฉพาะของทางเลี้ยวและทางแยกตามที่เกิดขึ้น และแทนที่ชุดค่าผสมที่มีทางตัน รายการทางเลี้ยวและทางแยกสุดท้ายคือเส้นทางตรงผ่านเขาวงกต

ทางเลี้ยวที่เป็นไปได้ ได้แก่ ซ้าย ขวา หลัง (ทางตัน) และทางตรง (ซึ่งเป็นทางแยก)

ชุดค่าผสมจะถูกแทนที่ดังนี้:

  • "ซ้าย หลัง ซ้าย" กลายเป็น "ตรง"
  • "ซ้าย, กลับ, ขวา" กลายเป็น "ย้อนกลับ"
  • "ซ้าย หลัง ตรง" กลายเป็น "ขวา"
  • "ขวา หลัง ซ้าย" กลายเป็น "กลับ"
  • "ตรง กลับ ซ้าย" กลายเป็น "ขวา"
  • "ตรง หลัง ตรง" กลายเป็น "หลัง"

หุ่นยนต์จัดการกับเขาวงกตของฉันอย่างไร

  1. เมื่อหุ่นยนต์เริ่มขับรถ จะเห็นช่องว่างทางด้านขวาและจัดเก็บ Straight ในรายการในอาร์เรย์
  2. จากนั้นจะเลี้ยวซ้ายและเพิ่มซ้ายลงในรายการ รายการตอนนี้ประกอบด้วย: ตรง ซ้าย
  3. เมื่อถึงจุดสิ้นสุด มันจะหมุนกลับและเพิ่มกลับเข้าไปในรายการ รายการตอนนี้ประกอบด้วย: ตรง, ซ้าย, หลัง
  4. ผ่านช่องทางที่ใช้จากทางเข้าเพิ่มตรงเข้ารายการ รายการตอนนี้ประกอบด้วย: ตรง ซ้าย หลัง ตรง รู้จักการรวมกันและเปลี่ยนซ้าย, หลัง, ตรงไปขวา รายการตอนนี้มี Straight, Right
  5. เมื่อถึงจุดสิ้นสุด มันจะหมุนกลับและเพิ่มกลับเข้าไปในรายการ รายการตอนนี้ประกอบด้วย: ตรง, ขวา, หลัง
  6. หลังจากเลี้ยวซ้าย รายการจะมี ตรง, ขวา, หลัง, ซ้าย. มันรู้จักการรวมกันและเปลี่ยนขวา, กลับ, ซ้ายไปข้างหลัง รายการตอนนี้มี Straight, Back
  7. หลังจากเลี้ยวซ้ายถัดไป รายการจะมีตรง กลับ ซ้าย มันเปลี่ยนชุดค่าผสมนั้นไปทางขวา รายการนี้มีเพียงสิทธิ์เท่านั้น
  8. มันผ่านช่องว่างและเพิ่มตรงไปยังรายการ รายการนี้ประกอบด้วย Right, Straight
  9. หลังจากเลี้ยวขวา รายการจะมี Right, Straight, Right ซึ่งเป็นเส้นทางตรง

ขั้นตอนที่ 2: ข้อควรพิจารณาในการเขียนโปรแกรมหุ่นยนต์

ข้อควรพิจารณาสำหรับไมโครคอนโทรลเลอร์ใดๆ

เมื่อหุ่นยนต์ตัดสินใจเลี้ยว ควรเลี้ยวในวงกว้างหรือเดินหน้าเป็นระยะทางสั้น ๆ ก่อนเลี้ยวและหลังจากหมุนไปข้างหน้าเป็นระยะทางสั้น ๆ อีกครั้งโดยไม่ตรวจสอบเซ็นเซอร์ เหตุผลสำหรับระยะทางสั้น ๆ ครั้งแรกคือ หุ่นยนต์ไม่ควรชนกำแพงหลังจากเลี้ยว และเหตุผลสำหรับระยะทางสั้นที่สองคือ หลังจากที่หุ่นยนต์หันไป เซ็นเซอร์จะเห็นช่องว่างยาวที่เพิ่งมาจาก และหุ่นยนต์ก็คิดว่ามันควรจะหมุนอีกครั้งซึ่งไม่ใช่สิ่งที่ควรทำ

เมื่อหุ่นยนต์สัมผัสได้ถึงทางแยกทางด้านขวาแต่ไม่ใช่ทางเลี้ยวขวา ฉันพบว่าเป็นการดีที่จะให้หุ่นยนต์ขับไปข้างหน้าประมาณ 10 นิ้ว (25 ซม.) โดยไม่ตรวจสอบเซ็นเซอร์

ข้อควรพิจารณาเฉพาะสำหรับ LEGO MINDSTORMS EV3

แม้ว่า LEGO Mindstorms EV3 จะใช้งานได้หลากหลายมาก แต่ก็อนุญาตให้มีเซ็นเซอร์แต่ละประเภทที่เชื่อมต่อกับอิฐตัวเดียวได้ไม่เกินหนึ่งตัว อิฐสองก้อนขึ้นไปสามารถถูกล่ามโซ่ได้ แต่ฉันไม่ต้องการซื้อ Brick อีกตัว ดังนั้นฉันจึงใช้เซ็นเซอร์ต่อไปนี้ (แทนเซ็นเซอร์อัลตราโซนิกสามตัว): เซ็นเซอร์อินฟราเรด เซ็นเซอร์สี และเซ็นเซอร์อัลตราโซนิก สิ่งนี้ได้ผลดี

แต่เซ็นเซอร์สีมีช่วงที่สั้นมากประมาณ 2 นิ้ว (5 ซม.) ซึ่งนำไปสู่ข้อควรพิจารณาพิเศษบางประการดังที่อธิบายไว้ด้านล่าง:

  1. เมื่อเซ็นเซอร์สีตรวจพบผนังด้านหน้าและหุ่นยนต์ตัดสินใจเลี้ยวขวาหรือหันหลังกลับ เซ็นเซอร์ควรถอยกลับก่อน เพื่อให้มีพื้นที่เพียงพอสำหรับหมุนตัวโดยไม่ชนกำแพง
  2. ปัญหาที่ซับซ้อนเกิดขึ้นกับทางแยก "ตรง" บางทาง เนื่องจากเซ็นเซอร์สีมีช่วงสั้น หุ่นยนต์จึงไม่สามารถระบุได้ว่าจะตรวจจับทางแยก "ตรง" ที่เหมาะสมหรือนำไปสู่การเลี้ยวขวาหรือไม่ ฉันได้ลองแก้ไขปัญหานี้โดยตั้งค่าโปรแกรมให้จัดเก็บ "ตรง" ในรายการทุกครั้งที่หุ่นยนต์ตรวจจับได้ จากนั้นจึงกำจัด "ตรง" มากกว่าหนึ่งรายการในรายการ แก้ไขสถานการณ์ที่เลี้ยวขวาตาม "ตรง" ในเขาวงกต แต่ไม่ใช่สถานการณ์ที่มีการเลี้ยวขวาโดยไม่มี "ตรง" ก่อนหน้านั้น ฉันยังลองตั้งค่าโปรแกรมให้กำจัด "ตรง" ถ้ามันอยู่ก่อน "ขวา" แต่วิธีนี้ใช้ไม่ได้ถ้าเลี้ยวขวาตาม "ตรง" ฉันไม่สามารถหาวิธีแก้ปัญหาที่เหมาะกับทุกกรณีได้ แต่ฉันคิดว่ามันเป็นไปได้ที่หุ่นยนต์จะดูระยะทางที่เดินทาง (โดยการอ่านเซ็นเซอร์การหมุนของมอเตอร์) และตัดสินใจว่าจะเป็น "ทางตรง" หรือทางที่ถูกต้อง เปลี่ยน. ฉันไม่คิดว่าความซับซ้อนนี้คุ้มค่าที่จะทำเพื่อจุดประสงค์ในการแสดงแนวคิด AI ในโครงการนี้
  3. ข้อดีของเซ็นเซอร์สีคือแยกความแตกต่างระหว่างสีน้ำตาลของผนังกับสีแดงของกำแพงที่ฉันใช้ที่ทางออก และให้วิธีที่ง่ายสำหรับหุ่นยนต์ในการตัดสินใจเมื่อเสร็จสิ้นเขาวงกต

ขั้นตอนที่ 3: โปรแกรมหลัก

โปรแกรมหลัก
โปรแกรมหลัก

LEGO Mindstorms EV3 มีวิธีการเขียนโปรแกรมตามไอคอนที่สะดวกมาก บล็อกจะแสดงที่ด้านล่างของหน้าจอแสดงผลบนคอมพิวเตอร์ และสามารถลากและวางลงในหน้าต่างการเขียนโปรแกรมเพื่อสร้างโปรแกรมได้ EV3 Brick อาจเชื่อมต่อกับคอมพิวเตอร์โดยใช้สาย USB, Wi-Fi หรือ Bluetooth จากนั้นโปรแกรมสามารถดาวน์โหลดจากคอมพิวเตอร์ไปยัง Brick

โปรแกรมประกอบด้วยโปรแกรมหลักและ "My Blocks" หลายตัวซึ่งเป็นรูทีนย่อย ไฟล์ที่อัปโหลดมีโปรแกรมทั้งหมด ซึ่งอยู่ที่นี่:

ขั้นตอนในโปรแกรมหลักมีดังนี้:

  1. กำหนดและเริ่มต้นตัวแปรนับผลัดกันเดินและอาร์เรย์
  2. รอ 5 วินาทีแล้วพูดว่า "ไป"
  3. เริ่มวนซ้ำ
  4. ขับรถผ่านเขาวงกต เมื่อถึงทางออก วงจะออกจาก
  5. แสดงบนหน้าจอของ Brick ทางแยกที่พบในเขาวงกตจนถึงตอนนี้
  6. ตรวจสอบว่าเส้นทางควรสั้นลงหรือไม่
  7. แสดงทางแยกในเส้นทางที่สั้นลง
  8. วนกลับไปที่ขั้นตอนที่ 4
  9. หลังจากวนรอบให้ขับเส้นทางตรง

ภาพหน้าจอแสดงโปรแกรมหลักนี้

ขั้นตอนที่ 4: บล็อกของฉัน (รูทีนย่อย)

บล็อกของฉัน (รูทีนย่อย)
บล็อกของฉัน (รูทีนย่อย)

แสดง Navigate My Block ซึ่งควบคุมวิธีที่หุ่นยนต์ขับผ่านเขาวงกต ตัวพิมพ์มีขนาดเล็กมากและอาจอ่านไม่ออก แต่เป็นตัวอย่างที่ดีของความอเนกประสงค์และทรงพลังของ if-statement (เรียกว่า Switches ในระบบ LEGO EV3)

  1. ลูกศร # 1 ชี้ไปที่สวิตช์ที่ตรวจสอบว่าเซ็นเซอร์อินฟราเรดมองเห็นวัตถุมากกว่าระยะทางที่กำหนดหรือไม่ ถ้าเป็นเช่นนั้น บล็อกชุดบนสุดจะถูกดำเนินการ ถ้าไม่เช่นนั้น การควบคุมจะถูกส่งไปยังชุดบล็อกขนาดใหญ่ด้านล่าง ซึ่งเป็นที่ตั้งของลูกศร #2
  2. ลูกศร #2 ชี้ไปที่สวิตช์ที่ตรวจสอบสีที่เซ็นเซอร์สีมองเห็น มี 3 กรณี: ไม่มีสีด้านบน สีแดงตรงกลาง และสีน้ำตาลที่ด้านล่าง
  3. ลูกศรสองอัน #3 ชี้ไปที่สวิตช์ที่ตรวจสอบว่าเซ็นเซอร์อัลตราโซนิกเห็นวัตถุมากกว่าระยะทางที่กำหนดหรือไม่ ถ้าเป็นเช่นนั้น บล็อกชุดบนสุดจะถูกดำเนินการ ถ้าไม่เช่นนั้น การควบคุมจะถูกส่งไปยังชุดบล็อกด้านล่าง

My Blocks สำหรับย่อเส้นทางและสำหรับการขับรถบนเส้นทางตรงนั้นซับซ้อนกว่าและอ่านไม่ออกโดยสิ้นเชิง ดังนั้นจึงไม่รวมอยู่ในเอกสารนี้

ขั้นตอนที่ 5: การเริ่มต้นสร้างหุ่นยนต์: ฐาน

การเริ่มต้นสร้างหุ่นยนต์: ฐาน
การเริ่มต้นสร้างหุ่นยนต์: ฐาน
เริ่มสร้างหุ่นยนต์: ฐาน
เริ่มสร้างหุ่นยนต์: ฐาน

ดังที่ได้กล่าวไว้ก่อนหน้านี้ LEGO Mindstorms EV3 อนุญาตให้มีเซ็นเซอร์แต่ละประเภทที่เชื่อมต่อกับอิฐตัวเดียวได้ไม่เกิน 1 ตัว ฉันใช้เซ็นเซอร์ต่อไปนี้ (แทนเซ็นเซอร์อัลตราโซนิกสามตัว): เซ็นเซอร์อินฟราเรด เซ็นเซอร์สี และเซ็นเซอร์อัลตราโซนิก

รูปภาพคู่ด้านล่างแสดงวิธีการสร้างหุ่นยนต์ ภาพแรกของแต่ละคู่แสดงชิ้นส่วนที่จำเป็น และภาพที่สองแสดงชิ้นส่วนเดียวกันที่เชื่อมต่อเข้าด้วยกัน

ขั้นตอนแรกคือการสร้างฐานของหุ่นยนต์โดยใช้ชิ้นส่วนที่แสดง ฐานหุ่นยนต์แสดงกลับหัวกลับหาง ชิ้นส่วนรูปตัว L ขนาดเล็กที่ด้านหลังของหุ่นยนต์รองรับส่วนหลัง มันเลื่อนในขณะที่หุ่นยนต์เคลื่อนที่ งานนี้โอเค ชุด EV3 ไม่มีชิ้นส่วนแบบลูกกลิ้ง

ขั้นตอนที่ 6: ด้านบนของฐาน 1

ด้านบนของฐาน 1
ด้านบนของฐาน 1
ด้านบนของฐาน 1
ด้านบนของฐาน 1

ขั้นนี้และอีก 2 ขั้นต่อไปเป็นขั้นบนสุดของฐานหุ่นยนต์ เซ็นเซอร์สี และสายเคเบิล ซึ่งเป็นสายเคเบิลทั้งหมด 10 นิ้ว (26 ซม.)

ขั้นตอนที่ 7: ด้านบนของฐาน 2

ด้านบนของฐาน2
ด้านบนของฐาน2
ด้านบนของฐาน2
ด้านบนของฐาน2

ขั้นตอนที่ 8: ด้านบนของฐาน 3

ด้านบนของฐาน 3
ด้านบนของฐาน 3
ด้านบนของฐาน 3
ด้านบนของฐาน 3

ขั้นตอนที่ 9: เซ็นเซอร์อินฟราเรดและอัลตราโซนิก

เซ็นเซอร์อินฟราเรดและอัลตราโซนิก
เซ็นเซอร์อินฟราเรดและอัลตราโซนิก
เซ็นเซอร์อินฟราเรดและอัลตราโซนิก
เซ็นเซอร์อินฟราเรดและอัลตราโซนิก

ถัดมาเป็นเซ็นเซอร์อินฟราเรด (ด้านซ้ายของหุ่นยนต์) และเซ็นเซอร์อัลตราโซนิก (ด้านขวา) นอกจากนี้ยังมีหมุด 4 ตัวสำหรับติดอิฐด้านบน

เซ็นเซอร์อินฟราเรดและอัลตราโซนิกอยู่ในแนวตั้งแทนที่จะเป็นแนวนอนปกติ ช่วยให้สามารถระบุมุมหรือปลายผนังได้ดีขึ้น

ขั้นตอนที่ 10: สายเคเบิล

สายเคเบิล
สายเคเบิล

สายเคเบิลเชื่อมต่อกับอิฐดังนี้:

  • พอร์ต B: เหลือมอเตอร์ขนาดใหญ่
  • พอร์ต C: มอเตอร์ขนาดใหญ่ด้านขวา
  • พอร์ต 2: เซ็นเซอร์อัลตราโซนิก
  • พอร์ต 3: เซ็นเซอร์สี
  • พอร์ต 4: เซ็นเซอร์อินฟราเรด

ขั้นตอนที่ 11: ขั้นตอนสุดท้ายในการสร้างหุ่นยนต์: การตกแต่ง

ขั้นตอนสุดท้ายในการสร้างหุ่นยนต์: การตกแต่ง
ขั้นตอนสุดท้ายในการสร้างหุ่นยนต์: การตกแต่ง
ขั้นตอนสุดท้ายในการสร้างหุ่นยนต์: การตกแต่ง
ขั้นตอนสุดท้ายในการสร้างหุ่นยนต์: การตกแต่ง

ปีกและครีบใช้สำหรับตกแต่งเท่านั้น

ขั้นตอนที่ 12: สร้างเขาวงกต

สร้างเขาวงกต
สร้างเขาวงกต
สร้างเขาวงกต
สร้างเขาวงกต

กล่องกระดาษลูกฟูกสองกล่องน่าจะเพียงพอสำหรับเขาวงกต ฉันสร้างกำแพงเขาวงกตสูง 5 นิ้ว (12.5 ซม.) แต่ 4 นิ้ว (10 ซม.) น่าจะใช้ได้ดีหากคุณไม่มีกระดาษลูกฟูก

ขั้นแรก ฉันตัดรอบผนังกล่องห่างจากด้านล่าง 10 นิ้ว (25 ซม.) จากนั้นฉันก็ตัดรอบผนัง 5 นิ้วจากด้านล่าง มีผนังขนาด 5 นิ้วหลายแบบ นอกจากนี้ ฉันยังตัดพื้นกล่องโดยเหลือประมาณ 1 นิ้ว (2.5 ซม.) ไว้กับผนังเพื่อความมั่นคง

ชิ้นส่วนต่างๆ สามารถตัดและติดกาวหรือติดเทปได้ทุกที่ที่จำเป็นเพื่อสร้างเขาวงกต ควรมีช่องว่างระหว่างผนังด้านข้าง 11 หรือ 12 นิ้ว (30 ซม.) ในทุกเส้นทางที่มีทางตัน ความยาวไม่ควรน้อยกว่า 10 นิ้ว (25 ซม.) ระยะทางเหล่านี้จำเป็นสำหรับหุ่นยนต์ที่จะหมุนไปรอบๆ

บางมุมของเขาวงกตอาจต้องได้รับการเสริมแรง นอกจากนี้ ผนังบางอันตรงต้องป้องกันไม่ให้งอ หากมีมุมกล่องที่ยืดให้ตรง ควรติดกระดาษแข็งบาง ๆ ชิ้นเล็ก ๆ ไว้ที่ด้านล่างตามที่แสดง

ทางออกมีแนวกั้นสีแดงประกอบด้วยซองการ์ดอวยพรสีแดงครึ่งซองและฐานทำด้วยกระดาษแข็งบาง 2 แผ่น ดังรูป

ขั้นตอนที่ 13: เขาวงกต

เขาวงกต
เขาวงกต

ข้อควรระวังอย่างหนึ่งคือเขาวงกตไม่ควรมีขนาดใหญ่ หากการหมุนของหุ่นยนต์ทำมุมเล็กน้อยจากจุดที่ถูกต้อง ความคลาดเคลื่อนจะเพิ่มขึ้นหลังจากสองสามรอบและหุ่นยนต์สามารถวิ่งเข้าไปในกำแพงได้ ฉันต้องเล่นซอหลายครั้งกับการตั้งค่าการหมุนของทางเลี้ยวเพื่อที่จะขับผ่านเขาวงกตเล็กๆ ที่ฉันทำสำเร็จได้สำเร็จ

วิธีแก้ปัญหานั้นคือการรวมรูทีนการยืดเส้นทางซึ่งจะทำให้หุ่นยนต์มีระยะห่างจากกำแพงด้านซ้ายโดยเฉพาะ ฉันไม่ได้รวมสิ่งนี้ โปรแกรมมีความซับซ้อนเพียงพอและเพียงพอสำหรับการสาธิตแนวคิด AI ในโครงการนี้

สรุปข้อสังเกต

นี่เป็นโครงการที่สนุกและเป็นประสบการณ์การเรียนรู้ที่ยอดเยี่ยม ฉันหวังว่าคุณจะพบว่ามันน่าสนใจ

แนะนำ: