ผลต่างระหว่างรุ่นของ "01204223/รายละเอียดเกี่ยวกับงานบอร์ด"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 31: แถว 31:
  
 
=== b6 ===
 
=== b6 ===
 +
เราจะแก้ให้ Robot เก็บเป้าหมาย (target) เป็น Player ที่จะพยายามเดินไปหา
  
ตัวอย่างการเรียกใช้ <tt>__init__</tt> จากคลาสที่เรา inherite มา
+
'''หมายเหตุ:''' ตัวอย่างการเรียกใช้ <tt>__init__</tt> จากคลาสที่เรา inherite มา
  
 
  class Robot(GamePiece):
 
  class Robot(GamePiece):

รุ่นแก้ไขเมื่อ 04:18, 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