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

lập trình game cờ gánh bằng microsoft visual c#

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 (546.28 KB, 31 trang )

Đà N
ẵng, 20
11
ĐẠ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:

ởng Tr
ường Thành
Gi
ảng viên hướng dẫn: Nguyễn Thanh Tuấn
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
2
Đồ án môn học 09CNTT2 Tưởng Trường Thành
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
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
3
Đồ án môn học 09CNTT2 Tưởng Trường Thành

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#.
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
4
Đồ án môn học 09CNTT2 Tưởng Trường Thành
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.
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
5
Đồ án môn học 09CNTT2 Tưởng Trường Thành
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 ^^!)

L
ập trình game cờ gánh bằng Microsoft visual C# 2008
6
Đồ án môn học 09CNTT2 Tưởng Trường Thành
2. Đ
ặc tả
Usecase:
2.1. Sơ đ
ồ Usecase:
Xem Danh Sach Nguoi Choi
Thi Dau Voi Nguoi Choi Khac
<<extend>>
Ganh Quan Co Doi Phuong
Du Quan Co Doi Phuong Vao Bay
Bop Chit Quan Co Doi Phuong
<<extend>>
Tuy Chinh Thiet Lap
Di Chuyen Quan Co
<<extend>>
<<extend>>
<<extend>>
Chon Che Do Choi Qua Mang LAN
<<extend>>
Chon Che Do Choi Voi May
De Nghi Doi Thu Choi Van Khac
Xin Thua
Tro Chuyen Voi Nguoi Choi Khac
Chon Do Kho Cua Tro Choi
Nguoi Choi
<<include>>

<<extend>>
<<extend>>
2.2. Danh sách các Actor:
STT
Tên Actor
Ý ngh
ĩa/Ghi chú
1
Ngư
ời Ch
ơi
Là ngư
ời ch
ơi trò chơi Cờ Gánh
2.3. Danh sách Usecase:
STT
Tên Use-case
Ý ngh
ĩa/Ghi chú
1
Ch
ọn chế
độ chơi với máy
Ch
ọn chế
độ luyện tập khi muốn thi đấu offline với máy
2
Ch
ọn
độ khó của trò chơi

Ch
ọn mức
độ khó cho các nước đi của máy
3
Ch
ọn chế độ chơi qua mạng
LAN
Ch
ế độ chơi giữa 2 người online trong mạng nội bộ
4
Tùy ch
ỉnh thiết lập
Tùy ch
ỉnh âm thanh, hình ảnh trong trò ch
ơi
5
Xem danh sách ngư
ời chơi
Xem nh
ững người đang online trong mạn
g LAN
6
Thi đ
ấu với người chơi khác
K
ết nối tới người chơi trong mạng Lan
7
Di chuy
ển quân cờ
Di chuy

ển quân cờ được chọn
8
D
ụ quân cờ
đối phương vào
b
ẫy
Đư
ợc dùng cho luật “mở”, dụ
đối phương
9
Bóp Chít quân c
ờ đố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
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
7
Đồ án môn học 09CNTT2 Tưởng Trường Thành
10
Gánh quân c
ờ đối phương
“Gánh” các c
ặp quân cờ đối phương khi quân cờ của ta
đi vào gi
ữa

11
Đ
ề nghị đối thủ chơi ván khác
Đ
ề nghị chơi ván khác khi đang chơi
12
Xin thua
Xin thua ván này trong lúc đang chơi
13
Nói chuy
ện với ng
ười chơi
khác
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 k
hi 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.”
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
8
Đồ án môn học 09CNTT2 Tưởng Trường Thành
- 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).
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
9
Đồ án môn học 09CNTT2 Tưởng Trường Thành
- 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


ợ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ả Usecas
e “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 sa
u 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.
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
10
Đồ án môn học 09CNTT2 Tưởng Trường Thành
 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 t
h
ự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”
L

ập trình game cờ gánh bằng Microsoft visual C# 2008
11
Đồ án môn học 09CNTT2 Tưởng Trường Thành
- Đ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)
Quan co
d : Vi tri hien tai
dsd : Danh sach vi tri co the di den

La quan co cua nguoi choi
Di chuyen()
Den mot diem duoc hay khong()
Diem
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()
1
1
1
1
LAN
OFFLINE
Cap do
Binh thuong
Nam moi
Quan ly giao dien
dsgd : Danh sach giao dien

gd : Giao dien hien tai
Lay danh sach giao dien()
Giao dien
Ten
Duong dan
Khoi tao()
1* 1*
Ban co
Danh sach quan co
Ma tran ban co
Quan co duoc chon
Ket thuc
Den luot nguoi choi

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()
1
1 *
1
1 *
1
*
1
*
Van co
ID
bc : Ban co ganh
Ket noi
<<virtual>> Khoi tao van co()
<<virtual>> Gui du lieu()
<<virtual>> Ket thuc()
1
1
1
1
Quan ly xu ly
vc : Van co hien tai
dsvc : Danh sach van co
Lay danh sach cac xu ly van co()


*
1
*
1
3.2 Danh 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
Diem
L
ớp định nghĩa vị trí
2
QuanCo
Lớp định nghĩa một quân cờ
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)
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
12
Đồ án môn học 09CNTT2 Tưởng Trường Thành
6
OFFLINE
L
ớp xử lý cho ván cờ ở chế
độ 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
GiaoDien
L

ớp tổng quát cho việc quản
lý m
ột giao diện trò ch
ơi
9
QuanLyGiaoDien
L
ớp quản lý chính cho
t
ất cả
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
diem di den duoc
Private
Danh sách nh
ững điểm có đường
n
ối với điểm này trên bàn cờ
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
Lo
ại
Ràng bu
ộc
Ý ngh
ĩa/ghi chú
1
Vi tri hien tai
Private
V
ị trí hiện tại của quân cờ trên bàn
c

L
ập trình game cờ gánh bằng Microsoft visual C# 2008
13
Đồ án môn học 09CNTT2 Tưởng Trường Thành
2
La quan co cua ta
Private
Xác đ

ịnh là quân cờ của bên nào
3
Danh sach nhung
diem di den duoc
Private
Danh sách nh
ững điểm có đường
n
ối với điểm này trên bàn cờ &
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
Lo
ại
Ràng bu
ộc
Ý ngh
ĩa/ghi chú
1
Danh sach quan
co
Private
Danh sách nh
ững quân cờ trong
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
chon
Private
Quân c
ờ đang được chọn trong bàn

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
Lo
ại
Ràng bu

ộc
Ý ngh
ĩa/ghi chú
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ờ
o Danh sách các trách nhi
ệm (các ph
ương t
h
ức) chính
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
14
Đồ án môn học 09CNTT2 Tưởng Trường Thành
 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
 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
Lo
ại
Ràng bu
ộc
Ý ngh
ĩa/ghi chú
1
Do kho
Private
Ch
ỉ độ khó của xử lý ván cờ
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
Lo
ại
Ràng bu
ộc
Ý ngh
ĩa/ghi chú
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
15
Đồ án môn học 09CNTT2 Tưởng Trường Thành
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
Lo
ại
Ràng bu
ộc
Ý ngh
ĩa/ghi chú
1
Giao dien hien tai
Private
Giao di
ện
đang sử dụng
2
Danh sach giao
dien
Private
Danh sách t
ất cả giao diện
đang có

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
Di
ễn giải
XuLyChinh
X
ử lý chính cho m
ỗi Client (xử lý ván cờ & xử lý giao diện)
InterfaceVanCo
L
ớp interface cho cấu trúc plugin xử lý ván cờ
InterfaceGiaoDien
L
ớp interface cho cấu trúc plugin giao diện trò chơi
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
16
Đồ án môn học 09CNTT2 Tưởng Trường Thành
4.2 Mô tả chi tiết từng thành phần trong hệ thống
 XuLyChinh
Lớp đối tượng
Diễn giải

AmThanh
L
ớp quản lý âm thanh, tiếng
động trong trò chơi
BitmapRegion
Qu
ản lý xử lý về hình ảnh trong winform
frmChonDoKho
Form ch
ọn độ khó
frmManHinhCHinh
Form màn hình chính
frmMenu
Form menu
frmPhongCho
Form phòng ch

frmTenNguoiChoi
Form tên ngư
ời chơi
FrmThanhTich
Form thành tích
frmTuyChon
Form tùy ch
ọn
LuyenTap
X
ử lý lưu trữ thông tin thi đấu với máy
NhacNen
L

ớp quản lý nhạc nền cho trò chơi
Program
L
ớp chính của ứng dụng
QuanLy
L
ớp quản lý tất cả các xử lý ván cờ
QuanLySkin
Qu
ản lý tất cả các giao diện
Resources
Qu
ản lý hình ảnh nguồn
Setttings
Sealed Class
Skin
L
ớp giao diện
ThiDau
Qu
ản lý thông tin l
ưu trữ chế độ thi đấu mạng cục bộ
VanCoGanh
L
ớp xử lý ván cờ
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
17
Đồ án môn học 09CNTT2 Tưởng Trường Thành
 Interface VanCo

L
ớp đối tượng
Di
ễn giải
CToaDo
L
ớp điểm
CQuanCo
L
ớp quân cờ
CBanCo
L
ớp bàn cờ
CXuLy
Qu
ản lý các xử lý thêm cho ván cờ
IVanCo
Interface cho x
ử lý một ván cờ
 Interface GiaoDien
L
ớp
đối tượng
Di
ễn giải
IGiaoDien
Interface qu
ản lý giao diện cho trò chơi
 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
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
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
18
Đồ án môn học 09CNTT2 Tưởng Trường Thành
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
Tên màn hình
Ý ngh
ĩa/Ghi chú

1
Màn hình Menu
Màn hình v
ới các menu lựa chọn chức năng
trong trò ch
ơi .
2
Màn hình Ch
ọn
độ
khó
Màn hình ch

n m
ức
độ khó cho chế độ chơi
luy
ện tập (chơi với máy)
3
Màn hình Tên ng
ười
chơi
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
4
Màn hình Phòng ch


Màn hình th
ể hiện phòng chờ với các thông
tin : danh sách ngư
ời chơi đan
g online,
chatbox …
5
Màn hình Tùy ch
ỉnh
Màn hình th
ể hiện các thiết lập và các chế độ
ch
ọn cho người chơi.
6
Màn hình Thi
đ
ấu
C
ờ Gánh
Màn hình chính c
ủa trò ch
ơi. Màn hình thi
đ
ấu Cờ Gánh
7
Màn hình Thành tích
Th
ể hiện lịch sử thi đấu của người chơi ở
ch
ế

đ
ộ LAN
8
Màn hình Tr
ợ giúp
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
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
19
Đồ án môn học 09CNTT2 Tưởng Trường Thành
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.
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
20
Đồ án môn học 09CNTT2 Tưởng Trường Thành
 Màn hình 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)
Ch
ọn
ngư
ời bạn
mu
ốn nói
chuy
ện
riêng
(ho
ặc với
t
ất cả)
Button c
ập
nhật danh
sách ngư
ời
chơi
Button g
ửi nội
dung trò chuy
ện
Button
thoát khỏi
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)
Danh sách
nh
ững
ngư
ời
chơi đang
ở trong
phòng ch

Ghi n
ội
dung nói
chuyện
vào đây
L

ập trình game cờ gánh bằng Microsoft visual C# 2008
21
Đồ án môn học 09CNTT2 Tưởng Trường Thành
 Màn hình Tùy ch
ỉnh
Mô t
ả cách sử dụng và xử lý trên màn hình:
- Ch
ọn các thiết lập theo ý bạn về giao diện, âm thanh, nhạc nền.
- Sau đó, click vào button play đ
ể các thiết lập
được áp dụng. Ngược lại, chọn X để thoát khỏi tùy
ch
ọn.
 Màn hình Thi
đ
ấu cờ gánh
Mô tả cách sử dụng và xử lý trên màn hình:
- Bàn c
ờ gánh : người chơi click chuột lên quân cờ muốn đi và chọn điểm di chuyển đến(quân cờ được chọn sáng
lên)
Bàn
cờ
gánh
Th
ể hi
ện lực l
ượng hiện tại của người chơi
Thể
hi

ện

ợt
chơi c
ủa
quân
nào và
th
ời
gian
cone l
ại
c
ủa l
ượt
đó
Button
dùng
đ

“mở”
Button b
ật/tắt âm thanh
Nội dung trò chuyện
c
ủa 2 người chơi
Button chơi ván khác
Button ngh
ỉ ch
ơi

L
ập trình game cờ gánh bằng Microsoft visual C# 2008
22
Đồ án môn học 09CNTT2 Tưởng Trường Thành
- Ch
ế
độ mở : khi người chơi đi đúng thế mở
 đư
ợc quyền chọn button Dụ
địch vào bẫy để mở.
- Nói chuy
ện với n

ời ch
ơi qua hộp Trò chuyện.
- B
ật/ tắt âm thanh trong lúc ch
ơi (button bật/tắt âm thanh)
- Mu
ốn chơi ván khác : click chuột trái lên button Chơi ván khác.
- Ngh
ỉ chơi : click vào button Nghỉ chơi (phích điện)
 Màn hình Thành tích
Mô t
ả cách sử dụn
g và x
ử lý trên màn hình:
Màn hình th
ể hiện lịch sử thi đấu của người chơi và thơi điểm chơi.
Tên ngư

ời chơi : tên lúc đăng nhập tại thời điểm đó
 Màn hình Tr
ợ giúp
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
23
Đồ án môn học 09CNTT2 Tưởng Trường Thành
K
ết luận
1.Môi trư
ờng phát triển và Môi trường triển khai
 Môi trư
ờng phát triển
ứng dụng:
o H
ệ điều hành: Microsoft Windows 7 (Professional)
o H
ệ quản trị cơ sở dữ liệu: không dùng
o Công c
ụ phân tích thiết kế: Rational Rose 7.0.0.0
o Công c
ụ xây dựng ứng dụng: Visual Studio.NET 2008
o Các thư vi
ện đã dùng: MSDN
 Môi trư
ờng triển khai ứng dụng:
o H
ệ điều hành: Microsoft Windows
o C
ần cài

đặt .Net Framework 3.5
2. K
ết quả
đạtđược :
Hoàn thi
ện tất cả các chức năng đã nêu trong mô tả thiết kế. Chi tiết, cụ thể như sau :
 Về giao diện : Có nhiều kiểu khác nhau để người dùng chọn . Các skin có thể được thêm một cách dễ
dàng , m
ỗi skin gồm : 1 file dll (mô tả tên skin, đường dẫn đến các file ảnh cần thiết), các file ảnh
resource cho skin đó. Sau đó đ
ặt vào thư mục skin của trò chơi.
 V
ề cấu trúc xử lý :
S
ử dụng
plugin cho các x
ử lý thi
đấu offline cũng như
online trong m
ạng LAN

D
ễ dàng cập nhật và bổ sung xử lý( bổ sung và cập nhật độ khó trong thi đấu với máy, các xử lý thông
báo, kết nối ….)
 V
ề cấu trúc lưu trữ :
S
ử dụng file lưu trữ dữ liệu XML để xử lý lưu nhanh chóng các thiết lập, lịch sử thi
đ
ấu cho

trò ch
ơi.
 V
ề các chức n
ăng trong trò chơi :
 Chơi offline : hoàn thi
ện chức năng chơi với máy với các độ khó khác nhau .
 Chơi mạng LAN : hoàn thiện các xử lý trong phòng chờ (broadcast người chơi, trò chuyện, mời
thi đ
ấu, đầy đủ xử lý chuột trái
-ph
ải lên d
anh sách), k
ết nối với người chơi khác ổn định, thông
báo đ
ầy đủ rõ ràng tình trạng kết nối, chơi ván khác, nói chuyện…
 Tùy ch
ỉnh các thiết lập : dễ dàng thay
đổi giao diện, bật/tắt âm thanh.
 Thông tin tr
ợ giúp.
 Thông tin lịch sử thi đấu: tỉ lệ thắng, thôn g tin chi tiết các trận đấu đã qua.
3. Hư
ớng phát triển
Trò ch
ơi Cờ Gánh hướng đến mọi người dùng máy tính với luật chơi đơn giản và giao diện không ngừng
đư
ợc cải thiện (các th
ư viện plugin nên rất dễ bổ sung các giao diện mới).
Liên t

ục cập nhật cấp độ c
hơi (đ
ộ khó, cách thức chơi) ở chế độ chơi với máy để tạo tính hấp dẫn và lôi
cuốn thật sự. (Chỉ cần cập nhật các plugin độ khó).

ớng phát triển hướng tới mong muốn triển khai online trên mạng internet để có thể mở rộng quy mô
và hoàn thi
ện chức năng thi
đ
ấu giữa 2 máy, không bị giới hạn bởi mạng cục bộ.
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
24
Đồ án môn học 09CNTT2 Tưởng Trường Thành
Tài li
ệu tham khảo
1. />2. />3. />4. />/ / T
ạo và áp dụng các khu vực bitmap trên được
cung c
ấp kiểm soát
công static void CreateControlRegion (Control ki
ểm soát, Bitmap bitmap)
{
/ / Quay tr
ở lại nếu kiểm soát và bitmap sẽ không có
(ki
ểm soát ==
null | | bitmap == null )
tr
ở lại

;
/ / Thi
ết lập kích
thư
ớc kiểm soát của chúng tôi để được giống như
bitmap
control.Width = bitmap.Width;
control.Height = bitmap.Height;
/ / Ki
ểm tra nếu chúng ta đang đối phó với mẫu ở đây
n
ếu
(ki
ểm soát
là System.Windows.Forms.Form)
{
/ / Di

n viên cho m
ột đối tượng mẫu
M
ẫu hình thức = (mẫu) kiểm soát;
/ / Thi
ết lập kích th
ước của mẫu của chúng tôi lớn hơn một chút rằng
bitmap ch
ỉ / / trong trường hợp phong cách biên giới của hình thức không được thiết lập để
không có
ngư
ời

đầu tiên
/ / nơi form.Width + = 15;
form.Height + = 35 ;
/ / Không có biên gi
ới
form.FormBorderStyle = FormBorderStyle.None;
/ / Set bitmap làm hình n
ền
form.BackgroundImage = bitmap;
/ / Tính toán con đư
ờng
đồ họa dựa trên các bitmap
đư
ợc cung cấp
GraphicsPath GraphicsPath = CalculateControlGraphicsPath (bitmap);
/ / Áp d
ụng các khu vực mới
form.Region = khu vực mới (GraphicsPath);
}
/ / Ki
ểm tra nếu chúng ta đang đối phó với các nút
khác nếu (kiểm soát System.Windows.Forms.Button)
{
/ / Di
ễn viên cho một đối tượng nút
Nút nút (Button) ki
ểm soát;
L
ập trình game cờ gánh bằng Microsoft visual C# 2008
25

Đồ án môn học 09CNTT2 Tưởng Trường Thành
/ / Không hi
ển thị v
ăn bản nút
button.Text = " " ;
/ / Thay đ
ổi con trỏ tay trên nút
button.Cursor = Cursors.Hand;
/ / Thi
ết lập nền hình ảnh của
nút
button.BackgroundImage = bitmap;
/ / Tính toán con đư
ờng đồ họa dựa
trên các bitmap
đư
ợc cung cấp
GraphicsPath GraphicsPath = CalculateControlGraphicsPath (bitmap);
/ / Áp d
ụng các khu vực mới
button.Region = khu vực mới (GraphicsPath);
}
}
/ / Tính toán con đư
ờng đồ họa đại diện cho con s
ố này ở các bitmap
/ / không bao g
ồm các màu trong suốt là các điểm ảnh trên bên
trái . CalculateControlGraphicsPath tư nhân t
ĩnh GraphicsPath ( Bitmap bitmap)

{
/ / Tạo GraphicsPath cho bitmap tính toán của chúng tôi
GraphicsPath GraphicsPath = new GraphicsPath ();
/ / S
ử dụng các điểm ảnh trên bên trái
là màu trong su
ốt của màu sắc của
chúng tôi colorTransparent = bitmap.GetPixel ( 0 , 0 );
/ / Đi
ều này là để lưu trữ các giá trị cột nơi mà một điểm ảnh đục là lần đầu tiên đ
ư
ợc
tìm thấy / / Giá trị này sẽ xác định nơi chúng tôi bắt
đ
ầu quét dấu / / pixel không
trong su
ốt. int colOpaquePixel = 0;
/ / Đi qua t
ất cả các hàng (trục Y)
( int hàng = 0 ; hàng <bitmap.Height; hàng + +)
{
/ / Thiết lập lại giá trị
colOpaquePixel = 0 ;
/ / Đi qua t
ất cả các cột (trục X)
cho ( int col = 0 ; col <bitmap.Width; col + +)
{
/ / N
ếu đây là một điểm ảnh mờ đục, đánh dấu nó và tìm kiếm
/ / cho n

ữa dấu
đằng sau
(bitmap.GetPixel (col, hàng) = colorTransparent!)
{
/ / đi
ểm ảnh không rõ ràng được tìm thấy, đánh dấu vị trí hiện tại
colOpaquePixel = col;
/ / T
ạo một biến để
thi
ết lập vị trí điểm ảnh hiện

×