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

จาก Theory Wiki
รุ่นแก้ไขเมื่อ 16:37, 25 พฤศจิกายน 2553 โดย Cardcaptor (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย 'ให้ไว้ ณ วันศุกร์ที่ 26 ธ.ค. 2552 ส่ง'''วันศุกร์ที่ 24 ธ.ค. 2553 …')
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)
ไปยังการนำทาง ไปยังการค้นหา

ให้ไว้ ณ วันศุกร์ที่ 26 ธ.ค. 2552 ส่งวันศุกร์ที่ 24 ธ.ค. 2553 เวลา 23.59 น. โดย zip ไฟล์ในไดเรกทอรี Tetris ส่งมาที่ pramook at gmail dot com

เริ่มต้น

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

ในเกมมีการใช้ font ชื่อ Bit Stream Vera Mono ซึ่งคุณสามารถ download ได้จากลิงค์นี้ http://www.gnome.org/fonts/

งานของคุณ

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 ฯลฯ

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