|
ใครอยากเขียนโปรแกรมเป็นมาเล่นเกมกันดีกว่า
โพสต์เมื่อ:
14:51 วันที่ 18 ส.ค. 2548 ชมแล้ว:
2,335
ตอบแล้ว:
19
เกมนี้ชื่อว่า เกมหอคอยฮานอยค่ะ
วิธีเล่นก็ไม่ยาก ถ้าสำหรับเด็กๆทำ หรืออาจารย์ทำให้เด็กๆ 1. หาแผ่นไม่มาสัก 1 แผ่น 2. เอาดินน้ำมันโปะให้ทั่วแผ่นไม้นั้น 3. หาดินสอมา 3 แท่ง ปากกาก็ได้ อะไรก็ได้กลมๆยาวๆเป็นทรงกระบอก 4. หาแผ่น CD ไม่ใช้แล้ว หรืออะไรก็ได้ที่มีรูตรงกลาง แต่รูนี้ควรใหญ่กว่าสิ่งในข้อ 3 สักเล็กน้อย ถ้าใช้เป็น CD ควรกำหนดสี เช่น สีแดง มีค่ามากกว่า สีเขียว สีส้ม มีค่ามากกว่าสีแดง ..... เป็นต้นค่ะ หากไม่ใช้ CD ก็ใช้สิ่งใดก็ได้ที่มีรูตรงกลางอย่างที่บอก แล้วมีขนาดใหญ่เล็ก ลดหลั่นกันไปค่ะ เช่นถ้าเด็กประถมใช้ 3 ชิ้นกว่า มี 3 ไซส์ เล็ก กลาง ใหญ่คะ ระดับอื่นก็ลดหลั่นกันไป รูปทรงไม่จำเป็นต้อง กลม หรือ เหลี่ยม หรือรูปอื่น แต่ขอให้เป็นรูปเดียวกันทุกชิ้น 5. เสร็จแล้วเล่นได้เลยค่ะ สำหรับจำนวน CD ในข้อ 4 ขึ้นอยู่กับว่าผู้เล่นเป็นระดับใด ถ้าเป็นประถม สัก 3 แผ่น ไม่ควรน้อยกว่านี้ค่ะ มัธยม ประมาณ 4 แผ่น กำลังพอดีค่ะ อุดมศึกษา 5 แผ่น ยากหน่อยนะคะ ถ้าคนเล่นไม่ใช่อัจฉริยะ ระดับอุดมศึกษากว่าจะเล่นได้ถูกต้อง ก้ต้อง 3 - 4 ครั้งขึ้นไปค่ะ วิธีเล่น ขั้นที่ 1 ตั้งCD บนไม้ทรงกลม โดยเรียงลำดับท่อนล่างใหญ่ที่สุด หรือมีค่ามากที่สุด กรณีเป็น CD เรียงเป็นจนหมด ขั้นที่ 2 ให้ผู้เล่นทำอย่างไรก็ได้ที่สามารถเคลื่อนย้ายหอคอยทั้งหอคอย ไปอยู่ในแกนอีกแกนหนึ่งได้ และหอคอยที่เคลื่อนย้ายไปตั้งต้องเหมือนกันทุกประการกับหอคอยเดิม กฎ กติกา มารยาทในการเล่น 1. การย้ายหอคอย เคลื่อนย้ายได้ทีละครั้ง เช่นถ้าใช้ CD ทำ ก็ย้าย CD ได้ทีละแผ่นเท่านั้น 2. CD ที่มีค่ามากกว่า และแผ่นไม้ฯลฯ ที่มีขนาดใหญ่กว่าแผ่นที่อยู่ข้างล่างถือว่า ฟลาวน์ เช่นข้างล่างขนาดกลาง แล้วจะนำขนาดใหญ่มาเสียบเพื่อต่อเป็นหอคอย ถือว่าฟลาวน์เล่นใหม่ค่ะ จำนวนขั้นตอนในการเล่นมีสูตรดังนี้ หาก 3 แผ่น ใช้ขั้นตอนในการย้ายหอคอยทั้งหมด 7 วิธี หาก 4 แผ่น ใช้ขั้นตอนในการย้ายหอคอยทั้งหมก 15 วิธี หาก 5 แผ่น ใช้ขั้นตอนในการย้ายหอคอยทั้งหมด 31 วิธี ลองเล่นดูนะคะ มีบางคนโกง เกมนี้ต้องย้ายแกนหอคอยด้วยนะคะ ถ้าย้ายแล้วหอคอยอยู่เกมเดิมก็ไม่ได้ค่ะ ถือว่าฟลาวน์ เฉลย ไม่มีค่ะ เฉลยอยู่ที่ใครสามารถย้ายหอคอยได้สำเร็จโดยจำนวนครั้งที่ใช้ย้ายไม่เกินจำนวนขั้นตอนในการย้ายที่เฉลยไว้ค่ะ สงสัยกรุณาคลิกที่ชื่อคนโพสต์ ส่งข้อความไปที่ อีเมล์ได้ค่ะ จำนวน 18 ความเห็น, หน้า่ | -1- ความเห็นเพิ่มเติมที่ 1 18 ส.ค. 2548 (16:34) ช่วยโพสตืให้หน่อยนะคะ ว่า คุณที่เข้ามาดูเป็นครู อาจารย์หรือนักเรียนชั้นไหนนะคะ ขอบคุณค่ะ อยากทราบว่าความต้องการดูกระทู้นี้เป็นใครมากกว่ากัน อาจารย์หรือว่านักเรียน เห็นว่ากระทู้ดี จะเผยแพร่ต่อก็ได้นะคะ ความเห็นเพิ่มเติมที่ 2 25 ส.ค. 2548 (20:18) มันเกี่ยวอะไรกับเขียนโปรแกรมครับ คุโรมาตี้ (IP:203.151.140.123,203.113.57.104,) ความเห็นเพิ่มเติมที่ 4 26 ส.ค. 2548 (09:39) ตอบคุณคุโรมาตี้ คืองี้ค่ะ การเขียนโปรแกรมต้องอาศัยทักษะ 1 อย่างคือ ทักษะเรื่องขั้นตอนวิธี หรือเรียกว่า algorithm ทักษะตรงนี้อาจฝึกได้จากเกมนี้ตรงที่คุณได้ใช้สมองคิด คิด.... คิด.... และคิดว่าจะทำยังไงจึงจะเล่นเกมให้ผ่านได้อย่างถูกต้อง เพราะ... ถ้าเกมนี้คุณไม่คิด บอกได้เลยค่ะว่าผ่านยาก และที่ไม่บอกเฉลยให้เพราะ จงใจค่ะ จงใจจะให้คิดเอง เกมนี้จะไม่มีน้ำยาเลยถ้า... คุณดูเฉลย ... คุณไม่คิดเอง วิธีการเล่นจะได้หลายแบบ ครั้งแรกคุณเล่นแบบนี้ อาจจะยังเล่นไม่ผ่าน คุณก็จะว่าว่าคุณมีขั้นตอนวิธี(algorithm) อย่างนี้ ลองใหม่... แล้วดูว่าถ้าคุณมีขั้นตอนวิธีในการดำเนินการเล่นอย่างนี้ จะเล่นผ่านไหม มีกี้ไปดูโพสต์ขอโทษทีที่บอกไปเลยว่าได้กี่วิธี จริงๆการคิดขั้นตอนวิธีในการเล่นคือ (2^N)-1 เมื่อ n เป็นจำนวนแผ่นCD หรือ แผ่นที่คุณจะย้ายนั่นแหละ แล้วสิ่งที่จะบอกอีก 2 เรื่องนะคะ เรื่องที่ 1 การที่คุณเรียนเก่ง เอาแต่วิชาการ ไม่ได้บอกว่า คุณจะประสบความสำเร็จในทุกเรื่องนะคะ บางทีเกมหรือกิจกรรมก็ทำให้คุณเรียนได้ง่ายขึ้น เรื่องที่ 2 อยากถามคุณคุโรมาตี้ว่า คุณรู้เรื่องที่โพสต์หรือคะ คุณรู้แล้วทำเกมเล่นแล้วหรือคะ คุณเล่นเสร็จแล้วไช่ไหมที่มาโพสต์นี่ ถ้าไม่ใช่ทำแล้วเลนเองก่อนนะคะ ความเห็นเพิ่มเติมที่ 5 15 ก.ย. 2548 (12:42) ..... ..... ขั้นที่ 1 ตั้งCD บนไม้ทรงกลม ..... มันตั้งไม่อยู่น่ะค่ะ (ไม่ได้กลึงไม้เลยใช้ลูกปิงปองแทน) จิ๋ม (IP:203.121.140.235,192.168.5.2,) ความเห็นเพิ่มเติมที่ 6 20 ก.ย. 2548 (16:40) ขอบคุณค่ะที่มาบอกปัญหา ความเห็นเพิ่มเติมที่ 7 3 ต.ค. 2548 (14:13) คุณจิ๋มคะ Cd มันมีรูตรงกลางไม่ใช่หรือคะ แล้วทำไมคุณใส่รูที่ไม้ไม่ได้ ... ความเห็นเพิ่มเติมที่ 8 3 ต.ค. 2548 (15:59) โจทย์ที่ว่านี่เป็นปัญหาคลาสสิคของการเขียนโปรแกรมเลยครับ เคยอ่านในหนังสือสอนเขียน Pascal เื่ื่มื่อเกือบ 10 กว่าปีที่แล้ว ถ้าจะเขียนโปรแกรมที่สั้นและมีประสิทธิภาพมากที่สุดต้องใช้ recursive function (คือ function ที่เรียกตัวเอง) ใครสนใจลอง search ใน Google คำว่า Tower of Hanoi nat (IP:71.11.128.234,,) ความเห็นเพิ่มเติมที่ 9 5 ต.ค. 2548 (10:47) ขอบคุณค่ะ ความเห็นเพิ่มเติมที่ 10 13 มี.ค. 2549 (13:36) นึกออกแล้ว เคยเล่นต้อนเด็กๆๆ ต้อนเด็ก ใช่ลูกปัดเล็กกับใหญ่ นี้เอง ไม่อยากเลย ง่าย ต้อนนี้ก็ลองเล่นอยู่ เล่น แบบว่า คิดเอาในหัวก็ได้ ไม่ต้องใช่แผ่น หลับตาแล้วคิด ซิ ความเห็นเพิ่มเติมที่ 11 13 มี.ค. 2549 (22:30) เคยเล่นแล้วคะ มันเป็นของเล่นในหมวดคณิตศาสตร์ของโรงเรียน แต่ตอนนั้นเล่นมันมี6ชิ้น อิอิเล่นแรกๆใช้เวลาพอสมควรเลยอะ(เกือบครึ่งชัวโมง) honeypee (IP:58.9.47.76,,) ความเห็นเพิ่มเติมที่ 12 15 มี.ค. 2549 (11:02) ทำไมเวลาเราดูtvเมื่อกล้องถ่ายภาพ คอมพิวเตอร์หรือ tvเราจะเห็นภาพมันเต้นหรือสั่นแต่ถ้าเราดูหน้าจอของเราเองมันไม่สั่นใครรู้ช่วยบอกทีครับหนูจะรอ Chim (IP:202.143.128.114,,) ความเห็นเพิ่มเติมที่ 13 15 มี.ค. 2549 (15:37) ตอบคุณ Chim เนื่องจากความเร็วชัตเตอร์ ของกล้องไม่เพียงพอ ถ้ามันสั่น ก็ให้ ปรับ สโลว์ ชัตเตอร์ ก็หายนะ แต่ถ้าเป็นกล้าง ที่มีราคาแพง ก็จะไม่สั่นเลย อุปกรณ์พวกนี้ยิ่งมีราคาแพงยิ่งดี ความเห็นเพิ่มเติมที่ 14 17 มี.ค. 2549 (09:02) นี่มัน algorithm ของ Stack นี่ครับ ผมเคยเห็นคล้ายๆอย่างงี้แต่ใช้ เหรียญ 3 เหรียญ เหรียญบาท เหรียญห้าบาท และเหรียญสิบบาท ไม่มีไม้ไม่มีฐานเพียงแค่ย้ายไปเฉยๆ ไม่ทราบว่าถ้าใช้อย่างงี้จะได้หรือเปล่า ได้ค่ะ ทาวเวอร์ ออฟ ฮานอย นี่เอง jo (IP:202.28.78.14) ผมก็ว่างั้นแหล่ะ.. ปัญหา Towers of Hanoi แก้ได้โดยใช้ recursi0n คับ สามารถเขียนเป็นโปรแกรมได้ void mdisk (int p, char a, char c, char b) { if (p==1) printf("move disk 1 from pole %c to pole %c\n",a,c); else { mdisk(p-1, a, b, c); printf("move disk %d from pole %c to pole %c\n",p,a,c); mdisk(p-1,b,c,a); } } void main() { int p; printf("The number of disks : "); scanf("%d",&p); mdisk(p,'A','C','B'); } ดูง่ายกว่าการวนลูปเยอะคับ credit: Data structures and algorithm analysis in C pond_curry_call@hotmail.com (IP:203.113.41.41) |