Oop lab/oop intro 1

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
หน้านี้เป็นส่วนหนึ่งของ oop lab

Counter

ให้ทดลองเขียนคลาส Counter พร้อมกับ JUnit Test Case ตามในคลิป จากนั้นให้เพิ่มคลาสดังกล่าวให้รองรับเมท็อดต่าง ๆ เพิ่มเติม โดยก่อนที่จะเขียนเมท็อดเหล่านี้ ให้เพิ่ม TestCase ใน JUnit ก่อนด้วย

1. เมท็อด decrease - ลดค่า counter

2. เพิ่มเมท็อด resetToInit() -- เมท็อด reset ที่เราเขียน ปรับค่า counter ให้กลายเป็น 0, แต่เมท็อด resetToInit จะปรับ counter ให้กลับมามีค่าเหมือนตอนที่เริ่ม init ครั้งแรก ใน constructor

3. ให้เพิ่มความสามารถในการปรับขนาดของการเพิ่มและลดค่า counter โดยให้เพิ่ม constructor Counter(int initValue, int stepSize) โดยค่า stepSize แทนค่าที่จะปรับ counter แต่ละครั้ง เช่น ถ้า stepSize = 3 เมื่อเราสั่ง increase ค่า counter จะเพิ่มขึ้น 3, เมื่อเราสั่ง decrease ค่า counter จะลดลง 3 เป็นต้น

PlayerHealth

เราจะเขียนคลาส PlayerHeath เพื่อจัดการกับสถานะพลังชีวิตของผู้ใช้ โดยมีรายละเอียดดังนี้

  • พลังชีวิต: ค่าพลังชีวิตของผู้จะมีค่าเป็นจำนวนเต็ม มีค่าระหว่าง 100 ถึง 0 เมื่อพลังเหลือ 0 ผู้ใช้จะตาย
    • เมท็อด isDead() และ isAlive() คืนค่า boolean ว่าผู้ใช้ยังมีชีวิตอยู่หรือไม่
  • เกราะ: ผู้ใช้จะมีสถานะเพิ่มเติมว่าใส่เกราะหรือไม่ เริ่มต้นไม่มีเกราะ
    • เมท็อด void wearArmor() เมื่อเรียกจะทำให้ผู้ใช้มีเกราะ
    • เมท็อด void removeArmor() เมื่อเรียกจะทำให้ผู้ใช้ไม่มีเกราะ
    • เมท็อด boolean isOnArmor() คืนค่า true/false แทนสถานะว่ามีเกราะหรือไม่
  • getHit: ผู้ใช้สามารถโดนทำร้ายได้ และพลังจะลด เมท็อดที่เรียกเมื่อถูกทำร้ายคือ getHit
    • พลังจะลดลง 10 หน่วย ถ้าไม่ใส่เกราะ ถ้าใส่เกราะจะลดลง 3 หน่วย
    • พลังจะไม่น้อยกว่า 0 หน่วย
  • การรักษา:
    • heal: เมื่อเรียกเมท็อด heal() พลังเพิ่มขึ้น 5 หน่วย
    • superHeal: เมื่อเรียกเมท็อด superHeal() พลังเพิ่มขึ้น 7 หน่วย
    • พลังจะไม่เกิน 100 หน่วย