418587 ภาคปลาย 2552/การบ้าน 1

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

ให้ไว้ ณ วันอาทิตย์ที่ 7 ธ.ค. 2552 ส่งวันอาทิตย์ที่ 21 ธ.ค. 2552 เวลา 23.59 น. โดย zip ไฟล์ในไดเรกทอรี homework-01 ส่งมาที่ pramook at gmail dot com

เริ่มต้น

ให้ดาวน์โหลดซอร์สโค้ดของโปรแกรมเกม Tetris จาก http://theory.cpe.ku.ac.th/~pramook/418383/homework-01/Tetris.zip

ในเกมมีการใช้ font ชื่อ Bit Stream Vera Mono ซึ่งคุณสามารถ download ได้จากลิงค์นี้ http://theory.cpe.ku.ac.th/~pramook/418383/homework-01/VeraMono.ttf

คุณสามารถดู documentation ของระบบได้ที่นี่ http://theory.cpe.ku.ac.th/~pramook/418383/homework-01/doc/html

งานของคุณ

1. เพิ่มระดับความยาก

จงแก้ไขเกมให้ tetromino ตกลงมาเร็วขึ้นเมื่อผู้เล่นทำแถวเติมได้ 20 แถวแต่ละครั้ง พร้อมทั้งเพิ่มส่วนแสดงผลว่าตอนนี้ผู้เล่นอยู่้ที่ระดับความยากอะไร โดยให้ระดับความยากแรก (ตกช้า) เป็นระดับความยากที่ 1 แล้วระดับความยากถัดๆ ไปเป็นระดับความยากที่ 2, 3, 4, ฯลฯ

2. Pause Mode

จงแก้ไขโปรแกรมให้เมื่อผู้ใช้อยู่ใน Play Scene แล้วกด ESC แล้วเกมจะหยุดเล่นแล้วแสดงเมนูให้ผู้ใช้เลือก (1) เล่นต่อ (2) กลับไปไตเติ้ล หรือ (3) เลิกการทำงานของโปรแกรม โดยถ้าผู้ใช้เลือกเล่นต่อก็ให้กลับไปยัง mode เดิมก่อนผู้ใช้กด ESC

3. High Scores

จงแ้ก้ไขโปรแกรมให้เก็บคะแนนสูงสุดของการเล่นที่ผ่านๆ มาเอาไว้ 10 คะแนน โดยเก็บข้อมูลใส่ในไฟล์ชื่อ high-scores.txt และให้นำคะแนนสูงสุดมาแสดงทุกครั้งเมื่อ Game Over และให้เพิ่มตัวเลือกในเมนูที่ Title Scene ให้สามารถดูคะแนนสูงสุดที่ผ่านมาได้ด้วย

4. Time Attack Mode

ให้เพิ่ม Time Attack Mode โดยเป็น mode ที่ผู้เล่นสามารถเล่นเกมได้เรื่อยๆ จนทำแถวเติมได้ครบ 50 แถว (หรือจะกี่แถวก็ได้) โดยความยากไม่เพิ่มขึ้น ให้เกมจับเวลาที่ผู้เล่นเริ่มเล่นจนกระทั่งทำแถวเต็มได้ครบตามกำหนด และให้มี

  1. นาฬิกาแสดงเวลาที่ผู้เล่นใช้ไปแล้วอยู่ด้วยตอนเล่นเกม
  2. การเก็บเวลาที่น้อยที่สุด 10 อันดับแรกใส่ใน high-scores.txt
  3. เอาเวลาที่ดีที่สุดมาแสดงหลังจากผู้ใช้ทำแถวไ้ด้ครบหรือ Game Over ไปก่อนทำได้ครบ
  4. เพิ่มเมนูใน Title Scene ให้สามารถเรียกดูเวลาที่ดีที่สุดได้

5. ทำให้เกมสวยงาม

เปลี่ยนหน้า Title, หน้า Game Over, หน้าจอระหว่างเล่นเกม, และวิธีแสดงแถวที่เต็มให้สวยงาม โดยอาจใช้รูปภาพแทน block ฯลฯ

ขอให้คุณใช้ความสามารถทางศิลปะให้เต็มที่