ผลต่างระหว่างรุ่นของ "01204223/รายละเอียดเกี่ยวกับงานบอร์ด"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย 'ในส่วนแบบฝึกหัด b1 - b7 เราจะพัฒนาโปรแกรมสำหรับเกมห...') |
Jittat (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 14 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
แถว 1: | แถว 1: | ||
ในส่วนแบบฝึกหัด b1 - b7 เราจะพัฒนาโปรแกรมสำหรับเกมหนีหุ่น ซึ่งมีรายละเอียดของเกมเป็นดังนี้ | ในส่วนแบบฝึกหัด b1 - b7 เราจะพัฒนาโปรแกรมสำหรับเกมหนีหุ่น ซึ่งมีรายละเอียดของเกมเป็นดังนี้ | ||
− | + | '''เกมหนีหุ่น''' [http://en.wikipedia.org/wiki/Robots_%28BSD_game%29 Robots] เป็นเกมคลาสสิก ทดลองเล่นบน browser ได้จาก[http://ctho.org/games/robots/] ในเกมนี้ ผู้เล่นจะเดินหนีหุ่น โดยที่หุ่นจะเคลื่อนที่ไปในทิศต่าง ๆ ที่จะเข้าใกล้ผู้เล่นให้ได้มากที่สุด ถ้าเคลื่อนที่ชนกันหุ่นก็จะตายไป | |
== คลาส == | == คลาส == | ||
+ | |||
+ | คลาสที่เราจะเขียนคือคลาส Board, GamePiece, Player และ Robot | ||
+ | |||
+ | * คลาส Board จะเป็นคลาสหลักที่เก็บเบี้ย (GamePiece) ในเกมทั้งหมด และรับผิดชอบการแสดงผลตารางเกม | ||
+ | * คลาส GamePiece จะเป็นคลาสฐานของเบี้ยในเกม เบี้ยจะทราบตำแหน่งของตัวเอง และสามารถบอกกับ board ได้ว่าจะให้แสดงผลเป็นอะไร | ||
+ | * คลาส Player และ Robot จะ inherit มาจากคลาส GamePiece โดยมีการแสดงผลเป็น * สำหรับ player และ @ สำหรับ Robot | ||
+ | |||
+ | == เป้าหมายของงานย่อยต่าง ๆ == | ||
+ | |||
+ | รายละเอียดของ method ที่เขียนนั้น จะระบุใน doctest ของโจทย์แต่ละข้ออยู่แล้ว สำหรับหน้านี้จะอธิบายภาพรวมคร่าว ๆ เท่านั้น | ||
+ | |||
+ | * '''b1''': ในข้อนี้เราจะเขียนคลาส Board ที่เก็บขนาดของตาราง และแสดงตารางว่าง ๆ ตามขนาดที่กำหนดไว้ตอนเริ่มต้นนั้น | ||
+ | |||
+ | * '''b2''': ในส่วนนี้เราจะเขียนคลาส GamePiece ที่เก็บตำแหน่ง, คืนตำแหน่ง, และสามารถระบุอักขระที่ใช้สำหรับพิมพ์เบี้ยตนเองได้ โดยอักขระที่พิมพ์คือ 'X' | ||
+ | |||
+ | * '''b3''': ในส่วนนี้เราจะเพิ่มให้คลาส Board สามารถเก็บรายการของ GamePiece ได้ | ||
+ | |||
+ | * '''b4''': เราจะเพิ่มคลาส Player และ Robot โดยให้ inherit มาจากคลาส GamePiece ในขั้นนี้คลาสทั้งสองต่างจาก GamePiece แค่อักขระที่ใช้พิมพ์ | ||
+ | |||
+ | * '''b5''': ในส่วนนี้เราจะแก้คลาส Board ให้แสดงเบี้ยบนตารางเกมได้ สังเกตว่าเบี้ยจะแสดงด้วยอักขระที่เบี้ยเองระบุ (สังเกตว่าจะแสดงเป็น *, X, หรือ @ ตามชนิดของเบี้ย) | ||
+ | |||
+ | * '''b6''': เราจะแก้ให้ Robot เก็บเป้าหมาย (target) เป็น Player ที่จะพยายามเดินไปหา | ||
+ | |||
+ | '''หมายเหตุ:''' ตัวอย่างการเรียกใช้ <tt>__init__</tt> จากคลาสที่เรา inherite มา | ||
+ | |||
+ | class Robot(GamePiece): | ||
+ | def __init__(self,r,c,target): | ||
+ | GamePiece.__init__(self,r,c) | ||
+ | # ..... your other initialization code here | ||
+ | |||
+ | * '''b7''': ในส่วนนี้เราจะเขียนเมท็อด action บนคลาส Robot ที่ใช้บังคับให้หุ่นเดินไปในทางที่ใกล็ tager มากที่สุด |
รุ่นแก้ไขปัจจุบันเมื่อ 04:20, 1 กรกฎาคม 2556
ในส่วนแบบฝึกหัด b1 - b7 เราจะพัฒนาโปรแกรมสำหรับเกมหนีหุ่น ซึ่งมีรายละเอียดของเกมเป็นดังนี้
เกมหนีหุ่น Robots เป็นเกมคลาสสิก ทดลองเล่นบน browser ได้จาก[1] ในเกมนี้ ผู้เล่นจะเดินหนีหุ่น โดยที่หุ่นจะเคลื่อนที่ไปในทิศต่าง ๆ ที่จะเข้าใกล้ผู้เล่นให้ได้มากที่สุด ถ้าเคลื่อนที่ชนกันหุ่นก็จะตายไป
คลาส
คลาสที่เราจะเขียนคือคลาส Board, GamePiece, Player และ Robot
- คลาส Board จะเป็นคลาสหลักที่เก็บเบี้ย (GamePiece) ในเกมทั้งหมด และรับผิดชอบการแสดงผลตารางเกม
- คลาส GamePiece จะเป็นคลาสฐานของเบี้ยในเกม เบี้ยจะทราบตำแหน่งของตัวเอง และสามารถบอกกับ board ได้ว่าจะให้แสดงผลเป็นอะไร
- คลาส Player และ Robot จะ inherit มาจากคลาส GamePiece โดยมีการแสดงผลเป็น * สำหรับ player และ @ สำหรับ Robot
เป้าหมายของงานย่อยต่าง ๆ
รายละเอียดของ method ที่เขียนนั้น จะระบุใน doctest ของโจทย์แต่ละข้ออยู่แล้ว สำหรับหน้านี้จะอธิบายภาพรวมคร่าว ๆ เท่านั้น
- b1: ในข้อนี้เราจะเขียนคลาส Board ที่เก็บขนาดของตาราง และแสดงตารางว่าง ๆ ตามขนาดที่กำหนดไว้ตอนเริ่มต้นนั้น
- b2: ในส่วนนี้เราจะเขียนคลาส GamePiece ที่เก็บตำแหน่ง, คืนตำแหน่ง, และสามารถระบุอักขระที่ใช้สำหรับพิมพ์เบี้ยตนเองได้ โดยอักขระที่พิมพ์คือ 'X'
- b3: ในส่วนนี้เราจะเพิ่มให้คลาส Board สามารถเก็บรายการของ GamePiece ได้
- b4: เราจะเพิ่มคลาส Player และ Robot โดยให้ inherit มาจากคลาส GamePiece ในขั้นนี้คลาสทั้งสองต่างจาก GamePiece แค่อักขระที่ใช้พิมพ์
- b5: ในส่วนนี้เราจะแก้คลาส Board ให้แสดงเบี้ยบนตารางเกมได้ สังเกตว่าเบี้ยจะแสดงด้วยอักขระที่เบี้ยเองระบุ (สังเกตว่าจะแสดงเป็น *, X, หรือ @ ตามชนิดของเบี้ย)
- b6: เราจะแก้ให้ Robot เก็บเป้าหมาย (target) เป็น Player ที่จะพยายามเดินไปหา
หมายเหตุ: ตัวอย่างการเรียกใช้ __init__ จากคลาสที่เรา inherite มา
class Robot(GamePiece): def __init__(self,r,c,target): GamePiece.__init__(self,r,c) # ..... your other initialization code here
- b7: ในส่วนนี้เราจะเขียนเมท็อด action บนคลาส Robot ที่ใช้บังคับให้หุ่นเดินไปในทางที่ใกล็ tager มากที่สุด