Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
2,06 MB
Nội dung
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 MƠN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ĐỀ TÀI: Xây dựng game Battle Ship Nhóm sinh viên thực hiện: Tên sinh viên Đinh Duy Anh Đỗ Vũ Tùng Lâm Nguyễn Đắc Hoàng Anh Cao Thành Huy Nguyễn Viết Toàn Giáo viên hướng dẫn: ThS Nguyễn Mạnh Tuấn TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng Hà Nội, tháng năm 2022 MỤC LỤC MỤC LỤC LỜI NÓI ĐẦU 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 Mơ tả u cầu tố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 PHÂN TÍCH THIẾT KẾ BÀI TỐN 11 2.1 Thiết kế Cơ sở liệu Cấu trúc tệp liệu 11 2.2 Biểu đồ trình tự 11 2.3 Biểu đồ lớp 13 2.4 Thiết kế chi tiết lớp 18 CHƯƠNG THUẬT TỐN SỬ DỤNG 24 3.1 Cơng nghệ sử dụng 24 3.2 Các thuật toán sử dụng 24 CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA 25 4.1 Kết chương trình minh họa 25 4.2 Giao diện chương trình 25 4.3 Kiểm thử chức 28 4.3.1 Kiểm thử cho chức 28 4.3.2 Kiểm thử cho chức 29 4.3.3 Kiểm thử cho chức 29 4.3.4 Kiểm thử cho chức 29 4.3.5 Kết luận 29 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 30 TÀI LIỆU THAM KHẢO 31 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng 20212 PHỤ LỤC 32 LỜI NĨI ĐẦU Trị chơi bắn tàu, hay gọi BattleShip trò chơi thú vị, đồng thời có cách chơi đơn giản, dễ hiểu để đạt chiến thắng việc dễ dàng Ngay tiếp xúc với đề tài này, chúng em nhận thấy đề tài phù hợp để triển khai kiến thức học lập trình hướng đối tượng, tạo game giải trí bổ ích dành cho bạn sau học căng thẳng Game BattleShip tựa game không nặng mặt đồ họa đồ họa, hiệu ứng mà chủ yếu tập trung vào nội dung, thuật toán, cách tổ chức Class Java Nhóm làm game cố gắng áp dụng kiến thức lập trình hướng đối tượng cấu trúc liệu, thuật tốn để hồn thành tập lớn Với yêu cầu toán, chúng em cố gắng nỗ lực suy nghĩ hình thành đoạn chương trình tốt để phục vụ nhu cầu thực tế Sau nhiều tuần học tập, trao đổi làm việc, chúng em hồn thành chương trình báo cáo hướng dẫn sử dụng chương trình Nhóm chúng em xin chân thành cảm ơn thầy giáo Nguyễn Mạnh Tuấn, thầy cô Trường Công nghệ thông tin truyền thông, Đại học Bách Khoa Hà Nội đưa đề tài thú vị, hấp dẫn hữu ích giúp chúng em hoàn thành đề tài TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng PHÂN CƠNG THÀNH VIÊN TRONG NHÓM Họ tên Đinh Duy Anh Đỗ Vũ Tùng Lâm Nguyễn Đắc Hoàng Anh Cao Thành Huy Nguyễn Viết Toàn TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng CHƯƠNG KHẢO SÁT, ĐẶC TẢ U CẦU BÀI TỐN 1.1 Mơ tả u cầu tốn Xây dựng trị chơi bắn tàu, cho phép người chơi chơi với máy, bao gồm chức chính: + Cho phép người chơi lựa chọn tàu chiến, xếp đội hình (mỗi loại tàu chiến có kích thước điểm số khác nhau) + Đánh dấu tọa độ bắn trật , bắn trúng lượt chơi + Lưu lại kết điểm số đạt (điểm số số lần dự đoán người chơi thực hiện) lịch sử trận chiến (các bước dự đoán người chơi kết bắn trúng / bắn trượt) + Xây dựng thuật toán cho máy chơi hai mức độ dễ khó + Cấu hình game: tắt bật âm / âm nhạc / reset điểm số + Giới thiệu luật chơi 1.2 Biểu đồ use case 1.2.1 Biểu đồ use case tổng quan - Tác nhân: Player - Các usecase: + Start + Prepare + Fight + End Game TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng 1.2.2 Biểu đồ use case phân rã mức Phân rã use case Start, ta use case: + Play + Set Sound + Set Mode + View Rule + View High Score + Exit Phân rã use case Prepare, ta use case + Select Ship + Place Ship TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng Phân tích use case Fight, ta use case: + Shoot + Information 1.3 Đặc tả use case - Đặc tả use case Start Mã UC (UC #) Tác nhân Điều kiện trước Luồng thực thi No 10 11 12 Điều kiện sau TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng - Đặc tả use case Prepare Mã UC (UC #) Tác nhân Điều kiện trước Luồng thực thi No 10 Luồng thực thi mở rộng 1a 1b 1c 2a 2b 2c Điều kiện sau - Đặc tả use case Fight Mã UC (UC #) Tác nhân Điều kiện trước Luồng thực thi TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng No 10 11 12 13 Luồng thực thi mở rộng 4a 4b 5a 5b 6a 6b TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng Là lớp thực nhiệm vụ hiển thị Menu với lựa chọn cho người chơi, bao gồm: bắt đầu chơi, bật/tắt âm thanh, chọn chế độ chơi (khó/dễ), xem điểm cao, khỏi trị chơi, hướng dẫn chơi Lớp Menu có JFrame để chứa hình lựa chọn cho người chơi, JFrame bao gồm JLabel menu1 chứa button tương ứng với chức để người chơi sử dụng + PLAY: khởi tạo đối tượng Creator, hình xếp tàu để người chơi xếp đội hình + EASY/HARD: chọn chế độ khó/ dễ (nếu button hiển thị easy -> chế độ dễ, hard -> chế độ khó) + GAME RULE: hiển thị hướng dẫn luật chơi + HIGHSCORE: hiển thị lịch sử điểm cao + SOUND OFF/ON: bật/ tắt âm + EXIT: khỏi chương trình + Lớp MainMenu bao gồm đối tượng lớp Creator, đối tượng khởi tạo người chơi bấm vào nút Play đối tượng lớp HighScore, đối tượng khởi tạo ấn vào nút HighScore + Biến clip với kiểu liệu Clip lớp MainMenu có chức phát âm trị chơi, biến static isPlaySound có kiểu boolean, giúp chương trình nhận biết âm bật hay tắt + Lớp có phương thức khởi tạo với tham số truyền vào biến (w, h, playSound) với w, h chiều dài, chiều rộng frame, playSound biến boolean giúp nhận biết âm bật hay tắt (isPlaySound = playSound) Trong phương thức khởi tạo này, hình menu1 khởi tạo, đồng thời âm (clip) khởi tạo người chơi bật âm + Phương thức loadImage() với tham số truyền vào (s,w,h): trả hình ảnh lấy từ đường dẫn s ép kích thước sang (w,h) + Phương thức playSound() dùng để khởi tạo đối tượng clip để phát âm với tham số truyền vào chuỗi ký tự thể đường dẫn đến file + Các button class MaiMenu cài đặt kiện (actionListener) + Phương thức actionPerformed() xử lý kiện button Đối với button Play, người chơi click vào đối tượng lớp Creator khởi tạo, chương trình chuyển qua phần sếp tàu chiến; cịn với button HighScore, đối tượng HighScore khởi tạo, chương trình chuyển qua phần hiển thị lịch sử điểm cao; button sound dùng để bật/ tắt âm thanh; button gameMode để chọn chế độ khó/ dễ; với button gameRule người chơi ấn vào label showRules set visible ấn lại vào button gameRule label showRules xóa bỏ; cuối ấn vào button Exit khỏi chương trình Lớp HighScore Lớp HighScore có phương thức khởi tạo với tham số truyền vào w, h playSound, dùng để add frame button reset (xóa lịch sử điểm cao) back (quay menu chính) + Phương thức resetHighScore(): dùng để sửa file high.txt để giá trị + Phương thức showScore(): đọc file high.txt hiển thị lịch sử điểm lần điểm cao + Phương thức loadImage(): với tham số truyền vào (s,w,h): trả hình ảnh lấy từ đường dẫn s ép kích thước sang (w,h) 19 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng + Phương thức playSound() dùng để khởi tạo đối tượng clip để phát âm với tham số truyền vào chuỗi ký tự thể đường dẫn đến file Lớp Creator Lớp Creactor kế thừa lớp JLabel, có chức hiển thị tàu hiển thị hình ảnh đồ để người chơi xếp tàu lên Lớp Creator bao gồm: + JFrame (frame) dùng để chứa Label button để hiển thị lên hình Các Label bao gồm: shipContainer dùng để chứa hình ảnh tàu, đồ (map) Các button bao gồm back (quay trở lại hình menu lớp MainMenu), auto (tự động xếp tàu đồ theo thuật tốn cài sẵn), ready (chuyển sang hình PlayGame người chơi xếp hết tàu lên map) + Mảng ship[] mảng đối tượng lớp Ship, dùng để lưu hình ảnh tàu với kích thước khác để dán lên label shipContainer Mảng lengShip[] lưu chiều dài cảu tàu + Các biến static: X,Y dùng để bắt tọa độ chuột kéo thả tàu lên đồ xLeft, xRight, yUp, yDown dùng để lưu tọa độ góc map frame xStart, yStart dùng để lưu tọa độ ban đầu tàu người chơi bắt đầu tương tác chuột với tàu Mảng boolean M[][] dùng để đánh dấu ô map có tàu hay khơng Mảng xS[], yS[] dùng để lưu tọa độ ban đầu tàu (là Label) chưa kéo thả Mảng boolean isNgang[] dùng để kiểm tra xem tàu nằm ngang hay dọc + Biến boolean isHard để lưu độ khó trị chơi (true khó false dễ) isPlaySound dùng để kiểm tra xem âm bật hay tắt + Mảng ArrayList A, B dùng để mã hóa tọa độ điểm bắt tàu Mảng A B giúp chương trình nhận biết tàu nằm ô đồ map + Biến clip với kiểu liệu Clip dùng để phát âm trò chơi + Lớp Creator có phương thức khởi tạo với tham số truyền vào là: w, h dùng để cài đặt kích thước cho frame; gameMode chế độ chơi (khó hay dễ); playSound để kiểm tra âm bật hay tắt Trong phương thức khởi tạo này, thuộc tính lớp Creator khởi tạo, Label button add vào + Phương thức init() khởi tạo mảng M, isNgang xS, yS Mảng M ban đầu phần tử fasle (chưa có tàu map), mảng isNgang ban đầu có phần tử true, tức mặc định ban đầu tàu ngang + Phương thức build() gọi từ phương thức khởi tạo, dùng để add button, add kiện (ActionListener) vào button, add label shipContainer để chứa hình ảnh tàu + Phương thức loadImage() với tham số truyền vào (s,w,h): trả hình ảnh lấy từ đường dẫn s ép kích thước sang (w,h) + Phương thức put() với kiểu trả boolean, trả true đặt tàu vào vị trí thành cơng, false đặt tàu không thành công Các tham số truyền vào phương thức bao gồm: tmp số tàu mảng ship[], x,y tọa độ để đặt tàu, i j số hàng ngang – hàng dọc tọa độ đặt tàu đồ 10x10, isNgang dùng để kiểm tra xem tàu ngang hay dọc + Phương thức putForRandom() tương tự phương thức put(), phương thức dùng để đặt tàu lên đồ sử dụng thuật toán random Phương thức có thêm tham số truyền vào isForPlayer, dùng để nhận biết hàm random dùng để xếp tàu cho người chơi hay cho máy leng để xác định chiều dài tàu Nếu 20 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng dùng cho người chơi, mảng A mã hóa theo vị trí tàu đặt, dùng cho máy, mảng B mã hóa + Phương thức setRandom() dùng để xếp ngẫu nhiên tàu lên đồ theo thứ tự mảng ship[] Phương thức lấy tàu từ mảng ship[], chọn ngẫu nhiên ô (i, j) đặt thử tàu vào phương thức putForRandom() Phương thức kết thúc thực tàu nằm đồ Tham số truyền vào isForPlayer, dùng để nhận biết thuật toán random sử dụng cho người chơi hay cho máy tính + Các phương thức xử lý kiện chuột: MouseDragged, MousePressed, MouseClicked, MouseReleased dùng để xử lý kiện người chơi kéo thả tàu + Phương thức actionPerformed() xử lý kiện button ready, auto, back Khi người chơi chọn back, chương trình quay lại hình menu lớp MainMenu Khi chọn auto, chương trình xếp tự động tàu cho người chơi Khi người chơi chọn ready, chương trình kiểm tra xem tàu nằm map hết chưa phương thức isReady(), chuyển sang PlayGame + Phương thức isReady() với kiểu trả boolean dùng để kiểm tra xem tàu nằm map hết chưa + Phương thức getFinalMap() dùng để lưu tọa độ tàu vào đối tượng SmallMap trả đối tượng SmallMap + Phương thức goToPlay() dùng để khởi tạo đối tượng PlayGame người chơi ấn nút ready + Phương thức playSound dùng để khởi tạo âm Lớp PlayGame Lớp PlayGame kế thừa lớp JLabel hiển thị hình chơi game, bao gồm đồ đối tượng lớp Map (đặt tên playerMap computerMap) + Người chơi thực bắn tàu computerMap máy thực bắn playerMap Đồng thời hình hiển thị thơng tin bắn người chơi bắn trúng hay trượt, vị trí bắn + Các biến static: playerHit, computerHit lưu số điểm bắn trúng tại, sumHit lưu tổng số điểm cần bắn trúng, biến sumTurn lưu số lượt bắn, biến Score lưu kết tính điểm kết thúc game, biến boolean isPlayer để kiểm tra lượt chơi người hay máy, mảng boolean markP[][], markC[][] đánh dấu ô computerMap playerMap bắn hay chưa Biến boolean isHard kiểm tra chế độ chơi (khó hay dễ), biến boolean isPlaySound để kiểm tra có bật âm hay không Biến boolean isNgangPlayer isNgangComputer đánh dấu tàu ngang hay dọc + Hàng đợi Queue Q: Lưu tọa độ liên quan ô bị bắn trúng tàu (dùng cho chế độ khó) + Biến clip với kiểu liệu Clip dùng để phát âm trị chơi + Lớp PlayGame có phương thức khởi tạo Khởi tạo frame, add đồ người chơi máy, hiển thị thông tin người chơi Trong có phương thức init() khởi tạo vị trí bắn người chơi máy false (chưa bắn) phương thức addAction() + Phương thức updateHistoryText() cập nhật lại thông số (bắn trúng hay trượt, vị trí bắn, số lần bắn) người chơi sau lượt bắn 21 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng + Phương thức shot() có tham số truyền vào i, j, dùng để bắn ô (i, j) Phương thức trả true chưa bị bắn false ô bị bắn từ trước + Phương thức hitRandom() chọn ngẫu nhiên ô đồ để bắn biến Radom rd ( dùng cho chế độ dễ) + Phương thức hitRandomHard() chọn ô đồ để bắn (dùng cho chế độ khó), phương thức có sử dụng hàng đợi Q để thêm liên quan có ô có tàu bị bắn trúng (giả sử ô (i, j) bắn trúng (i+1, j), (i-1, j), (i, j+1), (i, j-1) + Phương thức addActon() thêm ActionListener button computerMap + Phương thức checkDeadOnComputerMap() kiểm tra số tàu bị hạ hoàn toàn computerMap Nếu có tàu bị hạ hồn tồn cho hiển thị tàu lên + Phương thức isPlayerWin() kiểm tra người chơi thắng hay chưa trả giá trị boolean tương ứng (kiểm tra biến playerHit sumHit) + Phương thức isComputerWin() kiểm tra máy thắng hay chưa trả giá trị boolean tương ứng (kiểm tra biến computerHit sumHit) + Phương thức loadImage() với tham số truyền vào (s,w,h): trả hình ảnh lấy từ đường dẫn s ép kích thước sang (w,h) + Phương thức actionPerformed() xử lý kiện button + Phương thức gameOver() hiển thị hình over người chơi máy chiến thắng + Phương thức setHighScore() cập nhật lại file điểm cao phương thức gameOver gọi + Phương thức playSound() dùng để khởi tạo âm Lớp EndScreen Lớp EndScreen kế thừa JLabel hiển thị hình kết sau người chơi máy bắn hết tàu đối phương trước Lớp EndScreen có phương thức khởi tạo với tham số w, h, isPlayWin, score, playSound độ rộng, chiều cao frame, người chơi thắng hay thua, số điểm người chơi đạt thiết lập tắt/bật âm thắng thua Ngoài có button Highscore để hiển thị lịch sử điểm cao Play Again để quay menu Lớp EndScreen có phương thức loadImage() với tham số truyền vào (s,w,h): trả hình ảnh lấy từ đường dẫn s ép kích thước sang (w,h) playSound() dùng để khởi tạo âm từ tham số đường link Lớp BattleShip Lớp BattleShip chứa hàm main, bắt đầu trị chơi thơng qua khởi tạo đối tượng lớp MainMenu Tổng quan trình tự khởi tạo đối tượng lớp + Đầu tiên người chơi bắt đầu khởi chạy trò chơi, đối tượng lớp MainMenu khởi tạo Màn hình menu có kích thước 1120 x 690, âm mặc định false + Khi người chơi cài đặt thơng số từ menu (âm thanh, chế độ khó hay dễ) nhấn Play, đối tượng lớp Creator khởi tạo add vào JFrame lớp MainMenu Màn hình xếp tàu hiển thị + Nếu người chơi bấm vào nút back hình xếp tàu, frame lớp MainMenu gỡ đối tượng lớp Creator quay hình lớp MainMenu Đối tượng lớp Creator bị gỡ trình dọn rác (Garbage Collection) thu dọn 22 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng + Khi người chơi xếp hết tàu lên map bấm vào nút ready hình xếp đội hình (ứng với đối tượng class Creator), đối tượng lớp Map (đặt tên playerMap computerMap) khởi tạo để lưu lại tọa độ tàu người chơi máy tính (các tàu máy tính xếp random) Đối tượng lớp Creator gỡ bỏ khỏi hình chơi, thay vào hình chơi game (ứng với đối tượng lớp PlayGame khởi tạo) PlayerMap computerMap add vào frame PlayGame, người chơi lựa chọn ô bắn computerMap + Khi trò chơi kết thúc, đối tượng lớp PlayGame thu hồi, đối tượng lớp EndScreen khởi tạo hiển thị hình kết người chơi thắng hay thua, lúc hình có nút score play again + Nếu người chơi ấn score khởi tạo đối tượng lớp HighScore, hình hiển thị lịch sử lần điểm cao Khi có tiếp nút reset back Nếu người chơi ấn reset xóa lịch sử điểm cao, ấn back khởi tạo đối tượng MainMenu, hiển thị hình menu + Nếu người chơi ấn play again, đối tượng MainMenu khởi tạo, menu hiển thị lên hình + Khi người chơi bấm vào nút exit (ở hình menu chính) tắt cửa sổ trị chơi, chương trình dừng hoạt động, đối tượng lớp chạy thu hồi 23 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng CHƯƠNG THUẬT TỐN SỬ DỤNG 3.1 Cơng nghệ sử dụng Để giải toán giao diện đồ họa, nhóm sử dụng cơng nghệ Java Swing Java AWT 3.2 Các thuật toán sử dụng 3.2.1 Thuật toán xếp tàu vào đồ Sau ấn vào nút Play menu, người chơi chuyển sang hình xếp tàu vào vị trí đồ Tại đây, mảng boolean M[][] khởi tạo với giá trị ban đầu false + Khi người chơi giữ chuột vào tàu để chuẩn bị kéo thả, phương thức mousePressed gọi Tại đây, biến xStart, yStart nhận giá trị tọa độ tàu (tọa độ điểm góc bên trái tàu) , biến X,Y nhận giá trị tọa độ chuột + Khi người chơi kéo tàu đồ, phương thức MouseDragged gọi, hình ảnh tàu di chuyển theo chuột + Khi người chơi vừa kéo tàu vừa ấn chuột phải, đồng thời phương thức mouseClicked phương thức mousePressed gọi, tàu xoay theo lần ấn chuột phải + Khi người chơi thả chuột ra, phương thức MouseReleased kiểm tra xem vị trí thả chuột, tàu có nằm vùng đồ hay không Nếu không đồ, tàu đượt di chuyển vị trí xStart yStart (2 biến tính tốn MousePressed) Nếu tàu nằm vùng đồ, chương trình kiểm tra xem vị trí có tàu khác nằm hay chưa Nếu có tàu khác, tàu di chuyển xStart yStart Nếu chưa có tàu khác, tàu chuyển đến tọa độ mới, mảng M cập nhật lại 3.2.2 Thuật toán chơi game chế độ dễ Ở chế độ dễ, lượt máy bắn ô đồ nhờ vào phương thức hitRandom biến random rd phương thức 3.2.3 Thuật toán chơi game chế độ khó Ở chế độ khó, chương trình sử dụng hàng đợi Q để lưu tọa độ ô đồ, xuất phát từ Q rỗng Khi đến lượt máy bắn, chương trình kiểm tra hàng đợi Q rỗng hay không: + Nếu Q rỗng, chương trình sử dụng biến random để bắn đồ Nếu có tàu, gọi (i,j) (i+1,j) , (i-1,j), (i, j+1) (i, j-1) thêm vào hàng đợi để chờ lượt bắn sau + Nếu Q có phần tử, chương trình lấy đầu hàng đợi để bắn Nếu có tàu, gọi (i,j) (i+1,j), (i-1,j), (i, j+1) (i, j-1) thêm vào hàng đợi để chờ lượt bắn sau 24 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA 4.1 Kết chương trình minh họa Chương trình thực chức sau: + Cho phép người chơi lựa chọn tàu chiến, xếp đội hình (mỗi loại tàu chiến có kích thước, hướng khác nhau) + Đánh dấu tọa độ bắn trật, bắn trúng lượt chơi + Thống kê số lần bắn, bắn trúng hay trượt, vị trí bắn + Lưu lại điểm số người chơi + Xây dựng thuật toán cho máy chơi chế độ khó dễ + Chơi với máy, xem lịch sử điểm cao + Cấu hình game: tắt bật âm thanh, reset điểm cao 4.2 Giao diện chương trình Giao diện bắt đầu khởi chạy game 25 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng Giao diện xem lịch sử điểm cao Giao diện xếp tàu lên đồ 26 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng Giao diện chơi game Giao diện kết thúc game 27 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng 4.3 Kiểm thử chức Các chức cần kiểm thử: + Cho phép người chơi xếp đội hình (mỗi loại tàu chiến có kích thước khác nhau, thay đổi hướng tàu) + Lưu lại điểm số người chơi + Xem lịch sử điểm cao, reset điểm cao 28 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng + Tắt, bật âm + Xem hướng dẫn chơi 4.3.1 Kiểm thử cho chức Chức năng: cho phép người chơi lựa chọn, xếp, xoay tàu chiến Số lượng tàu chiến loại tàu quy định sẵn tàu với kích thước (độ dài tàu ứng với số ô đồ tàu độ dài 1, 2, 3, 4, 5) Kết kiểm thử xếp tàu chiến STT input Các tàu chưa nằm hết map Các tàu nằm map 4.3.2 Kiểm thử cho chức Chức năng: Lưu lại điểm số, xem lịch sử điểm số, reset điểm cao Kết kiểm thử STT input File highscore.txt không tồn File highscore.txt nhập thành công 4.3.3 Kiểm thử cho chức Chức năng: bật tắt âm Kết kiểm thử STT input File sound.wav không tồn File sound.wav tồn 4.3.4 Kiểm thử cho chức Chức năng: xem hướng dẫn chơi 29 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng Kết kiểm thử STT 4.3.5 Kết luận Chương trình chạy ổn định, lỗi logic xảy Nếu có lỗi xảy đa phần file input bị thiếu lỗi KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chương trình hồn thành yêu cầu toán Ưu điểm: + Khơng có lỗi logic + Giao diện dễ nhìn + Nhẹ, tốn tài ngun Nhược điểm: + Một số hình ảnh game chưa thực đẹp + Các lớp chương trình cịn sử dụng nhiều thuộc tính Hướng phát triền cho đề tài: + Giảm thiểu thuộc tính cho lớp biến cục + Tìm kiếm thêm hình ảnh để giao diện game trau chuốt + Thêm hướng dẫn chơi để người chơi dễ hiểu Mặc dù số thiếu sót, thu từ tập lớn lần giúp chúng em tự tin để tiếp tục đam mê lập trình Chúng em mong nhận đánh giá thầy Chúng em xin chân thành cảm ơn! 30 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng 31 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng TÀI LIỆU THAM KHẢO [1] [2] [3] [4] [5] [6] [7] Lập trình hướng đối tượng với Java, Đoàn Văn Ban, NXB Khoa học kỹ thuật Slide giảng lập trình hướng đối tượng, Ths Nguyễn Mạnh Tuấn Trang web viettus.vn Trang web docs.oracle.com Trang web stackoverflow.com Trang web github.com Youtube.com 32 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng PHỤ LỤC Hướng dẫn cài đặt + Giải nén file BattleShip.zip + Chạy file BattleShip.exe thư mục vừa giải nén + Để xem source code, import thư mục vừa giải nén vào eclipse IDE hỗ trợ java khác 33 TIEU LUAN MOI download : skknchat@gmail.com ... IT3100 – Lập trình hướng đối tượng 31 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng TÀI LIỆU THAM KHẢO [1] [2] [3] [4] [5] [6] [7] Lập trình hướng đối tượng với Java,... IT3100 – Lập trình hướng đối tượng 17 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng 2.4 Thiết kế chi tiết lớp Phân tích: để giải toán xây dựng lớp: Lớp Ship: chứa... skknchat@gmail.com IT3100 – Lập trình hướng đối tượng Giao diện chơi game Giao diện kết thúc game 27 TIEU LUAN MOI download : skknchat@gmail.com IT3100 – Lập trình hướng đối tượng 4.3 Kiểm thử chức