BÀI TẬP LỚN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ĐỀ TÀI: XÂY DỰNG MỘT GAME NHẬP VAI SIMPLE RPG Giáo viên hướng dẫn: ThS. Nguyễn Mạnh Tuấn Mã lớp: 124159 - Nhóm: 14 Hà Nội – 5/2021 MỤC LỤC MỤC LỤC 1 DANH MỤC HÌNH ẢNH 3 LỜI NÓI ĐẦU 4 1. Lý do chọn và tầm quan trọng của đề tài 4 2. Mô tả đề tài 4 3. Quá Trình Tiếp Cận 4 PHÂN CÔNG THÀNH VIÊN TRONG NHÓM 5 CHƯƠNG 1. KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN 6 1.1 Miêu tả yêu cầu bài toán 6 1.2 Biểu đồ use case 6 1.2.1 Biểu đồ use case tổng quan 6 1.2.2 Biểu đồ use case phân rã mức 2 7 1.3 Đặc Tả Use Case 8 CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ BÀI TOÁN 10 2.1 Biểu đồ trình tự 10 2.2 Biểu đồ gói và biểu đồ lớp 12 2.2.1 Tổng Quát gói Gui, Manager, Map, Weapons 12 2.2.2 Tổng quát gói Actor 13 2.2.3 Biểu đồ lớp cụ thể từng phần 15 2.3 Thiết kế chi tiết lớp 16 CHƯƠNG 3. CÔNG NGHỆ VÀ THUẬT TOÁN SỬDỤNG 18 3.1 Công Nghệ 18 3.2 Kiến Thức 18 3.3 Thuật Toán 18 CHƯƠNG 4. XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA 19 4.1 Kết quả chương trình minh họa 19 4.2 Giao diện chương trình 19 4.2.1 Giao diện chính 20 4.2.2 Giao diện dừng trò chơi 23 4.2.3 Giao diện chiến thắng 23 4.2.4 Giao diện xử thua cuộc 24 4.3 Kiểm thử các chức năng đã thực hiện 24 4.4 Kết luận 27 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 28 1. Những mặt đã đạt được 28 2. Những mặt chưa đạt được 28 3. Hướng phát triển 28 TÀI LIỆU THAM KHẢO 29 DANH MỤC HÌNH ẢNH Hình 1 : Biểu đồ tuần tự 7 Hình 2 : Biểu đồ lớp tổng quát 8 Hình 3 : Sơ đồ lớp tổng quát gói GUI, Manager, Map, Weapons 8 Hình 4 : Sơ đồ lớp tổng quát 10 Hình 5 : Giao diện chính 15 Hình 6 : Giao diện hướng dẫn 16 Hình 7 : Giao diện màn giới thiệu 17 Hình 8 : Giao diện map cụ thể 17 Hình 9 : Thanh chỉ số của mỗi nhân vật 18 Hình 10 : Giao diện dừng trò chơi 18 Hình 11 : Giao diện chiến thắng 19 Hình 12 : Giao diện thua cuộc 19 LỜI NÓI ĐẦU 1. Lý do chọn và tầm quan trọng của đề tài Khi mới bắt đầu làm quen với lập trình hướng đối tượng thì cách tiếp cận nhanh chóng mà hiệu quả nhất là đi vào các ví dụ mà ở đó ranh giới giữa các đối tượng là rõ ràng. Như đã biết, game nhập vai không phải là khuynh hướng game mới mẻ tuy nhiên đây vẫn luôn là thể loại game được nhiều người yêu thích. Chúng em cảm thấy đây là một trò chơi rất đỗi quen thuộc và cuốn hút, đồng thời game nhập vai sẽ là một ví dụ tốt để từng thành viên trong nhóm có được cái nhìn rõ hơn về môn học nói riêng và lập trình hướng đối tượng nói chung. Chính vì lý do này, nhóm chúng em chọn đề tài “Xây dựng một game nhập vai Simple RPG” để thực hiện chương trình Escape-Ghost demo cho bài tập lớn môn học. Chương trình được viết hoàn toàn bởi ngôn ngữ lập trình Java – ngôn ngữ lập trình thuần đối tượng. Bởi do mới làm quen với ngôn ngữ Java cũng như việc xử lý trong lập trình hướng đối tượng nên trong chương trình còn hạn chế là việc không tránh khỏi. Vậy nên nhóm chúng em mong có được nhận xét từ phía thầy về đề tài của nhóm để có những khắc phục. 2. Mô tả đề tài Game nhập vai ESCAPE-GHOST gồm có: • Menu: hiển thị cho phép người chơi lựa chọn thông tin ( Xem hướng dẫn, chọn chế độ chơi,…) • Người chơi (Player): Game có 2 người chơi hỗ trợ nhau trong quá trình chơi • Kẻ địch (Enemy): có khả năng gây sát thương cho player, tấn công và di chuyễn ngẫu nhiên trên bản đồ • Bản đồ (Map): bao gồm đường đi, đất, nước,… 3. Quá Trình Tiếp Cận Chúng em lựa chọn đề tài dựa trên sở thích và khả năng của các thành viên trong nhóm. Quá trình hoàn thiện đề tài kéo dài trong vòng 3 tháng bao gồm cả việc lên ý tưởng, thảo luận để lựa chọn đề tài.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG & BÀI TẬP LỚN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ĐỀ TÀI: XÂY DỰNG MỘT GAME NHẬP VAI SIMPLE RPG Giáo viên hướng dẫn: ThS Nguyễn Mạnh Tuấn Mã lớp: 124159 - Nhóm: 14 Hà Nội – 5/2021 MỤC LỤC MỤC LỤC DANH MỤC HÌNH ẢNH LỜI NÓI ĐẦU Lý chọn tầm quan trọng đề tài Mô tả đề tài Quá Trình Tiếp Cận PHÂN CƠNG THÀNH VIÊN TRONG NHĨM CHƯƠNG KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN 1.1 Miêu tả yêu cầu toán 1.2 Biểu đồ use case 1.2.1 Biểu đồ use case tổng quan 1.2.2 Biểu đồ use case phân rã mức 1.3 Đặc Tả Use Case CHƯƠNG 2.1 PHÂN TÍCH THIẾT KẾ BÀI TỐN 10 Biểu đồ trình tự 10 2.2 Biểu đồ gói biểu đồ lớp 12 2.2.1 Tổng Quát gói Gui, Manager, Map, Weapons 12 2.2.2 Tổng quát gói Actor 13 2.2.3 Biểu đồ lớp cụ thể phần 15 2.3 Thiết kế chi tiết lớp 16 CHƯƠNG CÔNG NGHỆ VÀ THUẬT TỐN SỬDỤNG 18 3.1 Cơng Nghệ 18 3.2 Kiến Thức 18 3.3 Thuật Toán 18 CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA 19 4.1 Kết chương trình minh họa 19 4.2 Giao diện chương trình 19 4.2.1 4.2.2 4.2.3 Giao diện 20 Giao diện dừng trò chơi 23 Giao diện chiến thắng 23 4.2.4 Giao diện xử thua 24 4.3 Kiểm thử chức thực 24 4.4 Kết luận 27 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 28 Những mặt đạt 28 Những mặt chưa đạt 28 Hướng phát triển 28 TÀI LIỆU THAM KHẢO 29 IT3100 – Lập trình hướng đối tượng DANH MỤC HÌNH ẢNH Hình : Biểu đồ Hình : Biểu đồ lớp tổng quát Hình : Sơ đồ lớp tổng quát gói GUI, Manager, Map, Weapons Hình : Sơ đồ lớp tổng quát 10 Hình : Giao diện 15 Hình : Giao diện hướng dẫn 16 Hình : Giao diện giới thiệu 17 Hình : Giao diện map cụ thể 17 Hình : Thanh số nhân vật 18 Hình 10 : Giao diện dừng trò chơi 18 Hình 11 : Giao diện chiến thắng 19 Hình 12 : Giao diện thua 19 Nhóm 14 LỜI NĨI ĐẦU Lý chọn tầm quan trọng đề tài Khi bắt đầu làm quen với lập trình hướng đối tượng cách tiếp cận nhanh chóng mà hiệu vào ví dụ mà ranh giới đối tượng rõ ràng Như biết, game nhập vai khuynh hướng game mẻ nhiên thể loại game nhiều người yêu thích Chúng em cảm thấy trò chơi đỗi quen thuộc hút, đồng thời game nhập vai ví dụ tốt để thành viên nhóm có nhìn rõ mơn học nói riêng lập trình hướng đối tượng nói chung Chính lý này, nhóm chúng em chọn đề tài “Xây dựng game nhập vai Simple RPG” để thực chương trình Escape-Ghost demo cho tập lớn mơn học Chương trình viết hồn tồn ngơn ngữ lập trình Java – ngơn ngữ lập trình đối tượng Bởi làm quen với ngôn ngữ Java việc xử lý lập trình hướng đối tượng nên chương trình cịn hạn chế việc khơng tránh khỏi Vậy nên nhóm chúng em mong có nhận xét từ phía thầy đề tài nhóm để có khắc phục Mơ tả đề tài Game nhập vai ESCAPE-GHOST gồm có: • Menu: hiển thị cho phép người chơi lựa chọn thông tin ( Xem hướng dẫn, chọn chế độ chơi,…) • Người chơi (Player): Game có người chơi hỗ trợ q trình chơi • Kẻ địch (Enemy): có khả gây sát thương cho player, công di chuyễn ngẫu nhiên đồ • Bản đồ (Map): bao gồm đường đi, đất, nước,… Quá Trình Tiếp Cận Chúng em lựa chọn đề tài dựa sở thích khả thành viên nhóm Q trình hồn thiện đề tài kéo dài vòng tháng bao gồm việc lên ý tưởng, thảo luận để lựa chọn đề tài PHÂN CÔNG THÀNH VIÊN TRONG NHÓM CHƯƠNG KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN 1.1 Miêu tả yêu cầu toán - Người chơi điều khiển nhiều nhân vật đồ lưu cấu trúc liệu (trên đồ có quái vật di chuyển được) - Các nhân vật người chơi điều khiển quái vật có số xác định tình trạng thể lực (ví dụ HP, MP, Attack, Defense, Speed, ) Người chơi công quái vật sử dụng kỹ đặc biệt Tương tự, qi vật tìm đến cơng người chơi - Người chơi di chuyển qua lại đồ khác (ví dụ vào vùng M0, M1, M2, đồ) đến kết thúc trị chơi (ví dụ vào vùng END đồ) • Đáp ứng u cầu tốn bao gồm: - Thể đồ đối tượng đồ giao diện đồ họa - Điều khiển nhân vật di chuyển - Có thao tác để cơng qi vật - Qi vật có khả di chuyển công người chơi (quái vật chia thành nhiều loại: cơng gần, loại cơng / bắn đạn từ xa, boss,…) - Game có hai chế độ chơi dễ / khó theo mức độ “thông minh”, “di chuyển nhanh” “lượng máu” quái vật 1.2 Biểu đồ use case Biểu đồ use case tổng quan - Tác nhân : người chơi 1, người chơi - Các use case người chơi • Bắt đầu game • Chơi game • Dừng game • Thốt Game Hình Use-case Biểu đồ use case phân rã mức Hình Use case “Bắt đầu game” phân rã Hình Use case “chơi game” phân rã người chơi Hình Use case “chơi game” phân rã người chơi 1.3 Đặc Tả Use Case Mã UC UC01 Tên Tác nhân Người dung chương trình Điều kiện trước Khơng có Luồng thực thi No Thực Hành động Player Mở trò chơi System Player Hiện thị giao diện chọn chế độ chơi Chọn chế độ System System Khởi tạo game với chế độ chọn Hiển thị giao diện chơi Khơng có UC02 Tên Điều kiện sau Mã UC Tác nhân Người dung chương trình Điều kiện trước Tác nhân bắt đầu game Luồng thực thi No Thực Hành động Player1 Chơi game System Player1 System System Hiển thị giao diện chơi Di chuyển cơng Cập nhật vị trí nhân vật Cập nhật quái vật bị bắn trúng Khơng có Điều kiện sau Mã UC UC03 Tên Bắt đầu game Chơi Game (Player 1) Chơi game (Player 2) 2.2.3 Biểu đồ lớp cụ thể phần 2.3 Thiết kế chi tiết lớp • Các lớp quan trọng: MyMap, Container, Ghost, Manager, Actor, MainGame • Mơ tả mẫu CRC: MyMap Tạo đồ, quái vật Setup vị trí số lượng quái MainGame Dog Hunter Container Hiển thị giao diện điều khiển cho người chơi ( Menu, tutorial, end, maingame,…) MainGame Tutorial Menu End Ghost Thiết lập số: HP, MP, Speed, atk,…các image ứng với trạng thái di chuyển Thiết lập di chuyển cho nhân vật Ghost MainGame LongRange Manager Xử lí va chạm, tương tác với người chơi Xử lí tương tác nhân vật với địa hình, quái vật nhân vật khác Bullet Dog Hunter MainGame Actor Tạo thuộc tính cho nhân vật quái như: HP, Max_HP, MP, Max_MP, defaultSpeed, speed, atk, defense, status, dead, type,… MainGame LongRange ShortRange MainGame Hiển thị nhân vật, quái vật, map,… MyMap hình chơi game Monster Thiết lập chức phím tắt Hunter Kiểm tra trạng thái nhân vật, quái MyAdapter vật Manager (dead, live) Dog Ghost CHƯƠNG 3.1 Cơng Nghệ - 3.2 CƠNG NGHỆ VÀ THUẬT TỐN SỬDỤNG Mơi trường lập trình : Eclipse Phần mềm quản lý mã nguồn : Github Kiến Thức Bài tập lớn gồm lượng lớn kiến thức phân tích thiết kế hướng đối tượng Cụ thể sau: - Mơ hình lập trình: hướng đối tượng - Các nguyên lý lập trình hướng đối tượng: đóng gói, kế thừa, đa hình, interface,… - Ngơn ngữ: ngơn ngữ lập trình hướng đối tượng Java - Cơ sở liệu thiết kế sở liệu cho game 3.3 Thuật Tốn CHƯƠNG 4.1 XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA Kết chương trình minh họa Nhìn chung sản phẩm minh họa thành cơng thực hầu hết yêu cầu đưa ra: - Thể đồ đối tượng đồ giao diện đồ họa - Điều khiển nhân vật di chuyển - Có người chơi với phím di chuyển kỹ khác : • Người chơi có khả di chuyển cơng qi súng • Người chơi có khả đốt quái phạm vi gần, dịch chuyển đến vị trí người chơi hồi máu cho - Quái vật có khả di chuyển cơng người chơi - Game có hai chế độ dễ/khó theo mức độ “thơng minh”, “di chuyển nhanh” “lượng máu” quái vật - Có thể dừng game để tiếp tục sau khoảng thời gian Game nhập vai Escape Ghost có chức sau : - Giao diện vào game có Tutorial giúp người chơi biết kỹ người chơi hiểu cách thức để chiến thắng game - Khi vào game người chơi chọn chế độ chơi : • Play Easy : chế độ người chơi công người chơi 2, quái vật có số thấp • Play Hard : chế độ người chơi cơng người chơi đồng thời tang số quái vật - Người chơi dừng game với phím P tiếp tục game sau nhấn nút Space - Người chơi vượt qua chơi cách vào bụi cỏ bên phải hình sau tiêu diệt quái vật - Nhân vật điều khiển di chuyển phím ↓ ↑ ← → cơng quái vật phím Enter - Nhân vật điều khiển di chuyển phím W S A D có kỹ thiêu đốt quái xung quanh, dung phím B để dịch chuyển đến nhân vật hồi máu phím N - Người chơi bị xử thua sau nhân vật hết lượng máu (HP) 4.2 Giao diện chương trình 4.2.1 Giao diện Hình : Giao diện - Trên giao diện game gồm có chức : TUTORIAL : Xem hướng dẫn game Hình : Giao diện hướng dẫn PLAY EASY : Chơi chế độ dễ PLAY HARD : Chơi chế độ khó Dù chơi chế độ người chơi bắt đầu chơi khơng có qi vật để làm quen với game ( di chuyển sử dụng skill nhân vật) Hình : Giao diện giới thiệu Sau vượt qua giới thiệu giao diện game thay đổi vào giao diện map Hình : Giao diện map cụ thể Trong giới thiệu kể chơi thông số nhân vật nhân vật nêu rõ hình Hình : Thanh số nhân vật Trong Ghost HP lượng máu nhân vật Ghost MP mana dùng để công nhân vật ( hồi lại đạn trúng vật cản map) Ghost-ATK số công nhân vật Monster HP lượng máu nhân vật Monster MP lương mana để sử dụng kỹ nhân vật Monster-ATK số dame đốt quái xung quanh giây nhân vật Monster AT-Ranger phạm vi đốt quái vật nhân vật 4.2.2 Giao diện dừng trị chơi Hình 10 : Giao diện dừng trò chơi 4.2.3 Giao diện chiến thắng Hình 11 : Giao diện chiến thắng 4.2.4 Giao diện xử thua Hình 12 : Giao diện thua 4.3 Kiểm thử chức thực Các chức xây dựng chương trình : Bắt đầu game Di chuyển nhân vật Tân công (đối với Player 1) Kỹ nhân vật ( Gồm : dịch chuyển đến nhân vật 1, hồi máu cho nhân vật 1, đốt quái xung quanh) Quái công : Quái vật tầm gần Quái vật tầm xa Chuyển map Dừng Game Thua game Bảng : Kết kiểm thử chức Bắt đầu game STT input Chọn TUTORIAL hình Chọn chế độ Play EASY hình Chon chế độ Play Hard hình output Exception Hiển thị giao diện Không xử lý hướng dân game Hiển thị giao diện game Không xử lý chế độ dễ Kết OK Hiển thị giao diện game Không xử lý chế độ dễ OK OK Bảng : Kết kiểm thử chức di chuyển đói với nhân vật STT input Nhấn ↑ nhân vật W nhân vật Nhấn ↓ nhân vật S nhân vật Nhấn ← nhân vật A nhân vật Nhấn → nhân vật D nhân vật output Exception Player di chuyển lên Không xử lý phía Kết OK Player di chuyển xuống Khơng xử lý phía OK Player di chuyển sang trái Không xử lý OK Player di chuyển sang Không xử lý phải OK Bảng : Tấn công Player STT input output Exception Kết Nhấn Enter Cập nhật lượng máu Không xử lý quái vật lượng máu thấp quái vật biến khỏi đồ (Lương MP giảm sau lần công) FAIL Bảng : Kỹ Player STT input output Dịch chuyển đến Cập nhật vị trí nhân nhân vật vật đồ trùng với nhân vật (Tiêu hao 10 MP) Hồi máu cho nhân Lượng máu nhân vật ( Phím N) vật công cụ tăng 100 (Tiêu hao 20 MP) Đốt quái tầm Quái vật bị trừ lượng đốt xung quanh máu tương ứng số lần đốt ( Hp/s) Exception Không xử lý Kết FAIL Không xử lý OK Không xử lý OK Exception Không xử lý Kết OK Không xử lý OK Không xử lý OK Bảng : Quái công STT input Quái tầm gần cạnh nhân vật Hồi máu cho nhân vật ( Phím N) output Lượng máu nhân vật bị trừ 20HP/s Lượng máu nhân vật công cụ tăng 100 ( Ti Đốt quái tầm Quái vật bị trừ lượng đốt xung quanh máu tương ứng số lần đốt ( Hp/s) Bảng : Chuyển map STT input output Cả nhân vật Giao diện chuyển đến bụi cỏ bên phải map sau hình Exception Kết Chưa tiêu diệt OK hết quái vật sau di chuyển đến xảy lỗi Bảng : Dừng tiếp tục game STT input Người chơi nhấn phím P để dừng game lúc chơi Người chơi nhấn Space để tiếp tục chơi game (Sau nhấn P) output Exception Hiển thị “Press Space to Không xử lý play” đồng thời dừng hoạt động game Kết OK Hiển thị lại giao diện Không xử lý dở lần nhấn P lúc trước OK Bảng : Thua game STT 4.4 - input output Exception Một hai nhân Hiển thị giao diện dừng Khơng xử lý vật có Hp trị chơi đưa lựa chọn cho người chơi lựa chọn “Go Menu” “Again” Kết OK Kết luận Các chức thử nghiệm ổn định không gặp lỗi hay phải xử lý ngoại lệ Tuy nhiên, q trình thử nghiệm mang tính chủ quan lớn nên nhiều hạn chế (các lỗi chưa kiểm thử, kiểm thử không gặp lỗi sử dụng thật gặp lỗi, v.v ) KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Những mặt đạt - Hiểu làm viêc Cơ hội làm quen với lập trình game bản, xây dựng chương trình cụ thể Game thiết kế với đồ họa dễ nhìn cách chơi đơn giản khơng gặp nhiểu lỗi tích hợp nhiều tính thỏa mãn tiêu chí đề Những mặt chưa đạt Hướng phát triển TÀI LIỆU THAM KHẢO [1] Lập trình hướng đối tượng – Bài giảng ThS Nguyễn Mạnh Tuấn [2] stackoverflow.com [3] [4] [5] [6] ... Thanh số nhân vật 18 Hình 10 : Giao diện dừng trò chơi 18 Hình 11 : Giao diện chiến thắng 19 Hình 12 : Giao diện thua 19 Nhóm 14 LỜI NĨI ĐẦU Lý chọn tầm... 18 3.3 Thuật Toán 18 CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA 19 4 .1 Kết chương trình minh họa 19 4.2 Giao diện chương trình 19 4.2 .1 4.2.2 4.2.3 Giao diện ... tượng rõ ràng Như biết, game nhập vai khuynh hướng game mẻ nhiên thể loại game nhiều người yêu thích Chúng em cảm thấy trò chơi đỗi quen thuộc hút, đồng thời game nhập vai ví dụ tốt để thành viên