Tải bản đầy đủ (.pdf) (17 trang)

BÁO CÁO THỰC TẬP-Game xếp hình trên điện thoại android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (753.83 KB, 17 trang )

1


Nhóm 5:
Lê Minh Quang
Nguyễn Huy Thành
Nguyễn Đức Tuấn
Game xếp hình trên điện thoại android
1. Yêu cầu cho game xếp hình
Khám phá các yêu cầu bằng việc phỏng vấn.lập kế hoạch cho buổi phỏng vấn
Interviews:
Kế hoạch phỏng vấn:
Game: Xếp Hình Project reference : XH/01

Người tham dự: Huy Thành (người chơi game)
Quang(developer)
Ngày
5/9/2011
Thời gian bắt đầu
15h.00
Thời gian hỏi
30 p
Địa điểm
cafe
Mục đích của buổi phỏng vấn:
Thảo luận về trò chơi xếp hình và những vấn đề gặp phải khi chơi
Agenda:
- Trò chơi hiện tại
- Vấn đề gây khó khan, bất tiện khi chơi
- Ý kiến của người chơi
Tài Liệu:



Bản đặc tả: mục đích phân loại, sắp xếp và ghi lại các thông tin có được từ việc phỏng vấn.
Bản đặc tả:
1. Các vấn đề của phiên bản hiện tại
- Không lưu được số điểm và thời gian chơi của người chơi
- Không thể đưa bức ảnh yêu thích vào để xếp hình
- Thiếu sự sinh động về hình ảnh và âm thanh
- Không thể trở lại bước đi trước khi chọn sai
- Không lưu được màn chơi
2. Mục tiêu của phiên bản mới
2

- Giao diện đẹp hơn
- Có thể lưu được thông tin người chơi và màn chơi
- Có chức năng back step


Sau khi phỏng vấn có thể tóm tắt 1 bản thông tin yêu cầu từ người chơi. Mục đích là để xác
nhận những yêu cầu của người chơi, đảm bảo rằng người phát triển đã nắm được những yêu
cầu mà người chơi cung cấp.
Interviews summary:
Tóm tắt phỏng vấn:
Game: Xếp Hình Project reference:XH/01
Người tham dự: Huy Thành (người chơi)
Quang (developer)
Mục đích:
Thảo luận về trò chơi xếp hình và những vấn đề gặp phải khi chơi
Số

1



2


3

4


5
Mục thông tin

Không lưu được thông tin người chơi


Không thể trở lại các bước đã đi


Không thể xếp hình với bức hình tùy ý

Khó khan trong việc lưu màn chơi để
thời gian sau chơi tiếp.

Giao diện dễ sử dụng và đẹp mắt
Hành động yêu cầu

Có thể lưu thông tin người chơi như tên,
tuổi,số điểm, level . dễ dàng.


Có thể quay về bước trước nếu cảm thấy
mình đi sai

Có thêm chức năng đưa hình vào.

Thêm chức năng lưu màn chơi cho người
dung.

Thiết kế giao diện đẹp và dễ sử dụng


Danh sách các yêu cầu cho trò chơi xếp hình.
Đây là các yêu cầu được lấy từ cuộc phỏng vấn với người chơi. Nó chỉ là danh sách cơ sở cho
việc phát triển trò chơi theo cách hướng đối tượng.
Game xếp hình phải:
- R1: Dễ dàng lưu thông tin người chơi như tên, tuổi, thời gian và level
- R2: Dễ dàng thay đổi hình ảnh xếp hình
3

- R3: Lưu màn chơi khi người chơi bận
- R4: Có thể back lại các bước đã đi
- R5: Cần có âm thanh nền hoặc theo phím bấm
- R6: Cần đếm thời gian mà người chơi mất
Chương 3: Use case
1. Mục đích
Mô hình use case sẽ giúp trực quan hóa những ý tưởng và các hoạt động trong hệ thống cần
xấy dựng. Do đó sẽ dễ dàng chia sẻ ý tưởng và giao tiếp với người sử dụng, và có thể kiểm
chứng tốt hơn.
Các bước xây dựng use case
Xác định actor

Actor hay còn gọi là tác nhân. Để xác định được tác nhân cho hệ thống thì cần phải trả lời
được những câu hỏi sau:
- Ai là người kích hoạt hệ thống?
- Ai là người duy trì hệ thống?
- Ai là người được hệ thống giúp đỡ?
- Ai là người lấy thông tin từ hệ thống?
- Ai là người cung cấp thông tin cho hệ thống?
- Hệ thống nào sử dụng hệ thống này không?
Với những câu hỏi ở trên ta xác minh được tác nhân duy nhất sử dụng game xếp hình và duy trì
game hay trao đổi thông tin với game chính là người chơi (player).
Xác định use case
Nếu actor là một diễn viên thì use case chính là những cảnh mà diễn viên đó phải đóng.
Use case chính là 1 chức năng của hệ thống đem lại một ý nghĩa nào đó cho người dùng.
Diagram:
4


Các use case gồm:
Use case cấu hình

Use case: cấu hình
Actor: player
Goal: thiết lập các thông số
Overview: người chơi muốn thiết lập các thông số cho trò chơi tìm đến mục cấu hình và lựa
chọn điền các thông số vào, sau đó hệ thống sẽ đáp ứng các âm thanh, màu sắc, hình ảnh theo
như người chơi đã chọn.

Cross-reference :
R2, R5
Player

Game Xếp Hình trên Android
Cấu hình
Chơi
Lưu trò chơi
Chọn level
Đếm giờ
Tính điểm
<<include>>
<<include>>
Back step
<<extend>>
Map
<<include>>
5

Typical course of event:
Actor
1. Điều chỉnh các thông số kỹ thuật về
mức âm thanh, ánh sang màu sắc,
giới hạn thời gian, level
System response
2. Lấy tưng thông số và áp dụng vào với
trình chơi nhạc, màu sắc của máy.
Load màn chơi với thời gian và level
mà người chơi mong muốn.



Use case Chơi xếp hình


Use case:Chơi xếp hình
Actor : player
Goal: xếp hình
Overview: đây chình là phần chính của trò chơi, người chơi sẽ thực hiện việc ghép các tấm hình
nhỏ với nhau để tạo ra hình đúng.
Cross-reference :
R3, R4
Typical course of event:
Actor
1. Di chuyển ô ghép theo ý muốn
System response
2. Kiểm tra xem từ ô ban đầu tới ô đích
có đương đi hay không?
3. Nếu có thì di chuyển ô ghép , nếu
không thì không cho phép di chuyển ô
ghép.
4. Nếu ô ghép được di chuyển thì kiểm
tra xem bức hình đã được ghép hoàn
chỉnh chưa?
5. Nếu hoàn chỉnh rồi thì kết thúc trò
chơi và lưu lại thời gian và chuyển lên
level cao hơn. Nếu bức hình chưa
hoàn chỉnh thì ko làm gì cả để người
chơi tiếp tục.




Use case Map


6

Use case: Map
Actor: player
Goal: load màn chơi
Overview: use case này sẽ hiển thị bàn chơi bao gồm hình ảnh, âm thanh, màu sắc, thời gian và
các menu cho người chơi.
Cross-reference :

Typical course of event:
Actor
1. Người chơi bắt đầu start game
System response
2. Phân chia bức hình và sắp xếp 1 cách
ngẫu nhiên các ô ghép.
3. Load màn chơi


Use case Back step

Use case: Back step
Actor: player
Goal: trở lại bước đi trước
Overview: use case này được gọi khi mà người chơi muốn thực hiện lại cá bước đi trước đó.
Cross-reference :
R4
Typical course of event:
Actor
1. Người chơi yêu cầu được đi lại
System response

2. Quay trở lại trạng thái trước đó cho
người chơi.


Use case đếm giờ:

Use case : đếm giờ
Actor: player
Goal: đo thời gian chơi
Overview: use case này sẽ tự động được gọi khi người chơi bắt đầu xếp hình và se tính thời
gian mà người chơi tiêu tốn.
Cross-reference :
R1,R6
Typical course of event:
Actor
1. Bắt đầu trò chơi
System response
2. Thời gian sẽ được đếm theo đơn vị
giây
3. Sẽ thông báo nếu như thời gian giới
7

hạn đã hết


Use case Lưu trò chơi

Use case : Lưu trò chơi
Actor: player
Goal: lưu lại trạng thái

Overview: use case này sẽ thực hiện công việc lưu lại thông tin người chơi hoặc màn chơi khi
người chơi bận.
Cross-reference :
R1
Typical course of event:
Actor
1. Người chơi yêu cầu lưu lại màn chơi
để tiếp tục chơi vào thời gian khác,
hoặc các thông tin về lần chơi này
System response
2. Sẽ lưu lại màn chơi hiện thời, và các
thông tin như số điểm, thời gian và
thông tin người chơi.



Usecase chọn level

Use case : Chọn level
Actor: player
Goal: chọn mức chơi cho người chơi
Overview: use case này sẽ thực hiện công việc chọn mức độ của trò chơi cho người chơi
Cross-reference :
R1
Typical course of event:
Actor
1. Người chơi yêu cầu chọn mức độ khó
của trò chơi
2. Người chơi sẽ chọn level theo ý muốn
System response

3. Hiển thị các level mà trò chơi cho
phép chơi
4. Load màn chơi với độ khó theo level
mà người chơi chọn





8


Chương 4,5:Class và object
UML class diagram.ở mức phân tích này thì chưa cần phải đưa các phương thức vào
Xác định các đối tượng
Ta gạch chân các danh từ có mặt trong các bản đặc tả sẽ được : player, tên, tuổi, thời gian hoàn
thành, level đã chơi, cấu hình, bàn chơi, ô ghép, level, thời gian, mức độ âm thanh, âm thanh,
hình ảnh, đường dẫn, địa chỉ ô ghép, trạng thái ô ghép, trạng thái bức hình
- Tiếp theo ta xem xét những danh từ nào để trở thành đối tượng dựa vào cách xác định
đối tượng ở chương 5 ta xét từng danh từ và thấy rằng các danh từ sau có thể trở thành
đối tượng vì chúng có những hành vi xác định : player, config, piece, map
class diagram:





Player
Name: char
Age: integer

time: integer
level: integer
Operations
Config
SoundLevel : integer
TimeLimit: integer
soundPath: string
imagePath: string
level: integer
Operations
piece
pos: point
state: bolean
Operations
Map
pieces: piece[][]
state: bolean
config: config
Operations
1
*
1
1
9

Viết từ điển:
Player = name + Age +time + level;
name = title + [initial | firstName] + surname
Config = soundlevel + timeLimit + soundPath + imagePath + level;
Piece = pos + state;

Map = pieces + state + config;
Pieces = {piece};
















10

Chương 6 : CRC card và lược đồ tương tác.
Kỹ thuật dùng CRC
- Xét use case cấu hình
Config
responsibility
collbaration
Điều chỉnh thông số về
mức độ âm thanh, hình
ảnh, thời gian



Chúng ta cần phải hiển thị các thông tin cấu hình (âm thanh, thời gian, level ) lên các ô text cho
người chơi thấy, nên ta cần có hàm getConfig()
Tương tự như vậy khi người chơi điền các thông tin vào cấu hình thì ta cần nhận các thông tin
đó từ ô text nên ta cần có hàm setConfig() với tham số là
- Xét use case chơi
Map
responsibility
collbaration
Load bàn chơi

Kiểm tra thời gian

Kiểm tra trạng thái bức
hình
Config



Piece

Piece
responsibility
collbaration
Lấy địa chỉ ô ghép

Đưa địa chỉ ô ghép

Kiểm tra đường đi


Kiểm tra trạng thái ô


map
11

ghép



Dựa vào bản mô tả chi tiết của use case chơi:

Use case:Chơi xếp hình
Actor : player
Goal: xếp hình
Overview: đây chình là phần chính của trò chơi, người chơi sẽ thực hiện việc ghép các tấm hình
nhỏ với nhau để tạo ra hình đúng.
Cross-reference :
R3, R4
Typical course of event:
Actor
1. Di chuyển ô ghép theo ý muốn
System response
2. Kiểm tra xem từ ô ban đầu tới ô đích
có đương đi hay không?
3. Nếu có thì di chuyển ô ghép , nếu
không thì không cho phép di chuyển ô
ghép.
4. Nếu ô ghép được di chuyển thì kiểm
tra xem bức hình đã được ghép hoàn

chỉnh chưa?
5. Nếu hoàn chỉnh rồi thì kết thúc trò
chơi và lưu lại thời gian và chuyển lên
level cao hơn. Nếu bức hình chưa
hoàn chỉnh thì ko làm gì cả để người
chơi tiếp tục.



Khi người chơi dịch chuyển ô ghép thì đối tượng piece sẽ nhận đại chỉ của ô ghép đó và địa chỉ
ô đích mà người chơi muốn chuyển đến, nên ta có hàm setPos(point) với tham số là 1 point.
Tiếp theo là đối tượng piece này sẽ kiểm tra đường đi nên ta có hàm CheckPath() với 2 tham số
kiểu point. Nếu có đường đi thì ta sẽ cho phép di chuyển với hàm movePiece() với tham số là 1
point địa chỉ ô đích. Sau đó t tiếp tục kiểm tra trạng thái để biết ô ghép đó đã vào đúng vị trí
chưa với hàm checkState().Với tham số là địa chỉ point. Sau cùng hệ thống phải kiểm tra bức
hình đã được ghép hoàn chỉnh chưa sau mỗi lần ô ghép được di chuyển vì thế ta có hàm
checkStateImage() để xem bức hình đã finish chưa. Vậy ta có:
12

Piece: setPos(point)
CheckPath(), movePiece(), checkState().
Map: checkStateImage().
- Xét use case map:
Use case: Map
Actor: player
Goal: load màn chơi
Overview: use case này sẽ hiển thị bàn chơi bao gồm hình ảnh, âm thanh, màu sắc, thời gian và
các menu cho người chơi.
Cross-reference :


Typical course of event:
Actor
1. Người chơi bắt đầu start game
System response
2. Phân chia bức hình và sắp xếp 1 cách
ngẫu nhiên các ô ghép.
3. Load màn chơi


Khi người chơi bắt đầu chơi thì đối tượng map phải phân chia bức ảnh nên ta phải có hàm
divImage() với tham số là số hàng và số cột.sau đó thì mới laod màn chơi lên cho người chơi
bằng hàm LoadMap() với tham số là 1 config .
Map:divImage(), LoadMap(config ).
- Xét use case backstep
Use case: Back step
Actor: player
Goal: trở lại bước đi trước
Overview: use case này được gọi khi mà người chơi muốn thực hiện lại cá bước đi trước đó.
Cross-reference :
R4
Typical course of event:
Actor
1. Người chơi yêu cầu được đi lại
System response
2. Quay trở lại trạng thái trước đó cho
người chơi.


Khi người chơi yêu cầu đi lại 1 bước thì hệ thống phải quay trở lại trạng thái trước đó, để đáp
ứng được như thế thì ta phải có cơ chế lưu trữ sự thay đổi trên đối tượng pieceTemp thuôc

13

class piece, sẽ là bản sao của ô ghép lúc trước khi di chuyển nên ta có hàm savePiece() tham số
là địa chỉ và trạng thái của piece.
Piece: savePiece(point, state).
- Xét use case đếm giờ
Use case : đếm giờ
Actor: player
Goal: đo thời gian chơi
Overview: use case này sẽ tự động được gọi khi người chơi bắt đầu xếp hình và se tính thời
gian mà người chơi tiêu tốn.
Cross-reference :
R1,R6
Typical course of event:
Actor
1. Bắt đầu trò chơi
System response
2. Thời gian sẽ được đếm theo đơn vị
giây
3. Sẽ thông báo nếu như thời gian giới
hạn đã hết


Luôn có 1 tiến trình chạy ngầm để đếm thời gian và thông báo nếu như hết hạn nên ta có hàm
checkTime() cho đối tượng map.
Map: checkTime().
- Xét use case lưu trò chơi
Use case : Lưu trò chơi
Actor: player
Goal: lưu lại trạng thái

Overview: use case này sẽ thực hiện công việc lưu lại thông tin người chơi hoặc màn chơi khi
người chơi bận.
Cross-reference :
R1
Typical course of event:
Actor
1. Người chơi yêu cầu lưu lại màn chơi
để tiếp tục chơi vào thời gian khác,
hoặc các thông tin về lần chơi này
System response
2. Sẽ lưu lại màn chơi hiện thời, và các
thông tin như số điểm, thời gian và
thông tin người chơi.



14

Để có thể lưu trữ map thì ta cần có hàm saveMap() với tham số là 1 map. Còn để lưu thông tin
người chơi thì cần có hàm savePlayer() tham số là 1 player.
Map: saveMap(map).
Player: savePlayer(player).
- Xét use case chọn level
Use case : Chọn level
Actor: player
Goal: chọn mức chơi cho người chơi
Overview: use case này sẽ thực hiện công việc chọn mức độ của trò chơi cho người chơi
Cross-reference :
R1
Typical course of event:

Actor
1. Người chơi yêu cầu chọn mức độ khó
của trò chơi
2. Người chơi sẽ chọn level theo ý muốn
System response
3. Hiển thị các level mà trò chơi cho
phép chơi
4. Load màn chơi với độ khó theo level
mà người chơi chọn



Để có thể chọn riêng level thì đối tượng config cần phải có phương thức setlevel() tham số là
giá trị level muốn chọn.
Config :setlevel(level).
Vậy ta có được diagram sau:
15



Lược đồ tương tác
Vẽ với use case chơi xếp hình.
1. Lược đồ tuần tự
Lược đồ tuần tự nhấn mạnh đến thứ tự và thời gian các tiến trình được thực hiện
Player
Name: char
Age: integer
time: integer
level: integer
savePlayer(player)

Config
SoundLevel : integer
TimeLimit: integer
soundPath: string
imagePath: string
level: integer
getConfig()
setConfig(config)
setLevel(level)
piece
indicate: point
state: bolean
setPos(point)
checkPath(point1,point2)
movePiece(point)
checkState(point)
savePiece(point,state)
Map
pieces: piece[][]
state: bolean
config: config
checkImageState()
divImage(h,c)
Load(config)
checkTime()
saveMap(map)
1
*
1
1

16


2. Lược đồ cộng tác
Lược đồ cộng tác nhấn mạnh đến việc biểu diễn mô hình hóa các mối quan hệ giữa các đối
tượng với nhau
Player
: Piece
: Map
1. kiểm tra
đường đi:
=checkPath
(point1,point2)
1.1 checkState
(point)
1.2. movePiece
(point)
1.3.checkImageSt
ate()
return
return
17



player
:Piece
:Map
1.check
Path()

1.1.chec
kState()
1.2.mov
ePiece()
1.3.
checkIm
ageStat
e()

×