SlideShare ist ein Scribd-Unternehmen logo
1 von 18
ĐẠI HỌC KHOA HỌC TỰ NHIÊN
                KHOA CÔNG NGHỆ THÔNG TIN       CQ – HK1 – 2k9 – 2k10




Đồ án môn Phân tích và thiết kế phần mềm
           Lớp TH2006 + CNTN06




       Hồ sơ Phân tích Game Doraemon Puzzle
                                      Version 2.1




             Sinh viên thực hiện:
        0612292 – Trần Hồ Lê Nguyên
         0612358 – Thái Ngân Phụng
Game Doraemon Puzzle                                                Phiên bản: 2.2
Hồ sơ phân tích                                                     Ngày: 14/01/2010

                 Bảng ghi nhận thay đổi tài liệu
     Ngày         Phiên bản                    Mô tả                        Tác giả
   13/01/2010          1.0    Thiết kế lần 1                          Trần Hồ Lê Nguyên
   13/01/2010          2.0    Thiết kế lần 2, liên kết và kế thừa     Trần Hồ Lê Nguyên
   14/01/2010          2.1    Thiết kế lần 3 tách lớp                 Trần Hồ Lê Nguyên
   14/01/2010          2.2    Sửa chữa tách lớp, sửa thuộc tính       Thái Ngân Phụng




FIT-HCMUS                                                                       Trang 1
Game Doraemon Puzzle                             Phiên bản: 2.2
Hồ sơ phân tích                                  Ngày: 14/01/2010

                                       Mục lục
1. Sơ đồ lớp (mức phân tích)                                   3
    1.1 Sơ đồ lớp (mức phân tích)                              3
    1.2 Danh sách các lớp đối tượng và quan hệ                 4
    1.3 Mô tả chi tiết từng lớp đối tượng                      5
         1.3.1 Lớp Screen                                               5
         1.3.2 Lớp ScreenAbout                                          5
         1.3.3 Lớp ScreenMain                                           6
         1.3.4 DrawScreen Lớp ScreenOption                              6
         1.3.5 Lớp ScreenGame                                           8
         1.3.6 Lớp UC                                                   9
         1.3.7 Lớp UCCounter                                           10
         1.3.8 Lớp UCTimer                                             10
         1.3.9 Lớp UCSprite                                            11
         1.3.10 Lớp Message                                            12
         1.3.11 Lớp MessageLoadGame                                    12
         1.3.12 Lớp MessagePuzzle                                      12
         1.3.13 Lớp MessageSave                                        13
         1.3.14 Lớp MessageWarning                                     13
         1.3.15 Lớp CWin                                               14
         1.3.16 Lớp CGameFrame                                         14
         1.3.17 Lớp CPictureCell                                       15




FIT-HCMUS                                                    Trang 2
Game Doraemon Puzzle                                                                                       Phiên bản: 2.2
             Hồ sơ phân tích                                                                                            Ngày: 14/01/2010

             1.Sơ đồ lớp (mức phân tích)

             1.1Sơ đồ lớp (mức phân tích)

             Message                                                         MessageLoadGame

       +DrawThongBao()                                                  <<override>>+DrawThongBao()                                          ScreenOption
                                                                        +CheckMousePositionOK()
                                                                                                                                   -chkSound
                                                                                                                                   -dimension

                                                                                                                                   <<override>>+DrawScreen()
                                                    MessagePuzzle                                                                  +ChooseLocaiton()
                                                                                                 MessageWarning
                                                                                                                                   +CheckMousePositionDimension3()
       MessageSave                            <<override>>+DrawThongBao()                                                          +CheckMousePositionDimension4()
                                              +CheckMousePositionOK()                    <<override>>+DrawThongBao()               +CheckMousePositionDimension5()
                                                                                         +CheckMousePositionOK()                   +CheckMousePositionDimension6()
<<override>>+DrawThongBao()
+CheckMousePositionYes()                                                                                                           +CheckMousePositionDimension7()
                                                            0..*                                                                   +CheckMousePositionSound()
+CheckMousePostionNo()                                                                                0..*
                                                                                                                                   +SetDimension()
                           1..*                                                                                                    +TurnSound()


     CWin
                                                              1
+index                                    1
+myTimer                                                                                                Screen
                                                      ScreenGame                   1
+DrawWin()                                    -menu                                                                                          ScreenAbout
                                                                                           <<virtual>>+DrawScreen()
                                              -myUCTimer: UCTimer
                    0..1
                                              -myUCCounter: UCCounter                                                               <<override>>+DrawScreen()
                                              -tbLoiKhuyen: MessageWarning                                                          +CheckMousePositionOK()
                                      1       -tbSave: MessageSave
                                              -tbPuzzle: MessagePuzzle
                                              -win: CWin                                                            ScreenMain
                                              -khungGame: GameFrame                                          -menu
                                              <<override>>+DrawScreen()                                      +uc1: UCSprite
  GameFrame                                   +CheckMousePositionGame()                                      <<override>>+DrawScreen()
                                              +OpenImage()                                                   +SplitBitMaps()
 -imageFile                                   +Puzzle()
 -imagePath                                   +Reset()
                                      1                                                                                            1
 -cellSize                                    +GetCurCell()
 -cellCount                                   +SaveGame()                      1                                                       1
 -flagInit            1                       +LoadGame()
 -flagPuzzle
 -picCell                                                                                                                                       UCSprite
 -emptyCellIndex                                                                             1                UCCounter
                                                                                                                                       -x
 -emptyImage                                                                                                                           -y
                                                                                                       -count
                                                                    1                                  -arr_pic                        -h
 +LoadPicture()
 +DividePicture()                                                                                                                      -w
 +RandomPicture()                                                                                      +SetImage()                     -bm
 +ResizeImage()                                                                                        +IncreaseCounter()
                                                                                                       +ResetCounter()                 +NextFrame()
 +CloneImage()                                                                                                                         <<override>>+ShowUC()
 +PushImage()                                                                                          <<override>>+ShowUC()
                                                                                                  1
 +IsMoveValid()
 +NearEmptyCell()          1
 +CheckFinish()

                                  *                                           1

                                  CPictureCell                                         UCTimer

                               -image                  *                     -arr_pic
                               -tag                                          -myTimer
                               -name                                         -cur_min
                               -location                                     -cur_sec                                         UC
                                                      *                      -status
                               -size                                    1
                                                                             +SetImage()                             <<virtual>>+ShowUC()
                                                                             +Start()
                                                                             +Stop()
                                                                             +Pause()
                                                                             +Resume()
                                                                             <<override>>+ShowUC()




             FIT-HCMUS                                                                                                                     Trang 3
Game Doraemon Puzzle                                            Phiên bản: 2.2
Hồ sơ phân tích                                                 Ngày: 14/01/2010

1.2Danh sách các lớp đối tượng và quan hệ

STT    Tên lớp/quan hệ    Loại              Ý nghĩa/Ghi chú
1      Screen             Abstract          Lớp cha của các lớp màn hình trong game
2      ScreenAbout        Public            Lớp màn hình about thể hiện thông tin tác
                                            giả của game
3      ScreenGame         Public            Lớp màn hình game, là nơi xử lý chính khi
                                            chơi game
4      ScreenMain         Public            Lớp màn hình Main, là lớp thể hiện màn
                                            hình chính khi bật game lên. Từ màn hình
                                            đó chứa các nút dẫn tới các màn hình, chức
                                            năng chính khác.
5      ScreenOption       Public            Lớp màn hình Option, là lớp xử lý liên quan
                                            đến việc lưu tùy chọn bật / tắt âm thanh,
                                            chọn mức độ khó của game
6      UC                 Abstract          Lớp cha của lớp usercontrol (được giả lập
                                            chứ không phải là control của VS)
       UCCounter          Public            Lớp xử lý chính của thao tác đếm số lần di
                                            chuyển ô trong game
8      UCSprite           Public            Lớp xử lý hình động Doraemon (hình trang
                                            chí) ở màn hình Main.
9      UCTimer            Public            Lớp xử lý chính của thao tác tính thời gian
                                            chơi của game
10     Message         Abstract             Lớp cha của các lớp thông báo trong game
11     MessageLoadGame Public               Vẽ thông báo báo chưa save game lần nào
                                            nếu người dùng nhấn vào nút continue mà
                                            chưa từng save game trước đó.
12     MessagePuzzle      Public            Vẽ thông báo báo bắt buộc phải xáo game
                                            trước khi chơi.
13     MessageSave        Public            Vẽ thông báo hỏi có save game không khi
                                            ấn nút exit thoát khỏi game khi đang chơi
                                            giữa chừng.
14     MessageWarning     Public            Vẽ thông báo báo người dùng nên dừng chơi
                                            vì chơi đã lâu rồi. (không phải xét thắng
                                            thua)
15     CWin               Public            Hiện thông báo chiến thắng nhấp nháy chúc


FIT-HCMUS                                                                     Trang 4
Game Doraemon Puzzle                                                 Phiên bản: 2.2
Hồ sơ phân tích                                                      Ngày: 14/01/2010

                                                  mừng chiến thắng khi giải được puzzle
16     CGameFrame           Public                Xử lý các thao tác liên quan tới khung game
                                                  trong màn hình game.
17     CPictureCell         Public                Dùng trong lớp UCCounter, UCTimer và
                                                  CGameFrame để khai báo các ô ảnh (gồm
                                                  tên, tọa độ, kích thước,…) tương tự như
                                                  Picturebox
1.3Mô tả chi tiết từng lớp đối tượng

1.3.1Lớp Screen

Mô tả:
  • Là lớp cha của các lớp màn hình trong game (có 4 màn hình chính là option, main, game,
       about). Lớp này không có thuộc tính nào cả.

Danh sách các phương thứ chính:

STT    Tên phương thức        Loại         Ý nghĩa/ghi chú
       DrawScreen         <<virtual>>      là phương thức ảo, các lớp đối tượng con gồm 4
                          Public           màn hình sẽ override lại phương thứ này.


1.3.2Lớp ScreenAbout

Mô tả:
  • Là lớp chưa phương thức vẽ ra màn hình About thể hiện thông tin tác giả chương trình
       game.
  • Lớp này không có thuộc tính.

Danh sách các phương thức chính:

STT   Tên phương thức                    Loại        Ý nghĩa/ghi chú
      DrawScreen                  <<override>>Public override lại từ phương thức cùng tên
                                                     của lớp cha. Nhiệm vụ là vẽ ra màn
                                                     hình About.

      CheckMousePositionOK Public                      kiểm tra tọa độ chuột có nằm trong nút
                                                       OK hay không (để xử lý các sự kiện
                                                       như mouse up)




FIT-HCMUS                                                                             Trang 5
Game Doraemon Puzzle                                                Phiên bản: 2.2
Hồ sơ phân tích                                                     Ngày: 14/01/2010

1.3.3Lớp ScreenMain

Mô tả:
  • Lớp chứa phương thức vẽ màn hình chính trong game, là nơi chứa các liên kết tới các
       màn hình, chức năng chính khác trong game.
  • Lớp còn chứa phương thức cắt ảnh để dùng cho usercontrol Doraemon (giả lập)

Danh sách các thuộc tính chính:

STT    Tên thuộc tính           Loại      Ràng buộc       Ý nghĩa/ghi chú
1      Menu                Private                        Là các button ngoài màn hình
                                                          chính. Dùng thuộc tính. này để truy
                                                          xuất tới hàm vẽ các button đó.
2      uc1                 Private                        Là thuộc tính kiểu UCSprite, thể
                                                          hiện, gọi các phương thức xử lý
                                                          cho hình ảnh chuyển động
                                                          Doraemon ở ngoài màn hình chính.

Danh sách các phương thức chính:

STT    Tên phương                  Loại       Ý nghĩa/ghi chú
       thức
1      DrawScreen         <<override>>Public là phương thức override từ lớp cha Screen
                                             nhiệm vụ là xử lý vẽ màn hình chính.

2      SplitBitmap        Public              dùng xử lý cắt ảnh doraemon dài (gồm nhiều
                                              hình ảnh doraemon khác nhau liên tiếp) thành
                                              từng phần nhỏ để thể hiện các trạng thái, hỉnh
                                              ảnh khác nhau của doraemon.


    a. DrawScreen: là phương thức override từ lớp cha Screen nhiệm vụ là xử lý vẽ màn hình
       chính.
    b. SplitBitmap: dùng xử lý cắt ảnh doraemon dài (gồm nhiều hình ảnh doraemon khác nhau
       liên tiếp) thành từng phần nhỏ để thể hiện các trạng thái, hỉnh ảnh khác nhau của
       doraemon.
1.3.4DrawScreen Lớp ScreenOption

Mô tả:
  • Là lớp xử lý các tùy chọn về mức độ khó của game (số ô trong khung game) và xử lý bật
       tắt âm thanh.

Danh sách các thuộc tính chính:

FIT-HCMUS                                                                         Trang 6
Game Doraemon Puzzle                                            Phiên bản: 2.2
Hồ sơ phân tích                                                 Ngày: 14/01/2010


STT    Tên thuộc tính          Loại    Ràng buộc      Ý nghĩa/ghi chú
1      chkSound           Private                     Giá trị dùng để lưu tùy chọn bật
                                                      hay tắt nhạc nền.
2      dimension          Private                     Lưu giữ giá trị mức độ khó của
                                                      game để truyền cho KhungGame
                                                      xử lý.

Danh sách các phương thức chính:

STT Tên phương thức                          Loại        Ý nghĩa/ghi chú
1   DrawScreen                        <<override>>Public là phương thức override từ lớp
                                                         cha Screen nhiệm vụ là xử lý
                                                         vẽ màn hình option.

2     ChooseLocation:                 Public              là phương thức trả về tọa độ
                                                          cần vẽ của biểu tượng đánh
                                                          dấu đang chọn độ khó nào.
                                                          (3x3, hay 4x4)
3     CheckMousePositionDimension3    Public              kiểm tra xem vị trí chuột có
                                                          nằm trong vùng chứa biểu
                                                          tượng đánh dấu + text thế hiển
                                                          mức độ khó 3x3 hay không. Ví
                                                          dụ khi nhấn vào chữ 3x3 thì
                                                          biểu tượng đánh dấu sẽ được
                                                          vẽ lên và xác định chọn mức
                                                          độ khó 3x3 chứ không nhất
                                                          thiết muốn chọn thì lúc nào
                                                          cũng nhấn chuột đúng vào cái
                                                          ô biểu tượng nhỏ xí.
4     CheckMousePositionDimension4    Public              kiểm tra xem vị trí chuột có
                                                          nằm trong vùng chứa biểu
                                                          tượng đánh dấu + text thế hiển
                                                          mức độ khó 4x4 hay không
5     CheckMousePositionDimension5    Public              kiểm tra xem vị trí chuột có
                                                          nằm trong vùng chứa biểu
                                                          tượng đánh dấu + text thế hiển
                                                          mức độ khó 5x5 hay không
6     CheckMousePositionDimension6    Public              kiểm tra xem vị trí chuột có
                                                          nằm trong vùng chứa biểu
                                                          tượng đánh dấu + text thế hiển
                                                          mức độ khó 6x6 hay không
7     CheckMousePositionDimension7    Public              kiểm tra xem vị trí chuột có
                                                          nằm trong vùng chứa biểu

FIT-HCMUS                                                                     Trang 7
Game Doraemon Puzzle                                               Phiên bản: 2.2
Hồ sơ phân tích                                                    Ngày: 14/01/2010

                                                             tượng đánh dấu + text thế hiển
                                                             mức độ khó 7x7 hay không
8     CheckMousePositionSound           Public               kiểm tra xem vị trí chuột có
                                                             nằm trong vùng chứa biểu
                                                             tượng đánh dấu + text thế hiển
                                                             cho việc bật tắt nhạc nền hay
                                                             không
9     SetDimension                      Public               Dùng để lấy giá trị dimension
                                                             khi người dùng chọn độ khó
                                                             tương tứng với giá trị
                                                             dimension đó. Sau đó mới biết
                                                             giá trị nào mà vẽ cho đúng
10    TurnSound                         Public               hàm dùng để xử lý khi bật tắt
                                                             âm thanh. Khi âm thanh đang
                                                             mở thì nếu nhấn vào vùng
                                                             Sound trên màn hình Option
                                                             thì sẽ chuyển thành tắt và
                                                             ngược lại

1.3.5Lớp ScreenGame

Mô tả:
  • Là lớp xử lý chính của màn hình game, từ việc vẽ màn hình, chơi, reset, xáo, lưu, load
       game…
  • Lớp còn chứa các thuộc tính như myUCTimer, myUCCounter, khungGame… để quản lý
       cũng như gọi thực hiện những phương thức cần thiết cho các đối tượng tương ứng trên
       màn hình game.

Danh sách các thuộc tính chính:

STT    Tên thuộc tính           Loại     Ràng buộc       Ý nghĩa/ghi chú
1      menu                Private                       Dùng để gọi hàm vẽ các menu trên
                                                         màn hình game (Puzzle, TryAgain,
                                                         Open, Exit)
2      myUCTimer           Private                       Quản lý thời gian chơi trong một
                                                         lượt game.
3      myUCCounter         Private                       Quản lý số lần di chuyển ô trong
                                                         một lượt game.
4      tbLoiKhuyen         Private                       Dùng để vẽ thông báo lời khuyên
                                                         cho người chơi nên dừng chơi vì họ
                                                         đã chơi quá lâu (dựa trên 2 giá trị
                                                         ucTimer và ucCounter, 2 giá trị này

FIT-HCMUS                                                                         Trang 8
Game Doraemon Puzzle                                                Phiên bản: 2.2
Hồ sơ phân tích                                                     Ngày: 14/01/2010

                                                          đạt tới hạn được quy định trong
                                                          game thì sẽ xuất hiện thông báo
                                                          này sau đó reset về 0)

Danh sách các phương thức chính:

STT   Tên phương thức                      Loại        Ý nghĩa/ghi chú
1     DrawScreen                    <<override>>Public là phương thức override từ lớp cha
                                                       Screen nhiệm vụ là xử lý vẽ màn
                                                       hình game.

2     CheckMousePositionGame Public                     dùng để kiểm tra vị trí chuột có nằm
                                                        trong khung game hay không.

3     OpenImage                     Public              xử lý mở hình ảnh để chơi trong
                                                        game.
4     Puzzle                                            xử lý việc xáo trộn ảnh một cách
                                                        ngẫu nhiên cho mỗi lượt game
5     Reset                                             để reset game thành 1 game mới và
                                                        người dùng sẽ chơi lại từ đầu. xử lý
                                                        mở hình ảnh để chơi trong game.để
                                                        di chuyển thì sẽ tính toán bằng hàm
                                                        này dựa trên tọa độ)
6     SaveGame                                          lưu trạng thái của game bao gồm
                                                        đường dẫn ảnh, mức độ chơi, số lần
                                                        di chuyển, trạng thái các ô trên khung
                                                        game… ra file xml.

7     LoadGame                                          load game bằng cách lấy các thông
                                                        số từ file xml lưu game.

1.3.6Lớp UC

Mô tả:
  • Là lớp cha của các lớp usercontrol (giả lập) trong game (UCSprite, UCCounter,
       UCTimer). Lớp này không có thuộc tính nào cả.

Danh sách các phương thức chính:

STT    Tên phương                  Loại        Ý nghĩa/ghi chú
       thức
1      ShowUC            <<virtual>>Public     là phương thức ảo, các lớp đối tượng con gồm
                                               4 màn hình sẽ override lại phương thứ này để
                                               vẽ ra màn hình chứa nó.

FIT-HCMUS                                                                          Trang 9
Game Doraemon Puzzle                                                  Phiên bản: 2.2
Hồ sơ phân tích                                                       Ngày: 14/01/2010




1.3.7Lớp UCCounter

Mô tả:
  • Là lớp xử lý việc đếm số lần di chuyển trong mỗi lượt game. Tối đa là 9999 bước. Sau số
       bước này sẽ hiện thông báo lời khuyên như trên và reset về 0.

Danh sách các thuộc tính chính:

STT    Tên thuộc tính           Loại       Ràng buộc        Ý nghĩa/ghi chú
1      count               Private                          Giá trị dùng để lưu số lần di
                                                            chuyển ô game.
2      arr_pic             Private                          Mảng chứa các ảnh của
                                                            UCCounter. Cụ thể là có tối đa 4
                                                            ảnh. (9999 bước)

Danh sách các phương thức chính:

STT    Tên phương                  Loại         Ý nghĩa/ghi chú
       thức
1      SetImage           Public                dùng để set ảnh cho UCCounter. (số ảnh tối đa
                                                4 ảnh)
2      IncreaseCounter    Public                xử lý tăng biến count mỗi lần di chuyển. Nếu
                                                vượt quá 9999 thì hiện màn hình thông báo lời
                                                khuyên
3      ResetCounter       Public                dùng để reset Counter về 0.
4      ShowUC             <<override>Public     là hàm override lại từ hàm cùng tên của lớp
                                                cha xử lý vẽ UCCounter này ra màn hình game

1.3.8Lớp UCTimer

Mô tả:
  • Là lớp xử lý việc tính và thể hiện ra thời gian chơi trong mỗi lượt game. Tối đa là 99 phút
       bước. Sau số bước này sẽ hiện thông báo lời khuyên như trên và reset về 0.

Danh sách các thuộc tính chính:

STT    Tên thuộc tính           Loại       Ràng buộc        Ý nghĩa/ghi chú
1      myTimer             Private                          Sau mỗi giây thì giá trị giây và
                                                            phút hiện tại của thời gian cũng


FIT-HCMUS                                                                           Trang 10
Game Doraemon Puzzle                                                 Phiên bản: 2.2
Hồ sơ phân tích                                                      Ngày: 14/01/2010

                                                          được cập nhật tương ứng. Nếu vượt
                                                          quá thời gian quy định sẽ hiện
                                                          thông báo lời khuyên
2      arr_pic             Private                        Mảng chứa các ảnh của UTimer.
                                                          Cụ thể là có tối đa 99 phút.
3      Cur_min             Private                        Cho biết phút hiện tại là bao nhiêu
4      Cur_sec             Private                        Cho biết giay hiện tại là bao nhiêu
5      Status              Private                        Cho biết trạng thái UCTimer hiện
                                                          tại ra sao. (Start, Stop, Pause,
                                                          Resume)

Danh sách các phương thức chính:

STT    Tên phương                  Loại        Ý nghĩa/ghi chú
       thức
1      SetImage           Public               dùng để set ảnh cho UCTimer. (số ảnh tối đa 5
                                               ảnh vì gồm 2 ảnh phút, 2 ảnh giây, 1 ảnh dấu :
                                               ngắt ở giữa)
2      Start              Public               Bắt đầu chạy UCTimer
3      Stop               Public               Ngừng hắn UCTimer
4      Pause              Public               Tạm dừng UCTimer khi cần thiết. (Ví dụ khi
                                               mở ảnh)
5      Resume             Public               Resume tiếp tục UCTimer bị tạm dừng.
6      ShowUC             <<override>Public    là hàm override lại từ hàm cùng tên của lớp
                                               cha xử lý vẽ UCTImer này ra màn hình game

1.3.9Lớp UCSprite

Mô tả:
  • Là lớp xử lý cho Doraemon di chuyển động ở ngoài màn hình chính. Hình doraemon thực
       chất là một hình chứa liên tiếp hình doraemon với các trạng thái cảm xúc khác nhau, sẽ
       được tính toán để cắt, và thay đổi frame tiếp theo trong ảnh dài đó.

Danh sách các thuộc tính chính:

STT    Tên thuộc tính           Loại      Ràng buộc       Ý nghĩa/ghi chú
1      x                   Private                        Tọa độ x của UCSprite
2      y                   Private                        Tọa độ y của UCSprite
3      h                   Private                        Chiều cao của UCSprite
4      w                   Private                        Chiều rộng của UCSprite
5      bm                  Private                        Mảng các frame ảnh trong ảnh dài
                                                          của UCSprite. (được gán giá trị sau

FIT-HCMUS                                                                          Trang 11
Game Doraemon Puzzle                                                  Phiên bản: 2.2
Hồ sơ phân tích                                                       Ngày: 14/01/2010

                                                            hàm SplitBitmap)

Danh sách các phương thức chính:

STT    Tên phương                   Loại        Ý nghĩa/ghi chú
       thức
1      NextFrame          Public                Dùng để tăng chỉ số index của frame để thay
                                                đổi ảnh Doraemon. (đến frame cuối thì quay lại
                                                frame đầu tiên của ảnh)
2      ShowUC             <<override>Public     là hàm override lại từ hàm cùng tên của lớp
                                                cha xử lý vẽ UCSprite này ra màn hình game

1.3.10Lớp Message

Mô tả:
  • Là lớp cha của các lớp thông báo trong game. Lớp này không có thuộc tính nào cả.

Danh sách các phương thứ chính:

STT    Tên phương thức         Loại         Ý nghĩa/ghi chú
1      DrawThongBao        <<virtual>>      là phương thức ảo, các lớp đối tượng con gồm 4
                           Public           màn hình sẽ override lại phương thứ này.

1.3.11Lớp MessageLoadGame

Mô tả:
  • Là lớp chứa phương thức vẽ ra màn hình thông báo người dùng chưa lưu game lần nào
       nên không load game được.
  • Lớp này không có thuộc tính.

Danh sách các phương thức chính:

STT   Tên phương thức                     Loại        Ý nghĩa/ghi chú
1     DrawThongBao                 <<override>>Public override lại từ phương thức cùng tên
                                                      của lớp cha. Nhiệm vụ là vẽ ra màn
                                                      hình thông báo chưa lưu game lần nào.

2     CheckMousePositionOK Public                       kiểm tra tọa độ chuột có nằm trong nút
                                                        OK hay không (để xử lý các sự kiện
                                                        như mouse up)

1.3.12Lớp MessagePuzzle

Mô tả:
  • Là lớp chứa phương thức vẽ ra màn hình thông báo người dùng chưa ấn nút puzzle thì sẽ
FIT-HCMUS                                                                          Trang 12
Game Doraemon Puzzle                                                   Phiên bản: 2.2
Hồ sơ phân tích                                                        Ngày: 14/01/2010

        không được phép di chuyển các ô trên khung game.
    •   Lớp này không có thuộc tính.

Danh sách các phương thức chính:

STT     Tên phương thức                  Loại        Ý nghĩa/ghi chú
1       DrawThongBao              <<override>>Public override lại từ phương thức cùng tên
                                                     của lớp cha. Nhiệm vụ là vẽ ra màn
                                                     hình thông báo chưa ấn nút puzzle.

2       CheckMousePositionOK Public                     kiểm tra tọa độ chuột có nằm trong nút
                                                        OK hay không (để xử lý các sự kiện
                                                        như mouse up)

1.3.13Lớp MessageSave

Mô tả:
  • Là lớp chứa phương thức vẽ ra màn hình thông báo người dùng có muốn lưu game khi
       thoát khỏi game không khi họ đang chơi giữa chừng. (chỉ hiện ra khi người dùng bắt đầu
       chơi game, nếu vào game mà không chơi cái thoát ra thì sẽ không hiện lên)
  • Lớp này không có thuộc tính.

Danh sách các phương thức chính:

STT     Tên phương thức                   Loại        Ý nghĩa/ghi chú
1       DrawThongBao               <<override>>Public override lại từ phương thức cùng tên
                                                      của lớp cha. Nhiệm vụ là vẽ ra màn
                                                      hình thông báo có muốn lưu game để
                                                      lần sau chơi tiếp không.

2       CheckMousePositionYes Public                     kiểm tra tọa độ chuột có nằm trong
                                                         nútYes hay không (để xử lý các sự kiện
                                                         như mouse up)
3       CheckMousePositionNo       Public                kiểm tra tọa độ chuột có nằm trong
                                                         nútNo hay không (để xử lý các sự kiện
                                                         như mouse up)

1.3.14Lớp MessageWarning

Mô tả:
  • Là lớp chưa phương thức vẽ ra màn hình thông báo người dùng nên dừng chơi game vì
       chơi quá nhiều (giới hạn counter 9999 lần di chuyển và timer 99 phút) Sau khi hiện ra thì
       nếu counter hay timer quá giới hạn sẽ bị reset về 0.
  • Lớp này không có thuộc tính.

Danh sách các phương thức chính:
FIT-HCMUS                                                                           Trang 13
Game Doraemon Puzzle                                                  Phiên bản: 2.2
Hồ sơ phân tích                                                       Ngày: 14/01/2010


STT    Tên phương thức                   Loại        Ý nghĩa/ghi chú
1      DrawThongBao               <<override>>Public override lại từ phương thức cùng tên
                                                     của lớp cha. Nhiệm vụ là vẽ ra màn
                                                     hình thông báo lời khuyên dừng chơi
                                                     game.

2      CheckMousePositionOK Public                      kiểm tra tọa độ chuột có nằm trong nút
                                                        OK hay không (để xử lý các sự kiện
                                                        như mouse up)

1.3.15Lớp CWin

Mô tả:
  • Lớp chứa thuộc tính, phương thức để vẽ thông báo chiến thắng trong game. Xử lý thay
       đổi ảnh nên sẽ tạo ra hiệu ứng động dòng thông báo chúc mừng chiến thắng.

Danh sách các thuộc tính chính:

STT    Tên thuộc tính           Loại        Ràng buộc       Ý nghĩa/ghi chú
1      index               Private                          Cho biết hình chúc mừng chiến
                                                            thắng hiện tại đang hiện lên game
                                                            là hình gì.
2      myTimer             Private                          Sau mỗi lần tick thì sẽ gọi phương
                                                            thức vẽ thông báo chiến thắng.

Danh sách các phương thức chính:

STT    Tên phương thức                     Loại         Ý nghĩa/ghi chú
3      DrawWin                    Public                Dùng để vẽ thông báo chiến thắng ra
                                                        game, mỗi lần gọi sẽ thay thế index để
                                                        tạo hiệu ứng nhấp nháy, sống động cho
                                                        thông báo chiến thắng.


1.3.16Lớp CGameFrame

Mô tả:
  • Lớp xử lý một số chức năng và thao tác trên khung game chính như kiểm tra có xáo trước
       khi nhấn chưa bằng cách đặt cờ, resize ảnh để bỏ vào khung cho phù hợp… chi tiết xem
       bên dưới.

Danh sách các thuộc tính chính:


FIT-HCMUS                                                                          Trang 14
Game Doraemon Puzzle                                                  Phiên bản: 2.2
Hồ sơ phân tích                                                       Ngày: 14/01/2010

STT    Tên thuộc tính           Loại       Ràng buộc       Ý nghĩa/ghi chú
1      imageFile           Private                         Ảnh gốc
2      imagePath           Private                         Đường dẫn của ảnh gốc
3      cellSize            Private                         Kích thước của một ô ảnh
4      cellCount           Private                         Số lương ô ảnh theo chiều ngang
                                                           và chiều dọc của khung game.
5      flagInit            Private                         Cờ báo hiệu người dùng có thay
                                                           đổi kích thước gì không.
6      flagPuzzle          Private                         Cờ đã xáo trộn hay chưa
7      picCell             Private                         Mảng các ô ảnh
8      emptyCellIndex      Private                         Vị trí của khung hình trống
9      emptyImage          Private                         Ảnh của ô trống

Danh sách các phương thức chính:

STT    Tên phương thức                    Loại         Ý nghĩa/ghi chú
1      LoadPicture               Public                Nạp ảnh từ file, tính toán kích thước và
                                                       phân chia ảnh
2      DividePicture             Public                Dùng để cắt ảnh gốc ra thành các phần
                                                       nhỏ, mỗi phần cho vào 1 ô ảnh
                                                       (picCell), xếp vị trí của ô ảnh trên
                                                       GameFrame (picCell có giá trị tag để
                                                       lưu lại số thứ tự của ô ảnh)
3      RandomPicture             Public                Hoán vị 2 ô ảnh với nhau trên
                                                       GameFrame.
4      ResizePicture             Public                Thay đổi kích thước ảnh
5      CloneImage                Public                Hàm cắt ảnh, truyền vào kích thước
                                                       khung chữ nhật cần cắt và trả về ảnh
                                                       bitmap sau khi cắt.
6      PushImage                 Public                Hoán vị ô ảnh được nhấn với ô trống.
7      IsMoveValid               Public                Kiểm tra xem hướng di chuyển của ô có
                                                       được phép hay không. (Ví dụ: nếu
                                                       hướng di chuyển là Down thì phải có ít
                                                       nhất 1 khung ảnh ở trên ô trống tức là
                                                       vị trí ô trống ko được nằm ở dòng đầu
                                                       tiên)
8      NearEmptyCell             Public                Kiểm tra 4 hướng có hướng nào di
                                                       chuyển được không.
9      CheckFinish               Public                Kiểm tra thắng

1.3.17Lớp CPictureCell

Mô tả:
  • Lớp lớp chứa các thuộc tính thể hiện cấu trúc của một cell ảnh, tương tự như Picturebox.

FIT-HCMUS                                                                          Trang 15
Game Doraemon Puzzle                                           Phiên bản: 2.2
Hồ sơ phân tích                                                Ngày: 14/01/2010

        Sử dụng cho UCTimer, UCCounter, GameFrame.
    •   Lớp này không có phương thức.

Danh sách các thuộc tính chính:

STT     Tên thuộc tính          Loại   Ràng buộc     Ý nghĩa/ghi chú
1       image              Private                   Lưu hình ảnh của cell game đó.
2       tag                Private                   Dùng để lưu vị trí ảnh hiện tại ở ô
                                                     đó (số thứ tự của ô ảnh trong
                                                     GameFrame). (chỉ dùng cho
                                                     GameFrame)
3       name               Private                   Lưu vị trí thiệt của ô đó. (chỉ dùng
                                                     cho GameFrame)
4       location           Private                   Lưu tọa độ của cell đó.
5       size               Private                   Lưu kích thước của cell đó. (chỉ
                                                     dùng cho GameFrame)




FIT-HCMUS                                                                    Trang 16

Weitere ähnliche Inhalte

Mehr von Nguyen Tran (20)

11script
11script11script
11script
 
10team
10team10team
10team
 
09componentdeployment
09componentdeployment09componentdeployment
09componentdeployment
 
08activity
08activity08activity
08activity
 
07state
07state07state
07state
 
06collaboration
06collaboration06collaboration
06collaboration
 
05sequence
05sequence05sequence
05sequence
 
04class
04class04class
04class
 
03usecase
03usecase03usecase
03usecase
 
02intro
02intro02intro
02intro
 
01about
01about01about
01about
 
Clear case
Clear caseClear case
Clear case
 
Business process excution language
Business process excution languageBusiness process excution language
Business process excution language
 
Vs doc man
Vs doc manVs doc man
Vs doc man
 
Cm mi
Cm miCm mi
Cm mi
 
Sql packager
Sql packagerSql packager
Sql packager
 
Snag it
Snag itSnag it
Snag it
 
Record mydesktop
Record mydesktopRecord mydesktop
Record mydesktop
 
Rational suite&rational rose enterprise
Rational suite&rational rose enterpriseRational suite&rational rose enterprise
Rational suite&rational rose enterprise
 
Umodel 2009
Umodel 2009Umodel 2009
Umodel 2009
 

Pttkpm 4 phan tich done

  • 1. ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN CQ – HK1 – 2k9 – 2k10 Đồ án môn Phân tích và thiết kế phần mềm Lớp TH2006 + CNTN06 Hồ sơ Phân tích Game Doraemon Puzzle Version 2.1 Sinh viên thực hiện: 0612292 – Trần Hồ Lê Nguyên 0612358 – Thái Ngân Phụng
  • 2.
  • 3. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 Bảng ghi nhận thay đổi tài liệu Ngày Phiên bản Mô tả Tác giả 13/01/2010 1.0 Thiết kế lần 1 Trần Hồ Lê Nguyên 13/01/2010 2.0 Thiết kế lần 2, liên kết và kế thừa Trần Hồ Lê Nguyên 14/01/2010 2.1 Thiết kế lần 3 tách lớp Trần Hồ Lê Nguyên 14/01/2010 2.2 Sửa chữa tách lớp, sửa thuộc tính Thái Ngân Phụng FIT-HCMUS Trang 1
  • 4. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 Mục lục 1. Sơ đồ lớp (mức phân tích) 3 1.1 Sơ đồ lớp (mức phân tích) 3 1.2 Danh sách các lớp đối tượng và quan hệ 4 1.3 Mô tả chi tiết từng lớp đối tượng 5 1.3.1 Lớp Screen 5 1.3.2 Lớp ScreenAbout 5 1.3.3 Lớp ScreenMain 6 1.3.4 DrawScreen Lớp ScreenOption 6 1.3.5 Lớp ScreenGame 8 1.3.6 Lớp UC 9 1.3.7 Lớp UCCounter 10 1.3.8 Lớp UCTimer 10 1.3.9 Lớp UCSprite 11 1.3.10 Lớp Message 12 1.3.11 Lớp MessageLoadGame 12 1.3.12 Lớp MessagePuzzle 12 1.3.13 Lớp MessageSave 13 1.3.14 Lớp MessageWarning 13 1.3.15 Lớp CWin 14 1.3.16 Lớp CGameFrame 14 1.3.17 Lớp CPictureCell 15 FIT-HCMUS Trang 2
  • 5. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 1.Sơ đồ lớp (mức phân tích) 1.1Sơ đồ lớp (mức phân tích) Message MessageLoadGame +DrawThongBao() <<override>>+DrawThongBao() ScreenOption +CheckMousePositionOK() -chkSound -dimension <<override>>+DrawScreen() MessagePuzzle +ChooseLocaiton() MessageWarning +CheckMousePositionDimension3() MessageSave <<override>>+DrawThongBao() +CheckMousePositionDimension4() +CheckMousePositionOK() <<override>>+DrawThongBao() +CheckMousePositionDimension5() +CheckMousePositionOK() +CheckMousePositionDimension6() <<override>>+DrawThongBao() +CheckMousePositionYes() +CheckMousePositionDimension7() 0..* +CheckMousePositionSound() +CheckMousePostionNo() 0..* +SetDimension() 1..* +TurnSound() CWin 1 +index 1 +myTimer Screen ScreenGame 1 +DrawWin() -menu ScreenAbout <<virtual>>+DrawScreen() -myUCTimer: UCTimer 0..1 -myUCCounter: UCCounter <<override>>+DrawScreen() -tbLoiKhuyen: MessageWarning +CheckMousePositionOK() 1 -tbSave: MessageSave -tbPuzzle: MessagePuzzle -win: CWin ScreenMain -khungGame: GameFrame -menu <<override>>+DrawScreen() +uc1: UCSprite GameFrame +CheckMousePositionGame() <<override>>+DrawScreen() +OpenImage() +SplitBitMaps() -imageFile +Puzzle() -imagePath +Reset() 1 1 -cellSize +GetCurCell() -cellCount +SaveGame() 1 1 -flagInit 1 +LoadGame() -flagPuzzle -picCell UCSprite -emptyCellIndex 1 UCCounter -x -emptyImage -y -count 1 -arr_pic -h +LoadPicture() +DividePicture() -w +RandomPicture() +SetImage() -bm +ResizeImage() +IncreaseCounter() +ResetCounter() +NextFrame() +CloneImage() <<override>>+ShowUC() +PushImage() <<override>>+ShowUC() 1 +IsMoveValid() +NearEmptyCell() 1 +CheckFinish() * 1 CPictureCell UCTimer -image * -arr_pic -tag -myTimer -name -cur_min -location -cur_sec UC * -status -size 1 +SetImage() <<virtual>>+ShowUC() +Start() +Stop() +Pause() +Resume() <<override>>+ShowUC() FIT-HCMUS Trang 3
  • 6. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 1.2Danh sách các lớp đối tượng và quan hệ STT Tên lớp/quan hệ Loại Ý nghĩa/Ghi chú 1 Screen Abstract Lớp cha của các lớp màn hình trong game 2 ScreenAbout Public Lớp màn hình about thể hiện thông tin tác giả của game 3 ScreenGame Public Lớp màn hình game, là nơi xử lý chính khi chơi game 4 ScreenMain Public Lớp màn hình Main, là lớp thể hiện màn hình chính khi bật game lên. Từ màn hình đó chứa các nút dẫn tới các màn hình, chức năng chính khác. 5 ScreenOption Public Lớp màn hình Option, là lớp xử lý liên quan đến việc lưu tùy chọn bật / tắt âm thanh, chọn mức độ khó của game 6 UC Abstract Lớp cha của lớp usercontrol (được giả lập chứ không phải là control của VS) UCCounter Public Lớp xử lý chính của thao tác đếm số lần di chuyển ô trong game 8 UCSprite Public Lớp xử lý hình động Doraemon (hình trang chí) ở màn hình Main. 9 UCTimer Public Lớp xử lý chính của thao tác tính thời gian chơi của game 10 Message Abstract Lớp cha của các lớp thông báo trong game 11 MessageLoadGame Public Vẽ thông báo báo chưa save game lần nào nếu người dùng nhấn vào nút continue mà chưa từng save game trước đó. 12 MessagePuzzle Public Vẽ thông báo báo bắt buộc phải xáo game trước khi chơi. 13 MessageSave Public Vẽ thông báo hỏi có save game không khi ấn nút exit thoát khỏi game khi đang chơi giữa chừng. 14 MessageWarning Public Vẽ thông báo báo người dùng nên dừng chơi vì chơi đã lâu rồi. (không phải xét thắng thua) 15 CWin Public Hiện thông báo chiến thắng nhấp nháy chúc FIT-HCMUS Trang 4
  • 7. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 mừng chiến thắng khi giải được puzzle 16 CGameFrame Public Xử lý các thao tác liên quan tới khung game trong màn hình game. 17 CPictureCell Public Dùng trong lớp UCCounter, UCTimer và CGameFrame để khai báo các ô ảnh (gồm tên, tọa độ, kích thước,…) tương tự như Picturebox 1.3Mô tả chi tiết từng lớp đối tượng 1.3.1Lớp Screen Mô tả: • Là lớp cha của các lớp màn hình trong game (có 4 màn hình chính là option, main, game, about). Lớp này không có thuộc tính nào cả. Danh sách các phương thứ chính: STT Tên phương thức Loại Ý nghĩa/ghi chú DrawScreen <<virtual>> là phương thức ảo, các lớp đối tượng con gồm 4 Public màn hình sẽ override lại phương thứ này. 1.3.2Lớp ScreenAbout Mô tả: • Là lớp chưa phương thức vẽ ra màn hình About thể hiện thông tin tác giả chương trình game. • Lớp này không có thuộc tính. Danh sách các phương thức chính: STT Tên phương thức Loại Ý nghĩa/ghi chú DrawScreen <<override>>Public override lại từ phương thức cùng tên của lớp cha. Nhiệm vụ là vẽ ra màn hình About. CheckMousePositionOK Public kiểm tra tọa độ chuột có nằm trong nút OK hay không (để xử lý các sự kiện như mouse up) FIT-HCMUS Trang 5
  • 8. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 1.3.3Lớp ScreenMain Mô tả: • Lớp chứa phương thức vẽ màn hình chính trong game, là nơi chứa các liên kết tới các màn hình, chức năng chính khác trong game. • Lớp còn chứa phương thức cắt ảnh để dùng cho usercontrol Doraemon (giả lập) Danh sách các thuộc tính chính: STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú 1 Menu Private Là các button ngoài màn hình chính. Dùng thuộc tính. này để truy xuất tới hàm vẽ các button đó. 2 uc1 Private Là thuộc tính kiểu UCSprite, thể hiện, gọi các phương thức xử lý cho hình ảnh chuyển động Doraemon ở ngoài màn hình chính. Danh sách các phương thức chính: STT Tên phương Loại Ý nghĩa/ghi chú thức 1 DrawScreen <<override>>Public là phương thức override từ lớp cha Screen nhiệm vụ là xử lý vẽ màn hình chính. 2 SplitBitmap Public dùng xử lý cắt ảnh doraemon dài (gồm nhiều hình ảnh doraemon khác nhau liên tiếp) thành từng phần nhỏ để thể hiện các trạng thái, hỉnh ảnh khác nhau của doraemon. a. DrawScreen: là phương thức override từ lớp cha Screen nhiệm vụ là xử lý vẽ màn hình chính. b. SplitBitmap: dùng xử lý cắt ảnh doraemon dài (gồm nhiều hình ảnh doraemon khác nhau liên tiếp) thành từng phần nhỏ để thể hiện các trạng thái, hỉnh ảnh khác nhau của doraemon. 1.3.4DrawScreen Lớp ScreenOption Mô tả: • Là lớp xử lý các tùy chọn về mức độ khó của game (số ô trong khung game) và xử lý bật tắt âm thanh. Danh sách các thuộc tính chính: FIT-HCMUS Trang 6
  • 9. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú 1 chkSound Private Giá trị dùng để lưu tùy chọn bật hay tắt nhạc nền. 2 dimension Private Lưu giữ giá trị mức độ khó của game để truyền cho KhungGame xử lý. Danh sách các phương thức chính: STT Tên phương thức Loại Ý nghĩa/ghi chú 1 DrawScreen <<override>>Public là phương thức override từ lớp cha Screen nhiệm vụ là xử lý vẽ màn hình option. 2 ChooseLocation: Public là phương thức trả về tọa độ cần vẽ của biểu tượng đánh dấu đang chọn độ khó nào. (3x3, hay 4x4) 3 CheckMousePositionDimension3 Public kiểm tra xem vị trí chuột có nằm trong vùng chứa biểu tượng đánh dấu + text thế hiển mức độ khó 3x3 hay không. Ví dụ khi nhấn vào chữ 3x3 thì biểu tượng đánh dấu sẽ được vẽ lên và xác định chọn mức độ khó 3x3 chứ không nhất thiết muốn chọn thì lúc nào cũng nhấn chuột đúng vào cái ô biểu tượng nhỏ xí. 4 CheckMousePositionDimension4 Public kiểm tra xem vị trí chuột có nằm trong vùng chứa biểu tượng đánh dấu + text thế hiển mức độ khó 4x4 hay không 5 CheckMousePositionDimension5 Public kiểm tra xem vị trí chuột có nằm trong vùng chứa biểu tượng đánh dấu + text thế hiển mức độ khó 5x5 hay không 6 CheckMousePositionDimension6 Public kiểm tra xem vị trí chuột có nằm trong vùng chứa biểu tượng đánh dấu + text thế hiển mức độ khó 6x6 hay không 7 CheckMousePositionDimension7 Public kiểm tra xem vị trí chuột có nằm trong vùng chứa biểu FIT-HCMUS Trang 7
  • 10. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 tượng đánh dấu + text thế hiển mức độ khó 7x7 hay không 8 CheckMousePositionSound Public kiểm tra xem vị trí chuột có nằm trong vùng chứa biểu tượng đánh dấu + text thế hiển cho việc bật tắt nhạc nền hay không 9 SetDimension Public Dùng để lấy giá trị dimension khi người dùng chọn độ khó tương tứng với giá trị dimension đó. Sau đó mới biết giá trị nào mà vẽ cho đúng 10 TurnSound Public hàm dùng để xử lý khi bật tắt âm thanh. Khi âm thanh đang mở thì nếu nhấn vào vùng Sound trên màn hình Option thì sẽ chuyển thành tắt và ngược lại 1.3.5Lớp ScreenGame Mô tả: • Là lớp xử lý chính của màn hình game, từ việc vẽ màn hình, chơi, reset, xáo, lưu, load game… • Lớp còn chứa các thuộc tính như myUCTimer, myUCCounter, khungGame… để quản lý cũng như gọi thực hiện những phương thức cần thiết cho các đối tượng tương ứng trên màn hình game. Danh sách các thuộc tính chính: STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú 1 menu Private Dùng để gọi hàm vẽ các menu trên màn hình game (Puzzle, TryAgain, Open, Exit) 2 myUCTimer Private Quản lý thời gian chơi trong một lượt game. 3 myUCCounter Private Quản lý số lần di chuyển ô trong một lượt game. 4 tbLoiKhuyen Private Dùng để vẽ thông báo lời khuyên cho người chơi nên dừng chơi vì họ đã chơi quá lâu (dựa trên 2 giá trị ucTimer và ucCounter, 2 giá trị này FIT-HCMUS Trang 8
  • 11. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 đạt tới hạn được quy định trong game thì sẽ xuất hiện thông báo này sau đó reset về 0) Danh sách các phương thức chính: STT Tên phương thức Loại Ý nghĩa/ghi chú 1 DrawScreen <<override>>Public là phương thức override từ lớp cha Screen nhiệm vụ là xử lý vẽ màn hình game. 2 CheckMousePositionGame Public dùng để kiểm tra vị trí chuột có nằm trong khung game hay không. 3 OpenImage Public xử lý mở hình ảnh để chơi trong game. 4 Puzzle xử lý việc xáo trộn ảnh một cách ngẫu nhiên cho mỗi lượt game 5 Reset để reset game thành 1 game mới và người dùng sẽ chơi lại từ đầu. xử lý mở hình ảnh để chơi trong game.để di chuyển thì sẽ tính toán bằng hàm này dựa trên tọa độ) 6 SaveGame lưu trạng thái của game bao gồm đường dẫn ảnh, mức độ chơi, số lần di chuyển, trạng thái các ô trên khung game… ra file xml. 7 LoadGame load game bằng cách lấy các thông số từ file xml lưu game. 1.3.6Lớp UC Mô tả: • Là lớp cha của các lớp usercontrol (giả lập) trong game (UCSprite, UCCounter, UCTimer). Lớp này không có thuộc tính nào cả. Danh sách các phương thức chính: STT Tên phương Loại Ý nghĩa/ghi chú thức 1 ShowUC <<virtual>>Public là phương thức ảo, các lớp đối tượng con gồm 4 màn hình sẽ override lại phương thứ này để vẽ ra màn hình chứa nó. FIT-HCMUS Trang 9
  • 12. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 1.3.7Lớp UCCounter Mô tả: • Là lớp xử lý việc đếm số lần di chuyển trong mỗi lượt game. Tối đa là 9999 bước. Sau số bước này sẽ hiện thông báo lời khuyên như trên và reset về 0. Danh sách các thuộc tính chính: STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú 1 count Private Giá trị dùng để lưu số lần di chuyển ô game. 2 arr_pic Private Mảng chứa các ảnh của UCCounter. Cụ thể là có tối đa 4 ảnh. (9999 bước) Danh sách các phương thức chính: STT Tên phương Loại Ý nghĩa/ghi chú thức 1 SetImage Public dùng để set ảnh cho UCCounter. (số ảnh tối đa 4 ảnh) 2 IncreaseCounter Public xử lý tăng biến count mỗi lần di chuyển. Nếu vượt quá 9999 thì hiện màn hình thông báo lời khuyên 3 ResetCounter Public dùng để reset Counter về 0. 4 ShowUC <<override>Public là hàm override lại từ hàm cùng tên của lớp cha xử lý vẽ UCCounter này ra màn hình game 1.3.8Lớp UCTimer Mô tả: • Là lớp xử lý việc tính và thể hiện ra thời gian chơi trong mỗi lượt game. Tối đa là 99 phút bước. Sau số bước này sẽ hiện thông báo lời khuyên như trên và reset về 0. Danh sách các thuộc tính chính: STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú 1 myTimer Private Sau mỗi giây thì giá trị giây và phút hiện tại của thời gian cũng FIT-HCMUS Trang 10
  • 13. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 được cập nhật tương ứng. Nếu vượt quá thời gian quy định sẽ hiện thông báo lời khuyên 2 arr_pic Private Mảng chứa các ảnh của UTimer. Cụ thể là có tối đa 99 phút. 3 Cur_min Private Cho biết phút hiện tại là bao nhiêu 4 Cur_sec Private Cho biết giay hiện tại là bao nhiêu 5 Status Private Cho biết trạng thái UCTimer hiện tại ra sao. (Start, Stop, Pause, Resume) Danh sách các phương thức chính: STT Tên phương Loại Ý nghĩa/ghi chú thức 1 SetImage Public dùng để set ảnh cho UCTimer. (số ảnh tối đa 5 ảnh vì gồm 2 ảnh phút, 2 ảnh giây, 1 ảnh dấu : ngắt ở giữa) 2 Start Public Bắt đầu chạy UCTimer 3 Stop Public Ngừng hắn UCTimer 4 Pause Public Tạm dừng UCTimer khi cần thiết. (Ví dụ khi mở ảnh) 5 Resume Public Resume tiếp tục UCTimer bị tạm dừng. 6 ShowUC <<override>Public là hàm override lại từ hàm cùng tên của lớp cha xử lý vẽ UCTImer này ra màn hình game 1.3.9Lớp UCSprite Mô tả: • Là lớp xử lý cho Doraemon di chuyển động ở ngoài màn hình chính. Hình doraemon thực chất là một hình chứa liên tiếp hình doraemon với các trạng thái cảm xúc khác nhau, sẽ được tính toán để cắt, và thay đổi frame tiếp theo trong ảnh dài đó. Danh sách các thuộc tính chính: STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú 1 x Private Tọa độ x của UCSprite 2 y Private Tọa độ y của UCSprite 3 h Private Chiều cao của UCSprite 4 w Private Chiều rộng của UCSprite 5 bm Private Mảng các frame ảnh trong ảnh dài của UCSprite. (được gán giá trị sau FIT-HCMUS Trang 11
  • 14. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 hàm SplitBitmap) Danh sách các phương thức chính: STT Tên phương Loại Ý nghĩa/ghi chú thức 1 NextFrame Public Dùng để tăng chỉ số index của frame để thay đổi ảnh Doraemon. (đến frame cuối thì quay lại frame đầu tiên của ảnh) 2 ShowUC <<override>Public là hàm override lại từ hàm cùng tên của lớp cha xử lý vẽ UCSprite này ra màn hình game 1.3.10Lớp Message Mô tả: • Là lớp cha của các lớp thông báo trong game. Lớp này không có thuộc tính nào cả. Danh sách các phương thứ chính: STT Tên phương thức Loại Ý nghĩa/ghi chú 1 DrawThongBao <<virtual>> là phương thức ảo, các lớp đối tượng con gồm 4 Public màn hình sẽ override lại phương thứ này. 1.3.11Lớp MessageLoadGame Mô tả: • Là lớp chứa phương thức vẽ ra màn hình thông báo người dùng chưa lưu game lần nào nên không load game được. • Lớp này không có thuộc tính. Danh sách các phương thức chính: STT Tên phương thức Loại Ý nghĩa/ghi chú 1 DrawThongBao <<override>>Public override lại từ phương thức cùng tên của lớp cha. Nhiệm vụ là vẽ ra màn hình thông báo chưa lưu game lần nào. 2 CheckMousePositionOK Public kiểm tra tọa độ chuột có nằm trong nút OK hay không (để xử lý các sự kiện như mouse up) 1.3.12Lớp MessagePuzzle Mô tả: • Là lớp chứa phương thức vẽ ra màn hình thông báo người dùng chưa ấn nút puzzle thì sẽ FIT-HCMUS Trang 12
  • 15. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 không được phép di chuyển các ô trên khung game. • Lớp này không có thuộc tính. Danh sách các phương thức chính: STT Tên phương thức Loại Ý nghĩa/ghi chú 1 DrawThongBao <<override>>Public override lại từ phương thức cùng tên của lớp cha. Nhiệm vụ là vẽ ra màn hình thông báo chưa ấn nút puzzle. 2 CheckMousePositionOK Public kiểm tra tọa độ chuột có nằm trong nút OK hay không (để xử lý các sự kiện như mouse up) 1.3.13Lớp MessageSave Mô tả: • Là lớp chứa phương thức vẽ ra màn hình thông báo người dùng có muốn lưu game khi thoát khỏi game không khi họ đang chơi giữa chừng. (chỉ hiện ra khi người dùng bắt đầu chơi game, nếu vào game mà không chơi cái thoát ra thì sẽ không hiện lên) • Lớp này không có thuộc tính. Danh sách các phương thức chính: STT Tên phương thức Loại Ý nghĩa/ghi chú 1 DrawThongBao <<override>>Public override lại từ phương thức cùng tên của lớp cha. Nhiệm vụ là vẽ ra màn hình thông báo có muốn lưu game để lần sau chơi tiếp không. 2 CheckMousePositionYes Public kiểm tra tọa độ chuột có nằm trong nútYes hay không (để xử lý các sự kiện như mouse up) 3 CheckMousePositionNo Public kiểm tra tọa độ chuột có nằm trong nútNo hay không (để xử lý các sự kiện như mouse up) 1.3.14Lớp MessageWarning Mô tả: • Là lớp chưa phương thức vẽ ra màn hình thông báo người dùng nên dừng chơi game vì chơi quá nhiều (giới hạn counter 9999 lần di chuyển và timer 99 phút) Sau khi hiện ra thì nếu counter hay timer quá giới hạn sẽ bị reset về 0. • Lớp này không có thuộc tính. Danh sách các phương thức chính: FIT-HCMUS Trang 13
  • 16. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 STT Tên phương thức Loại Ý nghĩa/ghi chú 1 DrawThongBao <<override>>Public override lại từ phương thức cùng tên của lớp cha. Nhiệm vụ là vẽ ra màn hình thông báo lời khuyên dừng chơi game. 2 CheckMousePositionOK Public kiểm tra tọa độ chuột có nằm trong nút OK hay không (để xử lý các sự kiện như mouse up) 1.3.15Lớp CWin Mô tả: • Lớp chứa thuộc tính, phương thức để vẽ thông báo chiến thắng trong game. Xử lý thay đổi ảnh nên sẽ tạo ra hiệu ứng động dòng thông báo chúc mừng chiến thắng. Danh sách các thuộc tính chính: STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú 1 index Private Cho biết hình chúc mừng chiến thắng hiện tại đang hiện lên game là hình gì. 2 myTimer Private Sau mỗi lần tick thì sẽ gọi phương thức vẽ thông báo chiến thắng. Danh sách các phương thức chính: STT Tên phương thức Loại Ý nghĩa/ghi chú 3 DrawWin Public Dùng để vẽ thông báo chiến thắng ra game, mỗi lần gọi sẽ thay thế index để tạo hiệu ứng nhấp nháy, sống động cho thông báo chiến thắng. 1.3.16Lớp CGameFrame Mô tả: • Lớp xử lý một số chức năng và thao tác trên khung game chính như kiểm tra có xáo trước khi nhấn chưa bằng cách đặt cờ, resize ảnh để bỏ vào khung cho phù hợp… chi tiết xem bên dưới. Danh sách các thuộc tính chính: FIT-HCMUS Trang 14
  • 17. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú 1 imageFile Private Ảnh gốc 2 imagePath Private Đường dẫn của ảnh gốc 3 cellSize Private Kích thước của một ô ảnh 4 cellCount Private Số lương ô ảnh theo chiều ngang và chiều dọc của khung game. 5 flagInit Private Cờ báo hiệu người dùng có thay đổi kích thước gì không. 6 flagPuzzle Private Cờ đã xáo trộn hay chưa 7 picCell Private Mảng các ô ảnh 8 emptyCellIndex Private Vị trí của khung hình trống 9 emptyImage Private Ảnh của ô trống Danh sách các phương thức chính: STT Tên phương thức Loại Ý nghĩa/ghi chú 1 LoadPicture Public Nạp ảnh từ file, tính toán kích thước và phân chia ảnh 2 DividePicture Public Dùng để cắt ảnh gốc ra thành các phần nhỏ, mỗi phần cho vào 1 ô ảnh (picCell), xếp vị trí của ô ảnh trên GameFrame (picCell có giá trị tag để lưu lại số thứ tự của ô ảnh) 3 RandomPicture Public Hoán vị 2 ô ảnh với nhau trên GameFrame. 4 ResizePicture Public Thay đổi kích thước ảnh 5 CloneImage Public Hàm cắt ảnh, truyền vào kích thước khung chữ nhật cần cắt và trả về ảnh bitmap sau khi cắt. 6 PushImage Public Hoán vị ô ảnh được nhấn với ô trống. 7 IsMoveValid Public Kiểm tra xem hướng di chuyển của ô có được phép hay không. (Ví dụ: nếu hướng di chuyển là Down thì phải có ít nhất 1 khung ảnh ở trên ô trống tức là vị trí ô trống ko được nằm ở dòng đầu tiên) 8 NearEmptyCell Public Kiểm tra 4 hướng có hướng nào di chuyển được không. 9 CheckFinish Public Kiểm tra thắng 1.3.17Lớp CPictureCell Mô tả: • Lớp lớp chứa các thuộc tính thể hiện cấu trúc của một cell ảnh, tương tự như Picturebox. FIT-HCMUS Trang 15
  • 18. Game Doraemon Puzzle Phiên bản: 2.2 Hồ sơ phân tích Ngày: 14/01/2010 Sử dụng cho UCTimer, UCCounter, GameFrame. • Lớp này không có phương thức. Danh sách các thuộc tính chính: STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú 1 image Private Lưu hình ảnh của cell game đó. 2 tag Private Dùng để lưu vị trí ảnh hiện tại ở ô đó (số thứ tự của ô ảnh trong GameFrame). (chỉ dùng cho GameFrame) 3 name Private Lưu vị trí thiệt của ô đó. (chỉ dùng cho GameFrame) 4 location Private Lưu tọa độ của cell đó. 5 size Private Lưu kích thước của cell đó. (chỉ dùng cho GameFrame) FIT-HCMUS Trang 16