540 likes | 1.17k Views
Game Theory, Game Tree, Puzzle. อ.ดร.ยอดธง รอดแก้ว. เกมแห่งชีวิต:ปัญหาและทางเลือก. คุณลุงท่านหนึ่งโดนรถชนบาดเจ็บสาหัสต้องนอนพักในโรงพยาบาลหลายเดือน ซึ่งรถคันนั้นขับโดยว่าที่คุณหมอ
E N D
Game Theory, Game Tree, Puzzle อ.ดร.ยอดธง รอดแก้ว
เกมแห่งชีวิต:ปัญหาและทางเลือกเกมแห่งชีวิต:ปัญหาและทางเลือก • คุณลุงท่านหนึ่งโดนรถชนบาดเจ็บสาหัสต้องนอนพักในโรงพยาบาลหลายเดือน ซึ่งรถคันนั้นขับโดยว่าที่คุณหมอ • ว่าที่คุณหมอขอร้องไม่ให้คุณลุงนำเรื่องนี้ลงบันทึกประจำวัน เพราะหากลงบันทึกประจำวัน อนาคตของการเป็นหมอต้องดับวูบ เพราะเหตุขับรถโดยประมาท • และสัญญาว่าจะยินยอมชดใช้ค่ารักษาพยาบาลให้ • ถ้าคุณเป็นญาติลุงท่านนี้ ท่านจะแจ้งความและลงบันทึกประจำวันหรือไม่ ? เพราะเหตุใด ? • (ดัดแปลงจากหนังสือ เอาตัวรอดด้วยทฤษฎีเกม ของ นรินทร์ โอฬารกิจอนันต์
ปัญหาและทางเลือก แจ้งความ+ลงบันทึกประจำวัน ลุง ใช่ ไม่ ดี ชั่ว ต้องใช้ค่าเสียหาย ว่าที่หมอ และโดนคดี หมดอนาคต ต้องใช้ค่าเสียหาย หนี
ปัญหาและทางเลือก • คุณลุงไม่ได้แจ้งความและลงบันทึกประจำวันเพราะเห็นแก่อนาคตหมอหนุ่ม • ว่าที่หมอ มาเยี่ยม 2-3 ครั้ง แล้วก็หายตัวไป • คุณลุงพยายามติดต่อกลับไป เพื่อให้จ่ายค่ารักษาพยาบาล • ว่าที่หมอ ไม่จ่าย และ ขู่ว่าถ้าติดต่อมาอีก จะฟ้องคุณลุงในข้อหาปรักปรำ • (ดัดแปลงจากหนังสือ เอาตัวรอดด้วยทฤษฎีเกม ของ นรินทร์ โอฬารกิจอนันต์
ปัญหาและทางเลือก Cost แจ้งความ+ลงบันทึกประจำวัน -1,750,000 ลุง ใช่ ไม่ ดี ชั่ว ต้องใช้ค่าเสียหาย ค่ารักษาพยาบาล ต้องใช้ ค่ารักษาพยาบาล ว่าที่หมอ หนี และโดนคดี หมดอนาคต 0 ว่าที่หมอCost -5,000,000 -500,000 -1,750,000 -1,250,000 ลุงCost -250,000
ปัญหาและทางเลือก • ข้อสรุป: เมื่อได้เลือก ผู้เล่นจะตัดสินใจเลือกทางที่ได้เปรียบมากที่สุดเสมอ • ผู้เริ่มศึกษาทฤษฎีเกม(Game Theory) ในระยะแรกคือ จอห์น ฟอน นอยมันน์ และออสการ์ มอร์เกินสเติร์น โดยได้ตีพิมพ์ตำรา Theory of Games and Economic Behavior ใน พ.ศ. 2487 ต่อมา จอห์น แนช ได้พัฒนาการศึกษาในด้านนี้และได้รับรางวัลโนเบลสาขาเศรษฐศาสตร์จากการนำทฤษฎีเกมไปประยุกต์ใช้ในด้านเศรษฐศาสตร์ ต่อมาได้นำไปสร้างภาพยนตร์ เรื่อง A Beautiful Mind
เกมรูปแบบครอบคลุม (Extensive form) • เกมรูปแบบครอบคลุม เป็นเกมที่ผู้เล่นแต่ละคนตัดสินใจเลือกทางเลือกต่าง ๆ ตามลำดับ • โดยผู้เล่นจะทราบถึงการตัดสินใจของผู้เล่นอีกฝ่ายในตาก่อนหน้า • ใช้รูปแผนภาพต้นไม้ โดยตั้งต้นที่จุดเริ่มแรก และจบที่จุดสิ้นสุดของเกม ซึ่งสามารถมีได้หลายจุด มีการใช้จุดยอดแทนสถานะที่มีทางเลือกในการตัดสินใจของผู้เล่น และใช้เส้นแทนทางเลือกของผู้เล่นในตาถัดไป
เกมรูปแบบครอบคลุม (Extensive form) • สำหรับเกมในภาพ มีผู้เล่นสองคน ผู้เล่น 1 ตัดสินใจเลือกก่อนระหว่าง ทางเลือก F และทางเลือก U จากนั้นผู้เล่น 2 ซึ่งทราบถึงการตัดสินใจของผู้เล่น 1 ตัดสินใจเลือกระหว่าง ทางเลือก A และทางเลือก R โดยมีผลตอบแทนที่ได้แสดงไว้ด้านล่าง เช่น ถ้าผู้เล่น 1 เลือก U และผู้เล่น 2 เลือก A ผลตอบแทนที่ได้คือ ผู้เล่น 1 ได้ 8 และผู้เล่น 2 ได้ 2 • เกมหลายชนิด เช่น หมากรุก ทิก-แทก-โท ก็ถือว่าเป็นเกมรูปแบบครอบคลุม จึงสามารถหาวิธีที่ดีที่สุดในการเล่นเกมเหล่านี้ได้ โดยการใช้แผนภาพต้นไม้ http://th.wikipedia.org/wiki/ทฤษฎีเกม
เกมรูปแบบปกติ (Normal form) • เป็นเกมที่ผู้เล่นไม่ทราบถึงการตัดสินใจของผู้เล่นคนอื่น • นิยมเขียนแสดงเกมในรูปแบบตาราง ซึ่งมักจะใช้ในกรณีที่มีผู้เล่น 2 คน • โดยผู้เล่นคนหนึ่งจะแทนการตัดสินใจด้วยแถวต่าง ๆ และผู้เล่นอีกคนหนึ่งแทนการตัดสินใจด้วยคอลัมน์ต่าง ๆ http://th.wikipedia.org/wiki/ทฤษฎีเกม
เกมรูปแบบปกติ (Normal form) • สำหรับเกมในภาพ ผู้เล่น 1 มีทางเลือก 2 ทาง คือ บน และ ล่าง ส่วนผู้เล่น 2 มีทางเลือก 2 ทาง คือ ซ้าย และ ขวา จุดตัดของแถวและคอลัมน์จะแสดงถึงผลตอบแทนที่ผู้เล่นทั้งสองได้รับ เช่น ถ้าผู้เล่น 1 เลือก บน และผู้เล่น 2 เลือก ซ้าย ผลตอบแทนที่ได้คือ ผู้เล่น 1 ได้ 4 และผู้เล่น 2 ได้ 3 http://th.wikipedia.org/wiki/ทฤษฎีเกม
ชนิดของเกม เกมร่วมมือ และเกมไม่ร่วมมือ (Cooperative or non-cooperative) • เกมร่วมมือ (Cooperative)เป็นเกมที่ผู้เล่นแต่ละฝ่ายสามารถตกลงกันได้ • เพื่อให้ได้รับผลตอบแทนรวมที่ดีที่สุด โดยจะถือว่าผู้เล่นที่ร่วมมือกันจะเป็นผู้เล่นฝ่ายเดียวกันและจะปฏิบัติตามข้อตกลงที่ได้ตกลงกันไว้ • เกมไม่ร่วมมือ (Non-cooperative)เป็นเกมผู้เล่นแต่ละฝ่ายไม่สามารถตกลงผลตอบแทนกันได้ • จะต้องตัดสินใจโดยใช้ผลตอบแทนของตนเป็นหลักเท่านั้น http://th.wikipedia.org/wiki/ทฤษฎีเกม
ชนิดของเกม เกมสมมาตร และเกมไม่สมมาตร(Symmetric and asymmetric) • เกมสมมาตรมีกลยุทธในการเล่นที่เหมือนกันสำหรับผู้เล่นทุกคน ได้ผลเหมือนกัน ที่มีชื่อเสียงจำนวนมากจัดอยุ่ในประเภทนี้ เช่น เกมความลำบากใจของนักโทษ เกมไก่ตื่น และเกมความร่วมใจ • เกมไม่สมมาตรมีกลยุทธในการเล่นที่แตกต่างกันออกไปสำหรับผู้เล่นแต่ละคน เช่นเกมในภาพถือว่าเป็นเกมไม่สมมาตร ถึงแม้กลยุทธในการเล่นที่ดีที่สุดจะเป็นกลยุทธเดียวกันก็ตาม http://th.wikipedia.org/wiki/ทฤษฎีเกม
ชนิดของเกม เกมผลรวมศูนย์ และเกมผลรวมไม่เป็นศูนย์ (Zero sum and non-zero sum) • เกมผลรวมศูนย์ (Zero sum)ผลรวมของผลตอบแทนที่ได้ของผู้เล่นจะเป็นค่าคงที่ เช่น การแบ่งปันผลกำไร หรือเกมที่มีผู้ชนะและผู้แพ้ เช่น หมากรุก หมากล้อม มีคนได้ มีคนเสีย เมื่อได้ผลตอบแทนมากที่สุดจะเป็นวิธีเดียวกับที่ทำให้ฝ่ายตรงข้ามได้ผลตอบแทนน้อยที่สุด • เกมผลรวมไม่เป็นศูนย์(Non-zero sum) ในความเป็นจริง ผลลัพธ์ที่ได้ไม่จำเป็นต้องคงที่เสมอไป ขึ้นอยู่กับแนวทางการตัดสินใจของแต่ละฝ่าย ดังนั้น การได้รับผลตอบแทนมากที่สุดจึงไม่จำเป็นต้องทำให้ฝ่ายตรงข้ามได้ผลตอบแทนน้อยที่สุด http://th.wikipedia.org/wiki/ทฤษฎีเกม
ชนิดของเกม เกมเดินพร้อมกัน และเกมผลัดกันเดิน (Simultaneous and sequential) • เกมเดินพร้อมกัน(Simultaneous)ผู้เล่นสามารถตัดสินใจเลือกได้พร้อมกัน โดยไม่ต้องรออีกฝ่ายหนึ่ง • ผู้เล่นไม่ทราบการเดินของอีกฝ่าย • เกมผลัดกันเดิน(sequential) ผู้เล่นสามารถเลือกภายหลังจากฝ่ายหนึ่งได้ตัดสินใจเลือกแล้ว • ผู้เล่นทราบการเดินของอีกฝ่ายในครั้งที่แล้ว http://th.wikipedia.org/wiki/ทฤษฎีเกม
ชนิดของเกม เกมที่มีข้อมูลครบถ้วน และเกมที่มีข้อมูลไม่ครบถ้วน (Perfect information and imperfect information) • เกมข้อมูลครบถ้วน(Perfect information)ผู้เล่นทุกฝ่ายทราบการเดินของอีกฝ่าย • เกมข้อมูลไม่ครบถ้วน(Imperfect information) ผู้เล่นไม่ทราบการเดินของอีกฝ่าย • โดยส่วนใหญ่ เกมผลัดกันเดินเป็นเกมที่มีข้อมูลครบถ้วน http://th.wikipedia.org/wiki/ทฤษฎีเกม
ตัวอย่างเกม : เกมความลำบากใจของนักโทษprisoner's dilemma • เรื่องมีอยู่ว่า มีคน 2 คนถูกตำรวจจับ แต่ไม่มีหลักฐานทำผิด ตำรวจเลยจับแยกกันสอบสวน • โดยคนทั้งสองก่อนถูกจับตกลงกันว่าจะไม่กล่าวโทษฝ่ายใด • ถ้าปิดปากเงียบทั้งคู่จะติดคุกคนละ 6 เดือน • ถ้าคนหนึ่งกล่าวโทษอีกฝ่าย(หักหลัง)จะไม่ติดคุกส่วนอีกคนจะติดคุก 10 ปี • ถ้าหักหลังทั้งคู่ติดคุกคนละ 5 ปี • แต่ละคนควรทำเช่นไร ? B เงียบ B หักหลัง A เงียบ -0.5, -0.5 -10, 0 A หักหลัง 0, -10 -5,-5 CSI:CrimeSceneInvestigation3DofMurder http://en.wikipedia.org/wiki/Prisoner_dilemma
-10 +1 -1 ตัวอย่างเกม : เกมไก่ตื่น chicken • เรื่องมีอยู่ว่า มีคนขับรถอยู่ 2 คัน คนนึงขับรถตามเลน อีกคนขับสวนเลน • จะด้วยเหตุใดก็ตาม 2 คันนี้จะต้องชนกันอย่างแน่นอน ( -10 ) ไม่ใครก็ใครต้องเป็นคนหักหลบ • ถ้าหลบทั้งคู่ ก็จะอยู่คนละครึ่งถนน ( 0, 0) ผ่านไปได้ทั้งคู่โดยไม่ลงข้างทาง • แต่ถ้าหักหลบข้างเดียว รถก็จะพุ่งลงไหล่ทาง ( -1 )ส่วนคนที่ไม่หลบก็ขับต่อไปได้ ( +1 ) • ที่เรียกว่าไก่ (chicken) เพราะฝรั่งหยามคนขลาดที่หักหลบ (chicken=coward) คงคล้ายกับที่เราเรียกว่าใครเป็นหมูอู๊ดๆในเกม B หลบ B ไม่หลบ A หลบ 0,0-1,+1 A ไม่หลบ +1,-1-10,-10 http://en.wikipedia.org/wiki/Chicken_(game)
ตัวอย่างเกม : เกมล่ากวาง stag hunt B กวาง B กระต่าย A กวาง +5, +5 0, +3 A กระต่าย +3,0 +1,+1 • มีคน 2 คน ออกล่าสัตว์ ใครยิงอะไรก็ได้ตัวนั้นไป • แต่ละคนสามารถเลือกว่าจะยิงกวาง หรือกระต่าย โดยที่แต่ละคนไม่รู้ว่าใครจะยิงอะไร • ถ้าจะยิงกวาง ต้องช่วยกันทั้งสองคน คนใดคนหนึ่งยิงไปคนเดียว กวางจะหนีไป (+0) • ถ้าจะยิงกระต่าย (ผู้ชายน่อ อย่าคิดลึก ) คนเดียวก็ยิงได้กระต่าย (+3) โดยที่ราคาของกระต่าย ย่อมน้อยกว่า ราคาของกวางที่แบ่งกันแล้ว • ถ้ายิงกระต่ายตัวเดียวกัน ก็จะแบ่งกัน หรือกระต่ายตัวเล็กได้น้อยหน่อย ( +1,+1) ถ้าได้กวางก็จะได้ (+5,+5) ปกติเกมนี้แสดงถึงการร่วมมือกัน เป็นคะแนนด้านกลับของ เกมนักโทษ เกมล่านี้เป็นแรงจูงใจด้านบวก ส่วน เกมนักโทษ เป็นแรงจูงใจด้านลบ B ร่วมมือ B หักหลัง A ร่วมมือ +5, +50, +3 A หักหลัง +3,0+1,+1 http://en.wikipedia.org/wiki/Stag_hunt
A A A A B B B B +2 +2 Centipede Game เกม 100 รอบ เกมนี้เป็นแบบ win-win situation ไม่เป็น zero sum มีคนเล่น 2 คน เมื่อเริ่มเกมคนเล่นคนที่ 1 จะได้ โถ 2 ใบ โถใบแรก ใส่ทอง 2 เหรียญ โถใบที่สอง ว่างเปล่า (2,0) • ผู้เล่นเมื่อมีโถในมือ สามารถเลือกได้ว่า • #1 จะเอาโถใบที่ได้เงินเยอะ แล้ว เอาโถที่ได้เงินน้อยให้อีกคน เป็นการจบเกม • #2 ส่งโถทั้งสองใบ ให้อีกฝ่าย ทุกครั้งที่ส่งโถไป เงินในโถ(มหัศจรรย์)นี้จะเพิ่ม โถละ 1 เหรียญทอง • ดังนั้นในรอบต่อมาจากโถ (2,0) จะเป็น (3,1) • ในรอบต่อมา เป็น (4,2) --> (5,3) --> (6,4) --> • เกมนี้กำหนดให้จบเกมที่ 100 รอบ อิอิ อ้าก http://en.wikipedia.org/wiki/Centipede_Game
เล่นให้จบเกมสิ 99 97 +2 รอบที่ #97 A A A A A B B B B B +2 100 98 รอบที่ #98 101 99 +2 รอบที่ #99 +2 102 100 รอบที่ #100 102 100 Centipede Game เกม 100 รอบ ดังนั้นในรอบที่ #100 จะมีเงินในโถ ( 102,100 ) คนที่หยุดเกมในรอบที่ #100 จะได้ 102 ส่วนอีกคนจะได้ 100 ถ้าหยุดเกมในรอบที่ #99 คนที่หยุดเกมจะได้ 101 ส่วนอีกคนจะได้ 99 ถ้าหยุดเกมในรอบที่ #98 คนที่หยุดเกมจะได้ 100 ส่วนอีกคนจะได้ 98 ... ไปเรื่อยๆ นึกแล้ว เชียว http://en.wikipedia.org/wiki/Centipede_Game
99 97 +2 รอบที่ #97 +2 100 98 A A A A A B B B B B รอบที่ #98 101 99 +2 รอบที่ #99 +2 102 100 รอบที่ #100 102 100 ถ้า B หยุดเกมที่ #100 (B จะได้ทอง 102 A ได้ 100) แต่ถ้า A บอกว่า ไม่เอา 100 จะเอา 101 เพราะรู้ว่าเกมรอบที่ #100 มันจบแน่ๆ ก็เลยหยุดที่ รอบ #99 แทน เพื่อเอาทอง 101 (A ได้ 101 B ได้ 99) และ มองทางฝั่ง B รอบที่ #99 ถ้า A มันหยุดเล่น .. เราต้องได้ 99 แน่เลย อย่า กระนั้นเลย หยุดรอบที่ #98 ดีกว่า เราจะได้ 100 (B ได้ 100 A ได้ 98) .. ไปเรื่อยๆ ดังนั้น เกมนี้จึงสรุปว่า ถ้าใครหยุดเล่นก่อน จะได้ทอง +1 เหรียญ ดีกว่าปล่อยให้อีกฝั่งหยุดเล่น ในครั้งต่อไป แต่ถ้ารีบหยุดเล่นเลยก็จะได้น้อยไม่คุ้มค่า (ซึ่งตามเกมจะมีโอกาสได้ทองตั้ง 102 เหรียญ) ดังนั้นคำถามคือ เกมนี้ ควรหยุดเล่นเมื่อใด ? ? ? http://en.wikipedia.org/wiki/Centipede_Game
คุณสมบัติของเกมที่จะกล่าวถึงในที่นี้ .. • เกมรูปแบบครอบคลุม (Extensive form) • เกมไม่ร่วมมือ (Non-cooperative) • เกมสมมาตร (Symmetric) • เกมผลรวมศูนย์ (Zero sum) • เกมผลัดกันเดิน (Sequential) • เกมข้อมูลครบถ้วน (Perfect information)
Search Tree การวางตำแหน่งของx การวางตำแหน่งของO การวางตำแหน่งของx การวางตำแหน่งของO Source: Aritificial Intelligence : A System Approach M Tim Jones
Search Tree 1 ply 2 ply Source: Aritificial Intelligence George F Luger
ฮิวริสติก (heuristics) ในการหาโอกาสที่จะชนะในเกม ox heuristics (n.) the study of how people use their experience to find answers to questions or to improve performance (longman) Source: Aritificial Intelligence George F Luger
การตัดเส้นทางการคำนวณที่ไม่จำเป็น ของฝ่าย x โดยการใช้ฮิวริสติก Source: Aritificial Intelligence George F Luger
การคำนวณ คะแนนของกระดาน ของฝ่าย x โดยการใช้ฮิวริสติก Source: Aritificial Intelligence George F Luger
ผลัดให้อีกฝ่าย 1.รับข้อมูล 6. AI คำนวณ การเดิน ผิด 2.เดินได้ ถูก 7.ปรับปรุง กระดาน +เช็คคะแนน 3.ปรับปรุง กระดาน +เช็คคะแนน 8.แสดงผล 4.แสดงผล ไม่ 9.จบเกม? จบเกม 5.จบเกม? ใช่ เริ่มเกม+ตั้งกระดาน • ส่วนรับข้อมูล • ส่วนแสดงผล • AI ส่วนคำนวณเกม • ส่วนคำนวณช่องการเดินตาหมาก • ส่วนคิดคะแนนของเกม • ส่วนคำนวณ tree pruning • ส่วนคำนวณจบเกม
เริ่มเกม+ตั้งกระดาน 5.ปรับปรุง กระดาน +เช็คคะแนน 1.ฝ่ายที่จะเดิน เครื่อง คน 6.แสดงผล 3. AI คำนวณ การเดิน 2.รับข้อมูล จบเกม ผิด 7.จบเกม? ใช่ ไม่ 4.เดินได้ 8.สลับฝ่าย ถูก
AI ส่วนคำนวณเกม • ส่วนคำนวณช่องการเดินตาหมาก • ส่วนคิดคะแนนของเกม • ส่วนคำนวณ tree pruning • ส่วนคำนวณจบเกม
MINIMAX ALGORITHM player opponent player opponent Source: Aritificial Intelligence George F Luger
Alpha-Beta Pruning (AB Pruning) prun if lower node < upper node 0<3 alpha cut 2<3 alpha cut lower node > upper node 5>3 beta cut lower node < upper node alpha = min node beta = max node 1.alpha pruned/cut in min node alpha < beta 2.beta pruned/cut in max node alpha > beta Source: Aritificial Intelligence George F Luger
Puzzle • โดยทั่วไป puzzle หมายถึงปริศนาที่เป็นชิ้นๆ
15-Puzzle • แนวทางการสร้าง 15-puzzle – สุ่มอย่างไร ? – เช็คอย่างไร ? 1 2 3 4 1 2 3 4 1 2 3 4 5 6 7 8 5 6 7 8 5 6 7 8 9 10 11 12 9 10 11 0 9 10 0 11 13 14 15 0 13 14 15 13 14 15 12 12 random สลับ ที่ว่างๆ กับตัวอื่นๆ random สลับ ที่ว่างๆ กับตัวอื่นๆ สลับไปเรื่อยๆ set ค่าเริ่มต้นก่อน ให้เป็น goal
Rubik • แนวทางการสร้าง rubik – สุ่มอย่างไร ? – เช็คอย่างไร ? random สลับ ที่ว่างๆ กับตัวอื่นๆ random สลับ ที่ว่างๆ กับตัวอื่นๆ สลับไปเรื่อยๆ set ค่าเริ่มต้นก่อน ให้เป็น goal สรุปว่า ปริศนาทั่วไป ให้สร้าง goal ก่อน แล้ว สุ่มสลับลำดับใหม่ ก็จะได้ปริศนาไว้เล่น
Brick • click อย่างเดียว สีที่มากกว่า 1 ตัวที่อยู่ใกล้กัน หายไป นับจำนวนชิ้นสีติดกันที่มากที่สุด + หล่น
Column • piece = 3 ชิ้น แนวตั้ง สลับลำดับได้ ครบสีอย่างน้อย 3 ตัวถึงหายไป + หล่น
Dr.Mario • piece = 2 ชิ้น แนวตั้ง/นอน หมุนได้ ครบสีอย่างน้อย 3 ตัวถึงหายไป + หล่น
Puyo Puyo • piece = 2 ชิ้น แนวตั้งหรือนอน หมุนได้ ครบสีอย่างน้อย 3 ตัวถึงหายไป + หล่น
Tetris • piece = 3-4 ชิ้น ขนาดแตกต่างกัน ครบแถวแนวนอนอย่างน้อย 1 แถวถึงหายไป หล่นทั้งแถว
Bejweled • สลับตัว point + click จับคู่ 3 ตัวให้เป็นแถวเรียงแนวตั้ง หรือแนวนอน จึงหายไป + หล่น
Chuzzle • เลื่อนแถว แนวนอน หรือ แนวตั้ง ถ้ามีสีต่อกันอย่างน้อย 3 สี ก็จะหายไป + หล่น
Puzzle Bobble • ยิงลูกบอลสี 1 ลูก ขึ้นไป ติดข้างบน ใช้เล็ง เมื่อครบอย่างน้อย 3 = หายไป ฉากเลื่อนลงได้
Zuma • ยิงลูกบอลสี 1 ลูก ทางใดก็ได้ ให้ติดในแถว ใช้เล็ง เมื่อครบอย่างน้อย 3 = หายไป เลื่อนเป็นเส้นแทน
ปัญหาของการเช็คว่าแต่ล่ะสีมีสีเหมือนกันใกล้ๆ กี่ชิ้น • สร้าง array เก็บข้อมูล