Thứ Ba, 28 tháng 3, 2017

Nhật Kí Tuần 7 

  1. Công Việc

    1. Phân Công Nhiệm Vụ 
    2. Hình Ảnh Nhóm


      1. 2 Hoàn Thành Chức Năng Thoát Game Và Giới Thiệu

      Chức năng Thoát Game

      Chức Năng About (Giới thiệu)

      1. 3 Bổ Sung Các Usecase

        1. Usecase Yêu Quai
          1. Bắt đầu game
          2. Tạo ngẫu nhiên tọa độ xuất hiện của một yêu quái (tọa độ x, y).
          3. Kiểm tra tọa độ xuất hiện hợp lệ, trạng thái của quái vật.
          4. Vẽ quái vật.
          5. Đánh dấu vị trí quái vật trên bản đồ.
          6. Thiết lập hướng di chuyển của quái vật.
          7. Kiểm tra tọa độ di chuyển tiếp theo của quái vật.
          8. Nếu hợp lệ và hướng sang trái thì giảm tọa độ x, sang phải thì tăng tọa độ x, hướng đi lên thì giảm tọa độ y, hướng đi xuống thì tăng tọa độ y.
          9. Nêu tọa độ di chuyển tiếp theo của quái là vật cản thì sẽ chuyển hướng ngược lại.
          10. Nếu tọa độ quái vật trùng với tọa độ boom nổ thì thay đổi trạng thái của yêu quái (từ yêu quái sống sang chết). Khi trạng thái thay đổi thì vẽ lại yêu quái. Nếu trạng thái là sống thì vẽ, nếu chết thì không vẽ.
          11. Nhập vào số lượng quái vật.
          12. Tạo một danh sách quái vật theo số lượng yêu cầu.
          13. Cho từng quái vật trong danh sách thực hiện chức năng di chuyển.
          ____________________________
        2. Usecase Chiến Thắng và Qua Màn 
          1. Người chơi di chuyển nhân vật.
          2. Người chơi xác định vị trí quái vật.
          3. Tính toán đặt bom để tiêu diệt quái vật.
          4. Khi tiêu diệt được 1 quái vật người chơi sẽ được cộng điểm thưởng.
          5. Khi tiêu diệt tất cả quái vật thì người chơi được xem là chiến thắng.
          6. Ngược lại nếu bị quái vặt đụng trúng và không còn mạng nào, người chơi sẽ thua.
          7. Khi chiến thắng , thuộc tính màn chơi của người chơi sẽ được tăng thêm 1.
          8. Khi thuộc tính màn chơi thay đổi thì chương trình sẽ vẻ lại một màn chơi mới.
          9. Chuyển tất cả trạng thái: boom, tọa độ.. của nhân vật về như ban đầu.
          10. Chuyển các biến trạng thái game : bắt đầu, kết thúc... về như ban đầu.
          11. Tạo một danh sách quái vật mới có số quái vật nhiều hơn, tốc độ di chuyển nhanh hơn màn 1.
          12. Nếu là màn cuối cùng thì sẽ tạo một Boss để người chơi tiêu diệt. Tiêu diệt được Boss sẽ hoàn thành Game.
          ____________________________
        3. Usecase Boss
          1. Boss sẽ xuất hiện ở màn cuối.
          2. Boss sẽ được di chuyển tự do trên bản đồ. Nó không thể bị cản bởi thứ gì.
          3. Nó di chuyển 1 cách tự động và ưu tiên hướng về nhân vật.
          4. Nếu ở gần nhân vật nó sẽ di chuyển nhanh hơn để va vào nhân vật và gây sát thương cho nhân vật.
          5. Boss có 100 máu. Trừ 10 nếu bị dính boom từ nhân vật
          6. Nếu boss bị tiêu diệt thì người chơi sẽ chiến thắng trò chơi.
          ____________________________
        4. Usecase Lưu Game
          1. Khi nhấn vào memu lưu game sẽ lưu lại:
          2.  Sẽ bắt người chơi nhập tên để lưu các giá trị cùng với tên. Mỗi người chơi dùng 1 tên để phân biệt nếu trùng tên đưa ra thông báo và thực hiện lại
          3.  Vị trí mà nhân vật đang đứng
          4.  Lưu lại tất cả thuộc tính và giá trị các thuộc tính của nhân vật
          5. Lưu lại màn chơi hiện tại
          6.  Vị trí của quái hiện có trên bản đồ
          7. Vị trí của các Item
          8.  Nếu ở màn chơi cuối thì lưu lại vị trí của boss
          9.  Lưu tất cả trạng thái vào DataBase SQLite
          ____________________________
        5. Usecase Tiếp Tục Game
          1. Người chơi phải nhập đúng tên mà họ đã lưu trước đó
          2. Load tất cả các cột từ DataBase lên với điều kiện đúng tên đã nhập
          3. Sau đó dùng các giá trị đã lấy được từ DataBase làm giá trị khởi tạo cho nhân vật và các thứ khác
          4. Sau khi load thì sẽ trả lại hiện trạng hiện có trước khi lưu.
          ____________________________
        6. Use case item
          1.Hệ thống game sẽ gồm có 2 item để hỗ trợ người chơi vượt qua các độ khó của trò chơi.Một item là item lửa:item này có tác dụng tăng số lượng ô nổ của boom lên 1 đơn vị;Item tiếp theo là item trái tim: item này có tác dụng tăng số mạng của nhân vật lên một đơn vị.
          2.Trong quá trình chơi game,sau một khoảng thời gian quy định trước (10s), hệ thống sẽ random ra ngẫu nhiên một item ở một vị trí bất kì trên bản đồ mà nhân vật có thể di chuyển đến và nhận item đó.
          3.Sau khi nhân vật nhận được(hoặc không nhận được) item do hệ thống random:
          -Nếu nhận được item trái tim: Lập tức nhân vật sẽ được cộng thêm một mạng (nói cách khác là một lượt chơi) đồng thời item này sẽ biến mất;
          -Nếu nhận được item lửa:Lập tức những lần nổ boom sau đó ,số lượng ô nổ lan rộng ra thêm một ô,đồng thời item này biến mất ngay sau đó;
          -Nếu không nhận được item nào thì item vẫn nằm đó cho đến một thời gian nhất định thì item sẽ tự biến mất (2s-4s).
          4.Trong quá trình boom nổ,nếu boom nổ trúng item thì item sẽ biến mất ngay lập tức.

    Thứ Sáu, 17 tháng 3, 2017

    4.Use case

    1.Use case menu

    • Menu File
               +New game:Khi click chuột vào menu này games sẽ chạy lên trang game tương tác với người dùng,nơi đây người dùng có thể chơi game theo hướng dẫn.
               +Save game:Khi click chuột vào menu này hệ thống sẽ lưu lại trạng thái của game lần sau khi khởi động games thì màn hình games sẽ hiển thị như lúc click vào save game;
               +Save score: Khi người dùng click vào menu này ,hệ thống sẽ lưu điểm lại cho người chơi đồng thời nó giống chức năng tạm dừng.Games sẽ dừng hoạt động cho đến khi nút này được click lại.
               +Exit :Khi click vào menu này hệ thống sẽ thông báo xác nhận là người dùng có thoát hay không,nếu có thì tắt hệ thống ,ngược lại thì không làm gì cả.

    • Menu Help
              +Ở menu này thì khi click vào nó sẽ hiện lên một jframe hướng dẫn người chơi cách dùng game,cách chơi games,cách tính điểm.
    • Menu About:
              +Khi click vao menu này, hệ thống sẽ hiện lên một JFrame thể hiện thông tin chi tiết các thành viên của nhóm( bao gồm họ tên, mã số sinh viên, điện thoại..
    2.Use case giao diện
    • Giao diện game
              +Khi khởi động hệ thống sẽ hiển thị lên một JFrame có tiêu đề game và hình nền game, bên trong có chứa menu như đã nêu ở use case trên, ngoải ra còn chứa các button điều khiển như sau:

              +Bắt đầu game:Khi click nút vào thì hệ thống sẽ đưa người chơi vào màn hình chơi game;
              +Xem điểm cao:Khi click vào nút này thì hệ thống sẽ hiện lên một jframe ,trong đó sẽ hiện thị một bảng điểm jtable gồm có tên người dùng,thời gian,số điểm,số vàng,thành tích,..
              +Thoát:Khi người click vào đây,hệ thống sẽ xuất hiện thông báo xác nhận là người dùng có muốn thoát hệ thông hay không,nếu có thì hệ thống out và không lưu chi tiết nào của người chơi,ngược lại thì không làm gì cả;
              +Tạm dừng :Nếu nút này được nhấn,hệ thống sẽ dừng games và giữ nguyên trạng thái cho đến khi người dùng click lại nút này.

    3.Use case di chuyển
            +Di chuyển lên sau khi bấm nút UP, di chuyển xuống khi nhấn DOWN, đi sang trái khi nhấn nút LEFT, đi sang phải khi nhấn nút RIGHT

            +Nhân vật sẽ không thể đi lên được boom
            +Nhân vật không thể đi lên bất cứ thứ gì ngoài vùng đất cỏ
            +Nhân vật chỉ được tiến lên khi đang xoay lên, chỉ được đi xuống khi đang xoay xuống, chỉ được sang trái khi đang xoay trái, chỉ được sang phải khi đang xoay phải. Còn không xoay theo hướng muốn đi thì phải xoay trước rồi mới được đi.
            +Nếu trò chơi tạm dừng thì nhân vật không được di chuyển

    4.Use case đặt boom
           +Đặt boom đúng tọa độ sau khi nhấn phím Space
           +Các nhân vật trong game sẽ không thể di chuyển qua boom
           +Boom sẽ nổ trong 1 khoảng thời gian sau khi đặt boom

    • Khi boom nổ: 
           + Sẽ phá hủy cỏ nếu trúng boom và hiện các Item được đặt trong cỏ
           +Hero và quái Boss sẽ mất 1 mạng nếu bị trúng boom. +Các quái trong game sẽ chết
    nếu bị trúng boom.
           +Boom sẽ không thể nổ đá,nước và cây.

    • Boom nổ theo cấp độ sau khi Hero ăn Item boom gồm có 3 cấp: 
          +Cấp 1: Boom sẽ nổ 4 ô đất.
          +Cấp 2: Boom sẽ nổ 8 ô đất.
          +Cấp 3:Boom sẽ nổ 12 ô đất.

          +Cấp 4:Boom sẽ 16 ô đất.
          +Cấp 5:Boom sẽ nổ 20 ô đất.
    5.Use case item:
       1.Hệ thống game sẽ gồm có 2 item để hỗ trợ người chơi vượt qua các độ khó của trò chơi.Một item là item lửa:item này có tác dụng tăng số lượng ô nổ của boom lên 1 đơn vị;Item tiếp theo là item trái tim: item này có tác dụng tăng số mạng của nhân vật lên một đơn vị.
       2.Trong quá trình chơi game,sau một khoảng thời gian quy định trước (10s), hệ thống sẽ random ra ngẫu nhiên một item ở một vị trí bất kì trên bản đồ mà nhân vật có thể di chuyển đến và nhận item đó.
       3.Sau khi nhân vật nhận được(hoặc không nhận được) item do hệ thống random:
           -Nếu nhận được item trái tim: Lập tức nhân vật sẽ được cộng thêm một mạng (nói cách khác là một lượt chơi) đồng thời item này sẽ biến mất;
            -Nếu nhận được item lửa:Lập tức những lần nổ boom sau đó ,số lượng ô nổ lan rộng ra thêm một ô,đồng thời item này biến mất ngay sau đó;
             -Nếu không nhận được item nào thì item vẫn nằm đó cho đến một thời gian nhất định thì item sẽ tự biến mất (2s-4s).
       4.Trong quá trình boom nổ,nếu boom nổ trúng item thì item sẽ biến mất ngay lập tức.

    6.Use case yêu quái:
       1.    Bắt đầu game
       2.        Tạo ngẫu nhiên tọa độ xuất hiện của một yêu quái (tọa độ x, y)
       3.        Kiểm tra tọa độ xuất hiện hợp lệ, trạng thái của quái vật
       4.        Vẽ quái vật
       5.        Đánh dấu vị trí quái vật trên bản đồ
       6.        Thiết lập hướng di chuyển của quái vật
       7.        Kiểm tra tọa độ di chuyển tiếp theo của quái vật
       8.        Nếu hợp lệ và hướng sang trái thì giảm tọa độ x, sang phải thì tăng tọa độ x, hướng đi lên thì         giảm tọa độ y, hướng đi xuống thì tăng tọa độ y.
       9.        Nêu tọa độ di chuyển tiếp theo của quái là vật cản thì sẽ chuyển hướng ngược lại.
       10.    Nếu tọa độ quái vật trùng với tọa độ boom nổ thì thay đổi trạng thái của yêu quái (từ yêu quái sống sang chết). Khi trạng thái thay đổi thì vẽ lại yêu quái. Nếu trạng thái là sống thì vẽ, nếu chết thì không vẽ
       11.   Nhập vào số lượng quái vật
       12.    Tạo một danh sách quái vật theo số lượng yêu cầu.
       13.    Cho từng quái vật trong danh sách thực hiện chức năng di chuyển

    7.Use case chiến thắng-qua màn:
       1.    Người chơi di chuyển nhân vật
       2.        Người chơi xác định vị trí quái vật
       3.        Tính toán đặt bom để tiêu diệt quái vật
       4.        Khi tiêu diệt được 1 quái vật người chơi sẽ được cộng điểm thưởng
       5.        Khi tiêu diệt tất cả quái vật thì người chơi được xem là chiến thắng.
       6.        Ngược lại nếu bị quái vặt đụng trúng và không còn mạng nào, người chơi sẽ thua.
       7.        Khi chiến thắng , thuộc tính màn chơi của người chơi sẽ được tăng thêm 1
       8.        Khi thuộc tính màn chơi thay đổi thì chương trình sẽ vẻ lại một màn chơi mới.
       9.        Chuyển tất cả trạng thái: boom, tọa độ.. của nhân vật về như ban đầu.
       10.    Chuyển các biến trạng thái game : bắt đầu, kết thúc... về như ban đầu.
       11.    Tạo một danh sách quái vật mới có số quái vật nhiều hơn, tốc độ di chuyển nhanh hơn màn 1.
       12.    Nếu là màn cuối cùng thì sẽ tạo một Boss để người chơi tiêu diệt. Tiêu diệt được Boss sẽ hoàn thành Game.


    8.Use case lưu game-tiếp tục:
       1.        Khi nhấn vào memu lưu game sẽ lưu lại:
       2.         Sẽ bắt người chơi nhập tên để lưu các giá trị cùng với tên. Mỗi người chơi dùng 1 tên để phân biệt nếu trùng tên đưa ra thông báo và thực hiện lại
       3.         Vị trí mà nhân vật đang đứng
       4.         Lưu lại tất cả thuộc tính và giá trị các thuộc tính của nhân vật
       5.        Lưu lại màn chơi hiện tại
       6.         Vị trí của quái hiện có trên bản đồ
       7.        Vị trí của các Item
       8.         Nếu ở màn chơi cuối thì lưu lại vị trí của boss
       9.         Lưu tất cả trạng thái vào DataBase SQLite
                                       
    2. Tiếp tục trò chơi: Khi nhấn vào memu tiếp tục thì:
       1.    Người chơi phải nhập đúng tên mà họ đã lưu trước đó
       2.        Load tất cả các cột từ DataBase lên với điều kiện đúng tên đã nhập
       3.        Sau đó dùng các giá trị đã lấy được từ DataBase làm giá trị khởi tạo cho nhân vật và các thứ khác
       4.        Sau khi load thì sẽ trả lại hiện trạng hiện có trước khi lưu.

    9.Use case boss:
       1. Boss sẽ xuất hiện ở màn cuối.
       2. Boss sẽ được di chuyển tự do trên bản đồ. Nó không thể bị cản bởi thứ gì
       3. Nó di chuyển 1 cách tự động và ưu tiên hướng về nhân vật
       4. Nếu ở gần nhân vật nó sẽ di chuyển nhanh hơn để va vào nhân vật và gây sát thương cho nhân vật
       5. Boss có 100 máu. Trừ 10 nếu bị dính boom từ nhân vật
       6. Nếu boss bị tiêu diệt thì người chơi sẽ chiến thắng trò chơi. 

    3. Class Diagrame





    Class Dragram Tổng Kết


    Controller

    Model

    View


    2. Mô tả chức năng


    1) Trò chơi mới

    2) Lưu trò chơi

    3)  Tiếp tục trò chơi

    4) Thoát trò chơi

    5) Âm thanh trò chơi

    6) Tùy chỉnh độ khó

    7) Đếm thời gian

    8) Menu - hướng dẫn chơi, giới thiệu..

    1.Thành viên

    1.15130136-Nguyễn Lê Phong
    2.15130052-Nguyễn Tấn Hậu
    3.15130077-Đàm Quang Khoa
    4.15130106-Huỳnh Phước Ngà