กระโดดไปยังแผงนำทาง

อัลกอริทึมของลูกบิด 18 October 2007 8:42 pm

บันทึกโดย Mr. PeeTai ใน : การสร้างซอฟต์แวร์ , ตรวจย้อนกลับ

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

เห็นบางคนก็นั่งหาหนทางบิดของตัวเองไป แต่บางคนก็เล่นเปิด YouTube เพื่อหาคลิปวีดีโอสอนการบิดกันเป็นเรื่องเป็นราวไปเลย!!!

โดยส่วนตัวแล้วผมไม่เคยเล่นลูกบิดได้สำเร็จเป็นเรื่องเป็นราวเลยนะ แม้แต่หน้าเดียวผมก็ไม่เคยเรียงสีครบเลย ได้ยินว่ามันมีสูตรด้วย ประมาณว่าถ้าจำสูตรได้นะ หลับตาบิดก็ยังได้เลย (ว่าเข้าไปนั่น)

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

ปรากฎว่าหาอัลกอริทึมไม่พบครับ แต่พบตัวโปรแกรมและต้นฉบับโปรแกรมเลย โดยตัวโปรแกรมเข้าไปดูได้ที่นี่ครับ เขียนด้วยภาษา Java นะ กลไกการทำงานเป็นแบบ Java Applet คิดว่าถ้าใครรู้ AWT คงจะอ่านเข้าใจ และสามารถแยกส่วนที่เป็นกราฟิก ออกจากส่วนที่เป็นอัลกอริทึมในการค้นหาวิธีการบิดลูกบิดได้

ที่เห็นว่าของเขาเข้าท่าก็คือ นอกจากเขาจะเขียนโปรแกรมให้เป็นแบบกราฟิกแล้ว เขายังเปิดให้เราดาวน์โหลด source code ไปอ่านดูเพื่อทำความเข้าใจได้ด้วย

แต่ถ้าให้ดีที่สุดอ่ะนะ ถ้าสามารถทำ Reverse engineering ไอ้เจ้า source code ของโปรแกรม ให้กลายเป็น Technical Specification เพื่ออธิบายอัลกอริทึมในการบิดลูกบิด ให้คนทั่วไปเข้าใจได้โดยง่าย มันก็คงดีไม่น้อยเลยเน้อะ?

เพราะผมคิดว่าอัลกอริทึมในการบิดลูกบิด มันน่าจะเอาไปประยุกต์ใช้กับเรื่องอื่นได้!!!

Technorati Tags: , , ,

ความคิดเห็น»

1. RedHooligan - 18 October 2007

อยากเล่นมานานแล้วครับ สงสัยต้องลองถามสูตรจาก google ดูซะแล้ว

2. PETE - 18 October 2007

ผมเคยเล่นตอนเด็กๆ แต่ไม่เคยจะบิดได้ 555+

3. moniguna - 19 October 2007

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

แต่ถ้าเป็นตอนนี้คงเอามาเขียนเป็นโปรแกรมคอมพิวเตอร์ แล้วล่ะ

4. discovery mam - 19 October 2007

นึกว่าลูกบิดประตู 555

5. ซิมเบี้ยน - 19 October 2007

วันนั้นดูรายการโทรทัศน์ เห็นบิดกันอย่างเทพเลยพี่น้อง แป๊บเดียวเสร็จเลย (เขาแข่งขันกัน) บางคนมันบิดแค่มือเดียวเอง และที่สุดยอดกว่านั้นก็มี มันใช้เท้าสองเท้านี่แหล่ะ คีบไปบิดมา เสร็จอีกเช่นกันในเวลาอันน้อยนิด

เอากะมันดิ เอ…ผมไม่รู้ว่าที่เขามาเล่น ๆ กันนี่เพราะเห็นในโทรทัศน์เมื่อไม่นานนี่หรือเปล่าหนอ….. สงสัยอะ

6. Audy - 19 October 2007

ผมเพิ่งซื้อมาเล่นเมื่อวันอาทิตย์ที่แล้วนี้เอง

คิดถึงตอนมัธยมเลยซื้อมาเล่น

ตอนนี้ได้สีเดียวเองครับ

7. ข่า - 19 October 2007

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

8. Audy - 19 October 2007

นี่ อย่างเจ๋ง
http://www.youtube.com/watch?v=htnL1KTpaY8&mode=related&search=Rubik%27s%20Cube%20NYC%20Dick%20Richard%20Leonard

9. Mr. PeeTai - 20 October 2007

มันมีสูตรครับคุณ RedHooligan

มาแนวเดียวกับผมเลยคุณ pete ฮา ^-^

ตอนนั้นเพื่อนคุณ moniguna ใช้ 80486dx เป็นตัวประมวลผลป่ะครับ ถ้าใช่ล่ะก็ ไม่น่าแปลกใจเลยครับ เพราะมันก็ช้าได้ประมาณนั้นจริง ๆ

เออ จริงด้วยแฮะคุณ discovery mam เสียงมันพ้องกันจริง ๆ ด้วย

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

ได้สีเดียวก็ถือว่าเหนือกว่าผมเจ็ดขุมแล้วครับคุณ Audy เพราะผมเคยเล่นอ่ะนะ อย่างมากสุดก็ได้เกือบครบสีในหนึ่งหน้าอ่ะ แบบว่าขาดไปเม็ดนึง

อ้า คุณข่าก็มีสูตรในการเล่นกับเขาเหมือนกัน สูตรเฉพาะ ^-^

ผมตามเข้าไปดูในคลิบวีดีโอที่คุณ Audy ให้ดูแล้วนะ เห็นแล้วแบบว่า อยากจะบ้า โหย ต้องทำทั้งโมดูลวิเคราะห์ลูกบิดผ่านกล้อง, ต้องทำโมดูลวิเคราะห์การบิด, แถมต้องทำโมดูลควบคุมหุ่นยนต์ให้บิดลูกบิดด้วย … จะเก่งกันไปถึงไหนฟระเนี่ย????

10. PETE - 20 October 2007

ผมว่าในคลิบที่คุณ Audy เอามาอ่ะ เจ๋งนะ เป็นหุ่น Lego ไม่ใช่หรอครับ ชิ้นส่วนคล้ายๆ

11. Audy - 21 October 2007

ผมยังงงหัวแทบแตกอยู่นะครับ ว่าคิดได้ยังไง

ถ้าเขียนเป็นโปรแกรมได้แบบนี้ ก็แสดงว่ามีสมการในการแก้ปัญหา

12. cotton - 21 October 2007

กำลังงงเหมือนกันว่าเขากลับมาฮิตกันใหม่เหรอ เพราะเห็นที่ทำงานลูกค้าที่ฉันไปนั่งประจำช่วงนี้ เขาก็เอามาเล่นกัน

สำหรับตัวเองแล้วไม่เคยบิดได้สำเร็จ เลยไม่สนใจจะทำ เพราะทำแล้วพาลอยากแกะมาออกมาให้หมดเลย เลิกบิดซะ

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

13. MP3WizarD - 22 October 2007

ไปเจอ แบบ 7×7 ที่ toys’r แทบกรี๊ดด… 3×3 ตูยังเล่นไม่จบเลย -'’-

14. yokey - 23 October 2007

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

15. Rath - 27 October 2007

สำหรับผมจะทำไปทีละแถวครับ แถวแรกกับแถวสองไม่ยากเท่าไหร่ บิดไปบิดมาก็พอได้ แต่แถว 3 นี่แหละครับที่มันยาก ต้องมาคิดสูตรแล้วก็จดไว้ว่าใช้สูตรนี้แล้วจะได้ผลแบบไหนอะไรแบบนี้ (แต่คนฉลาดๆความจำดีๆอาจไม่ต้องจดก็ได้มั้งครับไม่รู้เขา - -”) ก็คิดอยู่นานเหมือนกันนะครับกว่าจะได้ ได้แล้วก็แอบภูมิใจเหมือนกันนะครับ 55+

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

16. EscRiBiTioNiSt® - 5 November 2007

เห่อมาพักใหญ่ คนหมดแรงเห่อ

เสาร์ที่ผ่านมา เพิ่งได้ของแท้มา ทำให้เกิดอาการอยากเล่นอีก ประกอบกับ ของแท้ มันจะหมุนได้ง่ายกว่า

Solutions มีหลายแบบล่ะมั้ง รู้สึกนะ วิธีแก้แบบในเว็บ Rubiks เลย ก็จะดูเข้าท่า แต่ว่า งงๆ เล็กน้อย เพราะว่า มันไม่ interactive

แต่เว็บนี้ เพิ่งเจอมาเมื่อก่อนเที่ยง ก็เข้าท่าดี เป็น Java อย่างที่คุณพี่ไท้บอกนี่ล่ะ ค่อยๆ ดูไปทีละหน่อย ก็พอเข้าใจบ้าง

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

17. Copywriter - 10 November 2007

เห็นน้องที่ office กำลังบ้าอยู่ หลายคนเหมือนกันครับ
เห็นนั่ง search ทำตามสูตรกัน มันจะมีประโยชน์อันใดเนี้ย

ผมว่ามันไม่ต้องดูสูตรก็ทำได้นะ ทำไมต้องดูสูตรด้วย

อันนี้ไม่ใช่งาน copy then develope ซะหน่อย
มันก็แค่ logic ธรรมดาๆ ไม่ใช่หรือครับ

18. kike - 12 November 2007

ผมศึกษาเรื่องนี้จริงๆจังๆอยู่พักหนึ่ง

สรุปได้ว่า มันไม่มีสูตรตายตัวขนาดที่หลับตาบิดแล้วได้หรอกครับ

แต่มันจะมีสูตรว่าถ้าเจอลักษณะแบบนี้จะทำไงต่อ เจอแบบนี้แก้ยังไง ไปเรื่อยๆจนเสร็จทั้งหมด

ส่วนวิธีทำ มันมีวิธีทำ หลายแบบมากๆครับ

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

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

นอกจากนี้ก็ยังมีคนคิดค้นอีกหลากหลายวิธี ซึ่งมันก็มีมาก แต่ไม่ค่อยนิยม เพราะมันต้องแลกกันระหว่าง ความเร็ว กับ ความซับซ้อน

ถ้านึกภาพไม่ออกให้ลองนึกว่า
คุณจะทำยังไง เพื่อที่จะให้มองเห็นแล้วบิดรวดเดียวออกได้เลย
แน่นอนคุณก็ต้องมีอัลกอริทึ่มเตรียมไว้เป็นพันๆแบบ

19. โอก๊าป - 28 December 2007

อิอิก๊าป
ผมน่ะก๊าปอิอิ
อย่าจะถามอะก๊าปไอลูกนี้มันเรียกว่าอะไรเหไรอก๊าปอิอิ
ซื่อมาเล่นยังไม่รู้เลยก๊าปอิอิ

20. Pookiez - 28 January 2008

มาคอมเม้นช้าไปรึป่าวไน่ใจนะคะ -*-
พอดี นู๋ก็ชอบเล่น ลูกบิดนี่เหมือนกันล่ะค่ะ
ช่วงสมัย ม.ปลาย เห็นเพื่อนๆเห่อเล่นกัน เลยซื้อมาเล่นบ้าง
แล้วก็บังเอิญมีเพื่อนที่เล่นได้อยู่อ่ะค่ะ เลยให้เค้าสอนเล่น

อย่างที่คุณ kike บอกอ่ะค่ะ มันจะทำเป็นขั้นตอน
แต่รู้สึกว่าที่ นู๋ทำ จะเริ่มจาก
ทำให้ด้านหนึ่งด้านเป็นสีเดียวกันโดยที่สีของขอบด้านถัดไปจะต้องเป็นสีเดียวกันด้วย อะไรประมาณนี้น่ะค่ะ แล้วทำไปทีละขั้น
คือถ้าเป็นขั้นตอนแบบนู๋ ไวสุดๆน่าจะประมาณ นาทีกว่าๆ อ่ะค่ะ เท่าที่เคยทำ
แบบว่า อัลกอริทึม ไม่ค่อยมะมีอ่ะค่ะ เถือกๆเอา

ตอบคุณ โอก๊าป นะคะ

ภาษาไทยที่เรียกทั่วไป เราเรียก ลูกบิด อ่ะค่ะ
ภาษาอังกฤษ เรียกว่า Rubik’s Cube
อันนี้อาจารย์สอนภาษาต่างประเทศบอกตอนเห็นเอามาเล่นกันในคาบเรียน
เพื่อนในห้องเค้า เรียก fantastic cube อ่ะค่ะ สงสัยอาจารย์กลัวลูกศิษย์จาไปเรียกให้คนอื่นฟังแล้วขายหน้า-*-

21. mummin - 26 February 2008

วิธีของผมก็เริ่มจากมุมเหมือนกัน ผมคิดเองหมดเลย ไม่เคยค้นหาสูตรเลยภูมิใจครับ กว่าผมจะคิดวิธีการทั้งหมดเสร็จก็เกือบ 2 สัปดาห์แน่ะ(แต่จริงลองทำมั่วๆ วันเดียวมันก็แก้ได้แล้ว)

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

ตอนนี้เล่น 5×5 ยังไม่มีเวลาคิดสูตรเลยรู้สึกมันชนกันวุ่นวายกว่า 3×3 เยอะเลย แต่ก็ลองใช่วิธีของ 3×3 มันจะเปลี่ยนได้ไม่ครบยังเหลือสีอีกบานเลย

22. เปิดร้านกาแฟ - 29 February 2008

ยากโคตร ๆ โหดมาก ๆ แค่เล่นปกติผมยังเล่นไม่ไหวเลย งั้นไม่ต้องห่วงเรื่องการเขียนโปรแกรมแก้ปัญหามัน

23. โมจิ - 5 March 2008

คนเก่งช่วยสอนเป็นนถาษาไทยทีคับงงมาก

24. MHaNOi - 28 March 2008

นี้เยย thailandcube.com เพียบ มีเทคนิค เยอะ ผมก้อมาเสริมรูปแบบวิธีจากเว็บนี้แหละ แต่ไม่ค่อยได้เล่น เร็วสุดก้อแค่ นาทีครึ่ง ในเว็บ สิบกว่าวินาที ก้อมี เทพ ทั้งนั้น

25. NiNeMarK - 5 May 2008

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

26. บอย - 11 May 2008

เด๋วนี้บิดกันเร็วๆ สูตรเยอะแยะครับ ที่นี่ก็มีอยู่ครับ

http://www.rubiks-diy.com/webboard/index.php?PHPSESSID=6279b8874b1bef720573ea1c8fbda543&

27. แอน - 12 May 2008

ดูที่นี่ก้อมีสูตรเยอะแยะค่ะ ง่ายดีค่ะ

http://www.rubiks-diy.com/webboard/index.php

28. ellevoid - 15 May 2008

“มีคนบอกว่าลูกบิดก็คือพีชคณิต สามารถเอาสมการทางคณิตศาสตร์มาอธิบายได้” ผมก็ไม่รู้ว่ามันแปลว่าอะไร ใครรู้ ใครเข้าใจช่วยมาบอกทีครับ

29. จอย - 20 July 2008

ลูกบิดที่เป็นลายการ์ตูนจะเล่นยากกว่าลูกบิดที่เป็นสีหรือเปล่า หรือว่าวิธีเล่นเหมือนกัน ใครรู้บ้างค่ะ ตอบด้วยนะ


*
เพื่อพิสูจน์ว่าคุณเป็นมนุษย์ (ไม่ใช่หุ่นยนต์) ดังนั้น กรุณาใส่รหัสป้องกันซึ่งแสดงอยู่ด้านล่างด้วยครับ
Anti-Spam Image