ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN HỌC
---
ĐỒ ÁN MÔN HỌC
ĐỀ TÀI:
LẬP TRÌNH GAME CỜ GÁNH BẰNG
MICROSOFT VISUAL C#
Sinh viên thực hiện: Tưởng Trường Thành
Giảng viên hướng dẫn: Nguyễn Thanh Tuấn
Đà Nẵng, 2011
Lập trình game cờ gánh bằng Microsoft visual C# 2008
2
Mục lục
Mở đầu ..............................................................................................................3
Chương 1. Cơ sở lý thuyết ................................................................................4
1. Cơ sở lý luận của vấn đề nghiên cứu .....................................................................4
2. Nội dung và phương pháp nghiên cứu ...................................................................4
3. Kết quả đạt được ....................................................................................................4
Chương 2. Phát biểu vấn đề .............................................................................5
1. Phát biểu bài toán : ..........................................................................................5
1.1. Nhu cầu thực tế : ................................................................................................................................. 5
1.2. Các chứ c năng của trò chơi: ................................................................................................................ 5
1.3. Hiện trạng và nhược điểm : ................................................................................................................. 5
2. Đặc tả Usecase: .................................................................................................6
2.1. Sơ đồ Usecase: ................................................................................................................................... 6
2.2. Danh sách các Actor: ........................................................................................................................ 6
2.3. Danh sách Usecase: ........................................................................................................................... 6
2.4. Đặc tả Usecase: .................................................................................................................................. 7
Điểm mở rộng : ....................................................................................................................................... 9
Điểm mở rộng : ....................................................................................................................................... 9
3. Phân tích .........................................................................................................11
3.1 Sơ đồ lớp (mức phân tích) ...................................................................................................................... 11
3.2 Danh sách các lớp đối tượng và quan hệ ................................................................................................ 11
3.3 Mô tả chi tiết từng lớp đối tượng ............................................................................................................ 12
4. Thiết kế kiến trúc ...........................................................................................15
4.1 Kiến trúc hệ thống ................................................................................................................................... 15
4.2 Mô tả chi tiết từng thành phần trong hệ thống ........................................................................................ 16
XuLyChinh ......................................................................................................16
Interface VanCo ...............................................................................................17
Interface GiaoDien...........................................................................................17
Minh họa cho kiến trúc plugin .........................................................................17
Chương 3. Kết quả và ứng dụng ....................................................................18
1. Danh sách các màn hình ......................................................................................18
2. Mô tả chi tiết mỗi màn hình.................................................................................18
Màn hình Menu................................................................................................18
Màn hình Chọn độ khó ....................................................................................19
Màn hình Tên người chơi ................................................................................19
Màn hình Phòng chờ ........................................................................................20
Màn hình Tùy chỉnh .........................................................................................21
Màn hình Thi đấu cờ gánh ...............................................................................21
Kết luận ............................................................................................................23
1.Môi trường phát triển và Môi trường triển khai ....................................................23
2. Kết quả đạt được : ................................................................................................23
3. Hướng phát triển ..................................................................................................23
Tài liệu tham khảo ...........................................................................................24
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
3
Mở đầu
Hiện nay các loại hình giải trí thật sự đa dạng và phong phú, và khi game xuất hiện trên máy
tính, thì nó đã thực sự trở thành công cụ giải trí số một trên toàn thế giới. Số lượng người chơi game
máy tính lên tới con số hàng tỉ, không phần biệt tuổi tác, giới tính hay màu da. Loại hình giải trí này
len lỏi vào khắp ngõ ngách của nền công nghiệp hiện đại, và thế giới văn phòng làm việc cũng
không thoát khỏi “tầm với” của nó.
- Công việc văn phòng có thể không vất vả bằng các công việc lao độ ng chân tay bình thường,
nhưng nó lại dễ dàng tạo nên những cơn “stress” cao độ. Nếu không được giải tỏa kịp thời, hiệu quả
của công việc sẽ giảm xuống rõ rệt, đôi khi còn gây ra hàng loạt sai lầm nghiêm trọng. Việc chơi
games trong những khoảng thời gian nghĩ ngơi giúp giải tỏa được áp lực công việc hơn,có thể nhờ
vậy nâng cao hiệu quả công việc.
- Vì vậy mục tiêu của đề tài là nghiên cứu, lập trình những game tương thích sử dụng cho giải trí
trong công việc văn phòng.
-
Trên đây, tôi xin giới thiệu một game rất thích hợp trong việc giải trí cho công việc văn phòng:
đó là game “cờ gánh”, được lập trình bằng ứng dụng Microsoft visual C#.
-
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
4
Chương 1. Cơ sở lý thuyết
1. Cơ sở lý luận của vấn đề nghiên cứu
- Ngôn ngữ C# khá đơn giản, chỉ khoảng hơn 80 từ khóa và hơn mười mấy kiểu dữ liệu được dựng sẵn.
Tuy nhiên, ngôn ngữ C# có ý nghĩa to lớn khi nó thực thi những khái niệm lập trình hiện đại. C# bao gồm
tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối tượng. Những tính chất đó hiện
diện trong một ngôn ngữ lập trình hiện đại. Hơn nữa ngôn ngữ C# được xây dựng trên nền tảng hai ngôn
ngữ mạnh nhất là C++ và Java.
- Visual C# là một trong những công cụ trong Microsoft Visual Studio 2008, là một ngôn như lập trình
hiện đại được thiết kế để cung cấp một môi trường năng suất để tạo ra các frameworks nghiệp vụ và các
thành phần hướng đối tượng sử dụng lại. Vì thế việc ứng dụng Visual C# trong việc sử dụng lập trình game
tương đối đơn giản.
2. Nội dung và phương pháp nghiên cứu
- Nghiên cứu về ngôn ngữ C#, công cụ lập trình Visual C# ;
- Tìm kiếm thông tin, tư liệu từ Internet, sách giáo khoa, thường xuyên tham khảo ý kiến giáo viên hướng
dẫn.
- Tiến hành phác thảo cấu trúc game:
Xây dựng mô hình, giao diện cấu trúc của game.
Thiết kế các forms cho các yêu cầu c ủa game.
Viết các thuật toán yêu cầu của game.
- Lắp ráp các dữ kiện để hoàn tất, tiến hành chạy thử, sửa chữa trước khi đem ra sử dụng.
3. Kết quả đạt được
- Game hoàn thành có tên là “cờ gánh”. Trò chơi phát triển dựa trên luật chơi như sau:
Bàn cờ hình vuô ng được chia thành mười sáu ô vuông nhỏ. Mỗi bên có tất cả 8 quân cờ được sắp
xếp như hình. Các quân cờ đi theo đường của bàn cờ.
-
Cách sắp xếp quân cờ
Khi một quân cờ di chuyển vào giữa các cặp quân cờ đối thủ thì sẻ bị gánh các cặp quân cờ đó
thành quân cờ của mình.
Khi một (hay một nhóm) các quân cờ của người chơi bị ép vào thế không di chuyển được một
bước nào nữa thì quân cờ (hay nhóm cờ) đó sẽ bị “bóp chết” và trở thành quân cờ đối thủ.
Ván kết thúc khi một trong hai người chơi không còn quân cờ nào của mình trên bàn cờ nữa.
Game được chạy trên mọi hệ điều hành khi đã cài Microsoft visual studio(2008).
Có thể chơi trực tiếp với máy hoặc chơi giữa các máy tính với nhau có sử dụng mạng LAN.
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
5
Chương 2. Phát biểu vấn đề
1. Phát biểu bài toán :
1.1. Nhu cầu thực tế :
Trò chơi dân gian Cờ Gánh là một trò chơi tương đối phổ biến ở các vùng nông thôn Việt
Nam.Nhưng nó đang ngày càng bị lãng quên do xã hội ngày càng phát triển với những nhu cầu giải
trí cao hơn. Vì vậy việc tin học hóa trò chơi dân gian cũng đượ c coi là hoàn toàn hợp lý.
Đây là một trò chơi có cấu trúc và cách chơi hoàn toàn giống với trò chơi dân gian Cờ Gánh. Trò
chơi giúp cho việc tổ chức chơi một ván cờ gánh trở nên dễ dàng hơn .Với những hình ảnh và các hỗ
trợ khác tạo nên một không khí chơi hấp dẫn và tạo được sự hứng thú. Với luật chơi đơn giản, trò
chơi phù hợp với mọi lứa tuổi, hứa hẹn sẽ là một trò chơi phổ biến trên các máy tính hiện nay.
1.2. Các chức năng của trò chơi:
Chế độ luyện tập : rèn luyện kỹ thuật chơi cho người chơi qua từng ván đấu (với máy )ở các cấp
độ khó khác nhau để nâng cao kỹ năng.
Chế độ thi đấu : sau khi kỹ thuật chơi đã được nâng cao, người chơi vào sàn thi đấu thách thức
các đối thủ khác (chơi với đối thủ qua mạng LAN)
Tùy chỉnh các thiết lập : có các thiết lập để tăn g hay giảm độ khó trong mỗi ván đấu ( thời gian
mỗi lượt chơi , thiết lập luật “mở” - đặc thù của Cờ Gánh…); Thiết lập về kiểu giao diện và tắt
mở âm thanh trong trò chơi.
Bên cạnh đó, trò chơi sẽ cố gắng phát triển giao diện trực quan, dễ sử dụng và lôi cuốn người
chơi.(nằm trong quá trình phát triển trò chơi).
1.3. Hiện trạng và nhược điểm :
Trên thị trường hiện nay cũng đã xuất hiện một số trò chơi cờ gánh khác, nhưng hầu hết là chơi
offline(chế độ chơi với máy) và về mặt giao diện chưa được đẹp và dễ dàng thao tác.
Do vậy, trò chơi này sẽ cố gắng hoàn thiện các nhược điểm đó và phát triển chơi trên mạng
LAN một cách hoàn hảo. (Ngoài ra, sẽ nâng cấp chơi trên Internet khi đủ kĩ thuật & thời gian
hoàn thiện ^^!)
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
6
2. Đặc tả Usecase:
2.1. Sơ đồ Usecase:
Du Quan Co Doi Phuong Vao Bay
<>
Thi Dau Voi Nguoi Choi Khac
Bop Chit Quan Co Doi Phuong
Tro Chuyen Voi Nguoi Choi Khac
<>
<>
<>
<>
<>
Di Chuyen Quan Co
<>
<>
Xem Danh Sach Nguoi Choi
Chon Che Do Choi Qua Mang LAN
Ganh Quan Co Doi Phuong
Chon Che Do Choi Voi May
De Nghi Doi Thu Choi Van Khac
Nguoi Choi
<>
Chon Do Kho Cua Tro Choi
Tuy Chinh Thiet Lap
Xin Thua
2.2. Danh sách các Actor:
STT
1
Ý nghĩa/Ghi chú
ơi
trò
chơi
Cờ Gánh
Là người ch
Tên Actor
ơi
Người Ch
2.3. Danh sách Usecase:
STT
1
2
3
4
5
6
7
8
9
Tên Use-case
Chọn chế độ chơi với máy
Chọn độ khó của trò chơi
Chọn chế độ chơi qua mạng
LAN
Tùy chỉnh thiết lập
Xem danh sách người chơi
Thi đấu với người chơi khác
Di chuyển quân cờ
Dụ quân cờ đối phương vào
bẫy
Bóp Chít quân cờ đối phương
Đồ án môn học
Ý nghĩa/Ghi chú
độ
luyện
tập
khi muốn thi đấu offline với máy
Chọn chế
Chọn mức độ khó cho các nước đi của máy
Chế độ chơi giữa 2 người online trong mạng nội bộ
Tùy chỉnh âm thanh, hình ảnh trong trò chơi
Xem những người đang online trong mạn g LAN
Kết nối tới người chơi trong mạng Lan
Di chuyển quân cờ được chọn
Được dùng cho luật “mở”, dụ đối phương
Các quân cờ đối phương không còn đường nào di
chuyển sẽ bị “bóp chít” thành quân cờ của mình
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
10
Gánh quân cờ đối phương
11
12
13
Đề nghị đối thủ chơi ván khác
Xin thua
Nói chuyện với người chơi
khác
7
“Gánh” các cặp quân cờ đối phương khi quân cờ của ta
đi vào giữa
Đề nghị chơi ván khác khi đang chơi
Xin thua ván này trong lúc đang chơi
Nói chuyện trong lúc thi đấu hoặc trong phòng chờ đối
thủ (ở chế độ LAN)
2.4. Đặc tả Usecase:
Đặc tả Usecase “Chọn chế độ chơi với máy”
-
Người chơi dùng chức năng này để góp phần nắm rõ luật chơi cũng nh ư luyện tập nâng cao khả năng thi
đấu Cờ Gánh.
-
Bắt đầu khi người chơi chọn menu “luyện tập” ở màn hình menu.
-
Sau khi chọn vào menu, người chơi sẽ bắt đầu vào thi đấu luyện tập với máy.
-
Kết thúc usecase khi bước vào thi đấu.
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Người chơi đứng ở màn hình menu chọn chức
năng.”
- Trạng thái hệ thống sau khi thực hiện Use-case “Sau khi thực hiện usecase, người chơi bắt đầu vào
chọn độ khó cho luyện tập với máy.”
Đặc tả Usecase “Chọn độ khó củ a trò chơi”
- Người chơi chọn độ khó cho các ván đấu luyện tập với máy.
-
Bắt đầu usecase sau khi usecase Chọn chế độ chơi luyện tập thực hiện xong.
-
Người chơi chọn mức độ khó của chế độ luyện tập với máy.
-
Kết thúc usecase khi người chơi bắt đầu vào thi đấu.
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Người chơi phải chọn chế độ chơi luyện tập thì
mới tiến hành chọn độ khó cho trò chơi.”
- Trạng thái hệ thống sau khi thực hiện Use-case “Người chơi bắt đầu vào thi đấu luyện tập với máy ở độ
khó tương ứng đã chọn trước đó.”
Đặt tả Usecase “Chọn chế độ chơi qua mạng LAN”
- Người chơi chọn chế độ chơi này để được thi đấu với người chơi khác qua mạng nội bộ của mình.
-
Usecase bắt đầu khi người chơi chọn menu Thi đấu ở màn hình menu của trò chơi.
-
Thực hiện kết nối vào mạng nội bộ(nếu có) để tìm đối thủ thi đấu.
-
Kết thúc khi người chơi vào phòng chờ đối thủ(thành công), hoặc ra lại màn hình menu (nếu không kết
nối vào được mạng nội bộ)
- Các yêu cầu đặc biệt “Máy tính của ngừoi chơi nên đượ c kiểm tra kết nối mạng nội bộ trước khi
thực hiện usecase này.”
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Người chơi đứng ở m àn hình menu chính của trò
chơi.”
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
8
- Trạng thái hệ thống sau khi thực hiện Use -case “Vào phòng chờ cùng các đối thủ khác trong mạng Lan
(nếu đã kết nối mạng LAN) hoặc ra ngoài menu (nếu chưa kết nối)”
- Điểm mở rộng “Nếu máy tính đã kết nôi mạng LAN, usecase Vào phòng chờ sẽ được thực hiện để chờ
đối thủ khác.”
-
Đặt tả Usecase “Tùy chỉnh thiết lập”
Người chơi tùy chỉnh chế độ âm thanh, hình ảnh của trò chơi.
Bắt đầu vào chọn tùy chỉnh phù hợp.
- Kết thúc nếu ngừoi chơi đã đồng ý với tùy chỉnh
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Người chơi có thể tùy chỉnh các thiết lập này ở b ất
cứ màn hình nào.”
- Trạng thái hệ thống sau khi thực hiện Use-case “Nếu có thay đổi trong tùy chỉnh, hệ thống sẽ thực
hiện đáp ứng yêu cầu của người chơi. ”
Đặt tả Usecase “Xem danh sách người chơi”
- Ngừoi chơi quan sát thông tin những người chơi cũng đang chờ thi đấu để có thể mời thi đấu với mình.
-
Bắt đầu sau khi ngừoi chơi thực hiện chọn chế độ chơi Thi đấu.
-
Danh sách các người chơi đang online sẽ được cập nhật liên tục
-
Kết thúc khi ngừoi chơi bắt đầu thi đấu với một đối thủ, hoặc chọn thoát kh ỏi phòng chờ.
- Các yêu cầu đặc biệt “Máy tính của người chơi nên được kết nối với mạng nội bộ. ”
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Mô tả rõ điều kiện trước khi bắt đầu thực hiện
Use-case (ví dụ có đòi hỏi người sử dụng phải đăng nhập thành công trước đó hay không…) ”
- Trạng thái hệ thống sau khi thực hiện Use-case “Luôn cập nhật danh sách người chơi. ”
- Điể m mở rộng “Chỉ sau khi thực hiện usecase chọn chế độ thi đấu qua mạng LAN thì usecase này mới
được thực hiện . Tại phòng chờ, người chơi có thể thực hiện usecase Thi đấu với người chơi khác trong mạng
LAN.”
Đặt tả Usecase “Thi đấu với người chơi khác”
- Thi đấu với một người chơi khác qua mạng LAN
-
Người chơi kết nối với một đối thủ sau khi xem danh sách người chơi đang online
-
Thực hiện kết nối với người chơi đó để thi đấu
-
Kết thúc khi kết thúc ván đấu, hoặc 1 trong 2 ngừoi chơi bỏ cuộc(Xin thua)
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Hệ thống thực hiện kết nối với đối thủ để tham g ia
ván đấu.”
- Trạng thái hệ thống sau khi thực hiện Use-case “Hủy kết nối giữa 2 người chơi.”
- Điểm mở rộng “Usecase này được thực hiện sau Xem danh sách người chơi nếu ngừoi chơi muốn kết nối
với một đối thủ nào đó để thi đấu. ”
Đặt tả Usecase “Di chuyển quân cờ”
- Người chơi di chuyển quân cờ của mình được chọn đến một vị trí lân cận.
-
Người chơi thực hiện chọn một quân cờ của mình(ở lượt đi của mình)
-
Chọn vị trí mới cho quân cờ(thỏa luật chơi).
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
-
9
Quân cờ di chuyển đến vị trí mới.
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Hệ thống ghi nhận quân cờ được chọn và hướng
đi để di chuyển quân cờ đến đúng vị trí đó. ”
- Trạng thái hệ thống sau khi thực hiện Use-case “Hệ thống di chuyển quân cờ đến vị trí mới và
chuyển lượt chơi cho đối phương. ”
-
Điểm mở rộng :
Usecase Dụ quân cờ của đối phương vào bẫy có thể được cho phép thực hiện nếu quân cờ ta vừa di
chuyển thỏa nước đi cho luật mở.
Usecase Gánh quân cờ đối phương có thể được thực hiện nếu quân cờ của ta di chuyển đến vị trí
qui định được ăn quân trong trường hợp đó.
Usecase Bóp chít quân cờ đối phương có thể được thực hiện nếu quân cờ của ta có nước di chuyển
bao vây nhóm quân cờ đối phương, làm nhóm quân cờ đó không thể di chuyển được dù chỉ 1 nước
đi.
Đặt tả Usecase “Dụ quân cờ đối phương vào bẫy”
- Người chơi chỉ có thể thực hiện được usecase này nếu ở bước di chuyển quân cờ trước đó người chơi di
chuyển sao cho quân cờ đi đúng luật “mở” của trò chơi.
-
Bắt đầu khi người chơi chọn “mở”.
-
Sau khi quân cờ đối phương di ch uyển vào vị trí ngừơi chơi đặt bẫy thì usecase kết thúc.
- Các yêu cầu đặc biệt “Sau khi quân cờ di chuyển để “mở”
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Cho phép chức năng “mở” để thực hiên dụ đối
phương vào bẫy.”
- Trạng thái hệ thống sau khi thực hiện Use-case “Chuyển lượt chơi lại cho người chơi. ”
- Điể m mở rộng “người chơi thực hiện Usecase Di chuyển quân cờ để thực hiện mở thì usecase này
mới xuất hiện. ”
Đặt tả Usecase “Bóp Chít quân cờ đối phương”
- Nhóm quân cờ đối phương bị bóp chít khi nhóm quân cờ đó không còn di chuyển được một nước đi nào
nữa sau nước đi trước của người chơi.
-
Sau khi quân cờ của ngừoi chơi di chuyển có thể sẽ bóp chít được quân cờ đối phương nếu bịt kín hết
các lối đi.
-
Kết thúc sau khi những quân cờ đó của đối phương bị bóp chít thành quân cờ của người chơi.
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Thực hiện chuyển các quân cờ bị bóp chít thành các
quân cờ của người chơi. ”
- Trạng thái hệ thống sau khi thực hiện Use-case “Trả lượt chơi cho đối phương ”
-
Điểm mở rộng :
Sau Usecase Di chuyển quân cờ thì usecase này có thể được thực hiện.
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
10
Sau khi Gánh quân cờ đối phương thì usecase này cũng có thể được thực hiện.
Đặt tả Usecase “Gánh quân cờ đối phương”
- “Gánh” các cặp quân cờ đối phương nếu quân cờ của người chơi di chuyển vào vị trí chính giữa các cặp
quân cờ đó.
-
Người chơi di chuyển quân cờ của mình đi vào vị trí “gánh”
-
Các quân cờ đối phương bị gánh sẽ chuyển thành quân cờ của ngừoi chơi.
-
Sau khi “gánh” xong thì usecase kết thúc.
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Giữ lượt chơ i cho người chơi đến khi “gánh”
xong.”
- Trạng thái hệ thống sau khi thực hiện Use-case “Chuyển lượt chơi qua cho đối phương. ”
Điểm mở rộng “Sau khi Usecase Di chuyển thực hiện thì usecase này mới được xét có được thực hiện hay
không”
Đặt tả Usecase “Đề nghị đối thủ chơi ván khác”
- Đề nghị đối thủ được chơi lại ván khác theo yêu cầu của người chơi khi cảm thấy không muốn chơi ván
đang chơi nữa.
-
Người chơi đề nghị đối thủ chơi ván khác thực hiện usecase này
-
Kết thúc khi có trả lời từ đối phương.
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Dừng tạm thời ván đang chơi để hởi ý kiến đối
phương”
- Trạng thái hệ thống sau khi thực hiện Use -case “Nếu đối phương đồng ý, ván khác sẽ được thiết lập. Nếu
không, chơi tiếp ván đang chơi. ”
Đặt tả Usecase “Xin thua”
- Cảm thấy không muốn chơi nữa thì nhấn Xin thua để thoát khỏi trò chơi.
-
Xin thua khi đang thi đấu, usecase được thực hiện.
-
Kết thúc sau khi người chơi thoát.
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Ngắt tất cả kết nối giữa 2 người chơi. ”
- Trạng thái hệ thống sau khi thực hiện Use-case “Ngắt tất cả kết nối giữa 2 người chơi. ”
Đặt tả Usecase “Nói chuyện với người chơi khác”
- Nói chuyện với đối thủ khi đang thi đấu hoặc ở phòng chờ (ở chế độ thi đấu trong mạng LAN) để tạo sự
thích thú.
-
Người chơi nhập vào lời mún nói với đối phương rồi nhấn gửi.
-
Đối phương sẽ nhận được thông điệp từ cửa sổ bên tương ứng.
-
Kết thúc sau khi thông điệp đến bên nhận.
- Trạng thái hệ thống khi bắt đầu thực hiện Use -case “Hệ thống nhận thông điệp và gửi cho đối phương. ”
- Trạng thái hệ thống sau khi thực hiện Use-case “Kết thúc gửi thông điệp ”
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
11
- Điểm mở rộng “Chỉ được phép thực hiện khi đã thực hiện use -case xem danh sách người chơi trong mạng
LAN hoặc use -case thi đấu với người chơi khác. ”
3. Phân tích
3.1 Sơ đồ lớp (mức phân tích)
Giao dien
Ten
Duong dan
Quan ly xu ly
vc : Van co hien tai
dsvc : Danh sach van co
Quan ly giao dien
dsgd : Danh sach giao dien
...
gd : Giao dien hien tai
*
*
Van co
Binh thuong
Lay danh sach giao dien()
Nam moi
LAN
ID
bc : Ban co ganh
Ket noi
Quan co
d : Vi tri hien tai
dsd : Danh sach vi tri co the di den
...
La quan co cua nguoi choi
OFFLINE
Cap do
<> Khoi tao van co()
<> Gui du lieu()
<> Ket thuc()
1
1..*
1
Ban co
Danh sach quan co
Ma tran ban co
Quan co duoc chon
Ket thuc
Den luot nguoi choi
1
Khoi tao()
Lay danh sach cac xu ly van co()
...
1
1
1
Di chuyen()
Den mot diem duoc hay khong()
1
1
Diem
*
Kiem tra bop chit()
So luong quan co cua nguoi choi()
...
Kiem tra an quan()
Kiem tra mo()
Xu ly mo()
Di chuyen quan co()
X
Y
dsd : Danh sach nhung diem di den duoc tu diem nay
Kiem tra co the den duoc mot diem tu diem nay hay khong()
...
Kiem tra trung lap voi mot diem khac()
3.2 Danh sách các lớp đối tượng và quan hệ
STT
Tên lớp/quan hệ
1
Diem
Lớp định nghĩa vị trí
2
QuanCo
Lớp định nghĩa một quân cờ
Loại
Ý nghĩa/Ghi chú
trên bàn cờ
3
BanCo
Lớp mô tả bàn cờ
4
VanCo
Lớp tổng quát cho xử lý ván
cờ trong trò chơi
5
LAN
Lớp xử lý cho ván cờ ở chế
độ thi đấu mạng LAN(kế
thừa từ VanCo)
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
6
12
Lớp xử lý cho ván cờ ở chế
OFFLINE
độ thi đấu với máy(kế thừa
từ VanCo)
7
QuanLyXuLy
Lớp quản lý chính cho tất cả
các xử lý ván cờ trong trò
chơi
8
Lớp tổng quát cho việc quản
GiaoDien
lý một giao diện trò chơi
9
Lớp quản lý chính cho tất cả
QuanLyGiaoDien
các giao diện có trong kho
giao diện
Ghi chú : 2 lớp BinhThuong và NamMoi là 2 lớp đại diện cho các giao diện (có sử dụng plugin, thay đổi giao
diện,ké thừa từ GiaoDien)
3.3 Mô tả chi tiết từng lớp đối tượng
Lớp Diem:
o Kế thừa : Không
o Danh sách thuộc tí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 vị trí
2
Y
Private
Tọa độ y của vị trí
3
Danh sach nhung
Private
Danh sách những điểm có đường
nối với điểm này trên bàn cờ
diem di den duoc
o Danh sách các trách nhiệm (các phương thức) chính
Kiem tra co the den mot diem tu diem nay hay khong ? :Kiểm tra giữa 2 điểm có đường
nối với nhau trên bàn cờ hay không?
Kiem tra trung lap voi mot diem khac? : Kiểm tra 2 điểm có trùng với nhau trên bàn cờ
không?
Lớp QuanCo:
o Kế thừa : Không
o Danh sách thuộc tính
STT
Tên thuộc tính
1
Vi tri hien tai
Loại
Ràng buộc
Ý nghĩa/ghi chú
Vị trí hiện tại của quân cờ trên bàn
Private
cờ
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
13
2
La quan co cua ta
Private
Xác định là quân cờ của bên nào
3
Danh sach nhung
Private
Danh sách những điểm có đường
nối với điểm này trên bàn cờ &
diem di den duoc
không có quân quân cờ nào đang
đứng ở đó
o Danh sách các trách nhiệm (các phương thức) chính
Di chuyen : di chuyển quân cờ đến một điểm trong bàn cờ
Den mot diem duoc hay khong? : kiểm tra đến một điểm trong bàn cờ được hay
không?(có đường nối và không có quân cờ nào tại đó)
Lớp BanCo:
o Kế thừa : Không
o Danh sách thuộc tính :
STT
Tên thuộc tính
1
Danh sach quan
Loại
Ràng buộc
Ý nghĩa/ghi chú
Danh sách những quân cờ trong
Private
co
bàn cờ
2
Ma tran ban co
Private
Ma trận điểm biểu diễn bàn cờ
3
Quan co duoc
Private
Quân cờ đang được chọn trong bàn
chon
cờ
o Danh sách các trách nhiệm (các phương thức) chính
Di chuyen quan co : Xử lý di chuyển quân cờ trong bàn cờ
Xu ly mo: xử lý “mở” theo đúng luật mở trong cờ gánh.
Kiem tra an quan : xét luật ăn quân và áp dụng
Kiem tra bop chit : xét luật bóp chít và áp dụng
Kiem tra mo : kiểm tra luật mở
So luong quan co cua nguoi choi : số quân cờ của người chơi trong bàn cờ
Lớp VanCo :
o Kế thừa : Không
o Danh sách thuộc tính
STT
Tên thuộc tính
1
ID
Protected
Tên loại xử lý ván cờ
2
Ban co ganh
Protected
Bàn cờ của xử lý này
3
Ket noi
Protected
Tình trạng kết nối của xử lý ván cờ
Loại
Ràng buộc
Ý nghĩa/ghi chú
o Danh sách các trách nhiệm (các phương t hức) chính
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
Khoi tao van co : lớp kế thừa override
Gui du lieu : lớp kế thừa override
Ket thuc : lớp kế thừa override
14
Lớp LAN:
o Kế thừa : Kế thừa từ lớp VanCo
o Danh sách các thuộc tính : kế thừa từ lớp VanCo
STT
Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
o Danh sách các trách nhiệm (các phương thức) chính
Khoi tao van co : ( override) khởi tạo kết nối để chơi mạng LAN
Gui du lieu : ( override) gửi dữ liệu qua mạng LAN
Ket thuc : ( override) Xử lý ngắt kết nối và kết thúc chơi
Lớp OFFLINE:
o Kế thừa : Kế thừa từ lớp VanCo
o Danh sách các thuộc tính : kế thừa từ lớp VanCo và thêm các thuộc tính sau
STT
Tên thuộc tính
1
Do kho
Loại
Ràng buộc
Ý nghĩa/ghi chú
Chỉ độ khó của xử lý ván cờ
Private
này(máy)
o Danh sách các trách nhiệm (các phương thức) chính
Khoi tao van co : ( override) khởi tạo ván cờ với máy
Gui du lieu : ( override) xử lý chuyển lượt người chơi
Ket thuc : ( override) xử lý kết thúc ván cờ
Lớp QuanLyXuLy:
o Kế thừa : Không
o Danh sách các thuộc tính :
STT
Tên thuộc tính
Loại
Ràng buộc
Ý nghĩa/ghi chú
1
Van co hien tai
Private
Xử lý ván cờ đang sử dụng
2
Danh sach van co
Private
Tất cả các xử lý ván cờ có tồn tại
o Danh sách các trách nhiệm (các phương thức) chính
Lay danh sach cac xu ly van co : đọc tất cả các xử lý ván cờ có tồn tại trong kho dữ liệu
Lớp GiaoDien:
o Kế thừa : Không
o Danh sách các thuộc tính :
STT
Tên thuộc tính
Đồ án môn học
Loại
Ràng buộc
09CNTT2
Ý nghĩa/ghi chú
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
15
1
Ten
Protected
Tên loại giao diện
2
Duong dan
Protected
ĐƯờng dẫn đến thư mục chứa
resources
o Danh sách các trách nhiệm (các phương thức) chính
Khoi tao : khởi tạo các bitmap sử dụng trong giao diện trò chơi
Lớp QuanLyGiaoDien:
o Kế thừa : Không
o Danh sách các thuộc tính :
STT
Tên thuộc tính
1
Giao dien hien tai
Private
Giao diện đang sử dụng
2
Danh sach giao
Private
Danh sách tất cả giao diện đang có
Loại
Ràng buộc
Ý nghĩa/ghi chú
dien
o Danh sách các trách nhiệm (các phương thức) chính
Lay danh sach giao dien : đọc tất cả các giao diện có tồn tại
4. Thiết kế kiến trúc
4.1 Kiến trúc hệ thống
Thành phần
XuLyChinh
InterfaceVanCo
InterfaceGiaoDien
Đồ án môn học
Diễn giải
Xử lý chính cho m ỗi Client (xử lý ván cờ & xử lý giao diện)
Lớp interface cho cấu trúc plugin xử lý ván cờ
Lớp interface cho cấu trúc plugin giao diện trò chơi
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
16
4.2 Mô tả chi tiết từng thành phần trong hệ thống
XuLyChinh
Lớp đối tượng
AmThanh
BitmapRegion
frmChonDoKho
frmManHinhCHinh
frmMenu
frmPhongCho
frmTenNguoiChoi
FrmThanhTich
frmTuyChon
LuyenTap
NhacNen
Program
QuanLy
QuanLySkin
Resources
Setttings
Skin
ThiDau
VanCoGanh
Đồ án môn học
Diễn giải
Lớp quản lý âm thanh, tiếng động trong trò chơi
Quản lý xử lý về hình ảnh trong winform
Form chọn độ khó
Form màn hình chính
Form menu
Form phòng chờ
Form tên người chơi
Form thành tích
Form tùy chọn
Xử lý lưu trữ thông tin thi đấu với máy
Lớp quản lý nhạc nền cho trò chơi
Lớp chính của ứng dụng
Lớp quản lý tất cả các xử lý ván cờ
Quản lý tất cả các giao diện
Quản lý hình ảnh nguồn
Sealed Class
Lớp giao diện
Quản lý thông tin lưu trữ chế độ thi đấu mạng cục bộ
Lớp xử lý ván cờ
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
17
Interface VanCo
Lớp đối tượng
CToaDo
CQuanCo
CBanCo
CXuLy
IVanCo
Diễn giải
Lớp điểm
Lớp quân cờ
Lớp bàn cờ
Quản lý các xử lý thêm cho ván cờ
Interface cho xử lý một ván cờ
Interface GiaoDien
Lớp đối tượng
IGiaoDien
Diễn giải
lý
giao
diện
cho
trò chơi
Interface quản
Minh họa cho kiến trúc plugin
Kế thừa từ interface IVanCo cho xử lý
một ván cờ (áp dụng cho xử lý LAN và
OFFLINE với các xử lý có độ khó khác
nhau
Đồ án môn học
09CNTT2
Kế thừa từ interface IGiaoDien cho các
giao diện khác nhau (trò chơi có thể cập
nhật, bổ sung nhiều Skin khác nhau)s
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
18
Chương 3. Kết quả và ứng dụng
1. Danh sách các màn hình
Liệt kê danh sách các màn hình trong đồ án
STT
1
Tên màn hình
Màn hình Menu
2
4
Màn hình Chọn độ
khó
Màn hình Tên người
chơi
Màn hình Phòng chờ
5
Màn hình Tùy chỉnh
6
7
Màn hình Thi đấu
Cờ Gánh
Màn hình Thành tích
8
Màn hình Trợ giúp
3
Ý nghĩa/Ghi chú
Màn hình với các menu lựa chọn chức năng
trong trò chơi .
Màn hình chọn mức độ khó cho chế độ chơi
luyện tập (chơi với máy)
Màn hình cho người chơi ghi danh tính mình
trước khi vào chế độ thi đấu mạng LAN
Màn hình thể hiện phòng chờ với các thông
tin : danh sách người chơi đang online,
chatbox …
Màn hình thể hiện các thiết lập và các chế độ
chọn cho người chơi.
Màn hình chính của trò chơi. Màn hình thi
đấu Cờ Gánh
Thể hiện lịch sử thi đấu của người chơi ở chế
độ LAN
Các thông tin hướng dẫn chơi, tác giả.
2. Mô tả chi tiết mỗi màn hình
Màn hình Menu
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
19
Mô tả cách sử dụng và xử lý trên màn hình :
-
Người chơi chọn các chức năng menu bằng cách click chuột trái vào các icon tương ứng trên màn
hình.
Màn hình Chọn độ khó
Chưa chọn
-
Đã click vào tên độ khó
Mô tả cách sử dụng và xử lý trên màn hình:
Có 2 cách chọn :
+ Double click vào tên độ khó.
+ Click chuột trái vào tên độ khó, sau đó chọn button play.
Màn hình Tên người chơi
Mô tả cách sử dụng và xử lý trên màn hình:
-
Nhập tên người chơi ở textbox . Sau đó hoàn tất bằng cách : nhấn ENTER, hoặc click chuột trái lên
biểu tượng bảng chỉ dẫn mũi tên.
Đồ án môn học
09CNTT2
Tưởng Trường Thành
Lập trình game cờ gánh bằng Microsoft visual C# 2008
20
Màn hình Phòng chờ
Button cập
nhật danh
sách người
chơi
Chọn
người bạn
muốn nói
chuyện
riêng
(hoặc với
tất cả)
Danh sách
những
người
chơi đang
ở trong
phòng chờ
Buton mời
thi đấu (có
thể mời
bằng cách
click chuột
phải vào tên
người chơi)
Ghi nội
dung nói
chuyện
vào đây
Button gửi nội dung trò chuyện
Button
thoát khỏi
phòng chờ
Mô tả cách sử dụng và xử lý trên màn hình:
Trò chuyện :
- Nói chuyện riêng với người nào đó : chọn tên người đó trên combobox danh sách người chơi, hoặc
click chuột phải vào tên người đó trong danh sách người chơi rồi chọn Nói chuyện riêng
- Nói chuyện với tất cả mọi người (mặc định)
Đồ án môn học
09CNTT2
Tưởng Trường Thành
- Xem thêm -