Tải bản đầy đủ

Phát triển phần mềm hướng cấu phần XÂY DỰNG GAME CỜ CARO CÓ CHAT TRONG MẠNG LAN BẰNG JAVA THEO HƯỚNG CẤU PHẦN CLIENTSERVER LỜI NÓI ĐẦU

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN
PHÁT TRIỂN PHẦN MỀM HƯỚNG CẤU PHẦN
ĐỀ TÀI: XÂY DỰNG GAME CỜ CARO CÓ CHAT
TRONG MẠNG LAN BẰNG JAVA THEO HƯỚNG
CẤU PHẦN CLIENT-SERVER
Giáo viên hướng dẫn: Th.s Nguyễn Thái Cường
Lớp

: KTPM2 – K10

Nhóm

: 19

Sinh viên thực hiện : Hà Minh Đại
Lê Đức Tú Anh
Nguyễn Thị Thảo


Hà Nội, 12/2018
1


LỜI NÓI ĐẦU
Ngày nay, do nhu cầu đời sống của con người ngày càng được nâng cao, trong
đó nhu cầu vui chơi giải trí của con người được quan tâm đến rất nhiều. Trong đó,
việc giải trí bằng những trò chơi máy tính ngày càng phát triển và lan rộng ra do sự
lôi cuốn mạnh mẽ của nó. Những người chơi game một mình trên máy tính càng
không đáp ứng được yêu cầu mà thay vào đó là những game với nhiều máy tính kết
nối với nhau. Xuất phát từ nhu cầu đó, nhóm chúng em đã thực hiện đề tài “Xây
dựng game cờ caro có chat trong mạng LAN bằng java theo hướng cấu phần
client – server”.
Chương trình “Xây dựng game cờ caro có chat trong mạng LAN bằng java
theo hướng cấu phần client – server” được xây dựng dưới đây áp dụng kỹ thuật
lập trình mạng bằng ngôn ngữ Java, do SunMicroSystem đưa ra vào năm 1991.
Trong quá trình thực hiện đề tài nhóm chúng em đã gặp không ít khó khăn và
trở ngại với sự giúp đỡ của bạn bè cùng sự hướng dẫn tận tình, chỉ bảo cặn kẽ của
thầy, cuối cùng nhóm em cũng hoàn thành xong đề tài với mọi sự hiểu biết của
mình. Qua đây, nhóm chúng em xin gửi lời cảm ơn đến những người bạn trong lớp
phát triển phần mềm theo hướng cấu phần KTPM2-K10 đã góp ý và giúp đỡ và đặc
biệt cảm ơn thầy Th.s Nguyễn Thái Cường - người đã định hướng chúng em chọn
đúng đề tài, truyền dạy các kĩ năng nghiệp vụ cũng như uốn nắn cho nhóm em, từ
bài báo cáo đến cách thức thực hiện đề tài. Một lần nữa nhóm em xin chân thành
cảm ơn thầy!
Sinh viên thực hiện

2


TÓM TẮT BTL
Cho phép nhiều người chơi ở những máy khác nhau ở mọi nơi trên internet.
Máy server tạo ra một Socket phục vụ kết nối từng cặp người tham gia chơi cờ caro.
Theo từng ván cờ. Mỗi phiên là một luồng đảm bảo sự trao đổi giữa 2 người chơi và
xác định trạng thái ( thắng/ thua) của ván cờ. Trong mỗi ván cờ người đầu kết nối
với server được gọi là người thứ nhất được gán với ký hiệu “X‟ còn người thứ 2
được gán với ký hiệu là “O”. Họ thay phiên nhau đánh vào những ô dự kiến ( nhấn
vào ô mà mình định đánh) để nhanh chóng đạt được số ô (ví dụ 4, hay 5) thẳng hang
theo hàng ngang, hàng dọc và đường chéo. Người nào đánh được số ô đó trước,
người đó thắng cờ. Số ván cờ được tạo trên server là không hạn chế.


Đề tài “Xây dựng game cờ caro có chat trong mạng LAN bằng java theo
hướng cấu phần client – server” là xây dựng một chương trình chơi cờ caro với
các gồm các nội dung sau:
-

Chức năng Multi Player: Chơi 2 người.
Chat trong mạng LAN.
Chơi online: Chương trình hỗ trợ cho 2 người cùng trên mạng LAN.

3


MỤC LỤC

4


DANH MỤC HÌNH ẢNH

5


DANH SÁCH CÁC TỪ VIẾT TẮT
Từ viết tắt
BTL
COP

Diễn giải
Bài tập lớn
Component-Oriented Programming
Lập trình hướng cấu phần
Local Area Network
Mạng máy tính cục bộ
Use Case: Ca sử dụng

LAN
UC

6


PHẦN MỞ ĐẦU
Cờ caro là một loại trò chơi khá phổ biến vì luật chơi đơn giản và không đòi
hỏi nhiều về công cụ chơi, bạn chỉ cần một tờ giấy có kẻ ô và bút là đủ. Chính vì
vậy trò chơi này lại càng phổ biến trong giới học sinh sinh viên. Cờ caro là trò chơi
đối kháng 2 người: Trò chơi đối kháng (two-agent, conflicting game) : Gồm 2
người chơi, đối thủ này sẽ tìm cách dành chiến thắng trước đối thủ kia trong một
số hữu hạn nước đi, mỗi nước đi ược tạo ra dựa từ 1 trạng thái bất kỳ của trận đấu.
Nếu sau một số giới hạn nước đi, nếu chưa ai dành chiến thắng thì xem như hoà.
Ngoài ra, thông tin về trận đấu là hoàn toàn biết đuợc (perfect information) đối với
cả 2 đối thủ.
Đề tài “Xây dựng game cờ caro có chat trong mạng LAN bằng java theo
hướng cấu phần client – server” gồm có những nội dung sau:
-

Vẽ bàn cờ.
Hiển thị 2 ký tự (ví dụ X và O).
Sau mỗi nước, kiểm tra xem ai đã thắng cuôc hay chưa. Nếu thắng cuộc,
xuất ra thông báo, kết thúc một ván, trái lại, trò chơi tiếp tục.
Sau khi kết thúc một ván, chương trình cho phép người chơi chọn chơi
tiếp hay kết thúc, tùy theo sự kết thúc của trò chơi.
Chat với giữa Khách – Chủ

Mục đích của BTL là:
Như đã giới thiệu ở trên, Cờ caro là một trò chơi có từ lâu đời nay, hiện nay rất
phổ biến trong giới học đường. Từ nhu cầu giải trí đó, đã có rất nhiều hãng đã sản
xuất trò chơi caro trên máy tính, giúp cho việc chơi cờ caro được dễ dàng hơn, và
bạn có thể đánh cờ với máy mà không cần một người bạn thực sự. Trên cùng mục
đích muốn đem trò chơi cờ caro đến với mọi người, làm cho việc chơi cờ trở nên dễ
dàng hơn, có thể hổ trợ cho bạn chơi với bạn bè, nhóm em đã chọn chương trình
chơi cờ caro làm đề tài của mình.
Phương pháp: Nghiên cứu cơ sở lý thuyết và tài liệu thông qua các công cụ tìm
kiếm như google ,coccoc …
Sử dụng những kiến thức đã học về phân tích, thiết kế hệ thống để tổng hợp lại
kiến thức và hoàn thành báo cáo.
Dự kiến kết quả đạt được: Cung cấp những tài liệu cần thiết về các công nghệ
được áp dụng. Phân tích, thiết kế, đưa ra được các cấu phần một cách hợp lý. Xây
dựng được các cấu phần đúng theo phân tích thiết kế.

7


Tóm tắt nội dung của các chương:
Chương 1: Cơ sở lý thuyết. Trong chương này sẽ giới thiệu về ngôn ngữ cũng
như công cụ được áp dụng trong đề tài BTL.
Chương 2: Phân tích thiết kế hệ thống. . Khảo sát về hệ thống, vẽ biểu đồ UC,
đặc tả UC.
Chương 3: Cài đặt và triển khai. Xây dựng chương trình và thiết kế giao diện
phần mềm.
Chương 4: Đánh giá kết luận. Kết luận chung cho các chương trong BTL. Nhấn
mạnh những vấn đề đã giải quyết đồng thời trình bày các vấn đề vẫn chưa được giải
quyết và đưa ra kiến nghị, đề xuất.

8


Chương 1. CƠ SỞ LÝ THUYẾT
1.1.Tổng quan về phát triển phần mềm theo hướng cấu phần.
1.1.1.

Giới thiệu về cấu phần

Các cấu phần phần mềm được định nghĩa trong nhiều cách khác nhau từ các
điểm giống nhau và khác nhau của khung nhìn. [Brown 1998] trình bày bốn định
nghĩa của một thành phần phần mềm, trong tổng kết Hội thảo quốc tế CBSE đầu
tiên trong tháng 4 năm 1998:
• Một cấu phần là một phần không tầm thường, gần như độc lập và là một
phần có thể thay thế của hệ thống, đáp ứng một chức năng rõ ràng trong một
kiến trúc được xác định. Một cấu phần thích nghi và cung cấp việc thực hiện
vật lý của một tập các giao diện. (Philippe Krutchen, Rational Software)
• Một cấu phần phần mềm chạy thực (runtime) là gói kết nối động của một
hoặc nhiều chương trình quản lý như một đơn vị và truy cập thông qua giao
diện tài liệu có thể được phát hiện khi chạy thực. (Gartner Group)
• Một cấu phần phần mềm là một đơn vị của thành phần với giao diện đặc tả
và chỉ phụ thuộc bối cảnh. Một cấu phần phần mềm có thể được triển khai
độc lập và có thể tham gia với tư cách là bên thứ 3. (Clemes Szyperski)
• Một cấu phần thương mại đại diện cho việc thực hiện phần mềm của một quá
trình kinh doanh. Nó bao gồm các thành phần phần mềm cần thiết để thể
hiện, thực hiện, và triển khai các nội dung như có thể tái sử dụng các cấu
phần cho một hệ thống kin doanh lớn hơn. (Wojtek Kozaczynski, SSA)
Từ các định nghĩa trên, chúng ta cũng có thể rút ra được định nghĩa về cấu phần
rõ hơn:
“Một cấu phần phần mềm là một mảnh khép kín, tự triển khai mã với các chức
năng được xác định rõ và có thể được lắp rắp với các cấu phần khác thông qua giao
diện của nó”.
Một cấu phần là một chương trình hay một tập hợp các chương trình có thể được
biên dịch và thực thi. Đó là khép kín, do đó, nó cung cấp chức năng mạch lạc. Nó tự
triển khai để nó có thể được cài đặt và thực hiện trong một môi trường người dùng
cuối. Nó có thể được lắp ráp với các thành phần khác để có thể được tái sử dụng
như một đơn vị trong các ngữ cảnh khác nhau.
COP là Component-Oriented Programming (Lập trình hướng cấu phần).
COP cung cấp một phương thức cao hơn mức trừu tượng. Có một số lượng ngày
càng lớn các components tái sử dụng thư viện hỗ trợ trong việc phát triển các ứng
dụng cho các lĩnh vực khác nhau.
9


Tư duy lập trình hướng thành phần (component-oriented programming) theo ý
tưởng:
• Giải quyết bài toán bằng cách xây dựng một tập các thành phần (component)
có tính độc lập tương đối với nhau. Mỗi thành phần đảm nhiệm một phần
công việc nhất định. Các thành phần này phải tuân theo tiêu chuẩn nhất định
được xác định trước bao gồm giao diện, các kết nối, phiên bản, và triển khai.
Về nguyên tắc, mỗi thành phần có thể tái sử dụng độc lập với ngữ cảnh, nói
cách khác có thể dễ dàng sử dụng tại mọi lúc, mọi nơi.
• Sau đó, người ta ghép các thành phần với nhau để thu được một phần mềm
thoả mãn một tập các yêu cầu xác định.
1.1.2.

Cách xây dựng cấu phần

Với lập trình hướng cấu phần, người ta có thể tiến hành lập trình theo phương
pháp sau:
• Xây dựng một thư viện các thành phần, mỗi thành phần thực hiện một công
việc xác định.
• Khi cần phát triển một phần mềm cụ thể, người ta chỉ cần chọn những thành
phần có sẵn trong thư viện để ghép lại với nhau. Người lập trình chỉ
phải phát triển thêm các thành phần mình cần mà chưa có trong thư viện.
Thực tế cho thấy phương pháp phát triển phần mềm theo cấu phần đã làm giảm
chi phí của dự án phát triển phần mềm. So với công nghệ truyền thống chuẩn, công
nghệ phần mềm trên cơ sở cấu phần quan tâm đến cách xây dựng phần mềm nhiều
hơn. Thông qua việc sử dụng lại các cấu phần, vòng đời phát triển phần mềm được
rút ngắn lại, đồng thời tăng tính mềm dẻo khi sử dụng và bảo trì phần mềm. Hơn
nữa, phát triển phần mềm có khả năng làm tăng chất lượng phần mềm.

1.2. Tổng quan về ngôn ngữ Java
1.2.1.

Giới thiệu về ngôn ngữ Java

Java là một ngôn ngữ lập lập trình, được phát triển bởi Sun Microsystem vào
năm 1995, là ngôn ngữ kế thừa trực tiếp từ C/C++ và là một ngôn ngữ lập trình
hướng đối tượng.
Vì sao ngôn ngữ này lại được đặt tên là Java? Java là tên một hòn đảo ở
Indonesia - hòn đảo nổi tiếng với loại coffee Peet và cũng là loại nước uống phổ
biến của các kỹ sư Sun. Ban đầu Ngôn ngữ này được đặt tên là "Oak" (có nghĩa là
"Cây sồi" - 1991), nhưng các luật sư của Sun xác định rằng tên đó đã được đăng ký
nhãn hiệu nên các nhà phát triển đã phải thay thế bằng một tên mới - và cũng vì lý
do trên mà cái tên Java đã ra đời và trở thành tên gọi chính thức của Ngôn ngữ này Ngôn ngữ Lập trình Java.

10


1.2.2.

Ứng dụng của Java

Ngày nay Java được sử dụng với các mục đích sau:
1.2.3.

Phát triển ứng dụng cho các thiết bị điện tử thông minh, các ứng dụng
cho doanh nghiệp với quy mô lớn.
Tạo các trang web có nội dung động (web applet), nâng cao chức năng
của server.
Phát triển nhiều loại ứng dụng khác nhau: Cơ sở dữ liệu, mạng, Internet,
viễn thông, giải trí,...
Những đặc điểm cơ bản của Java

Tiêu chí hàng đầu của Ngôn ngữ Lập trình Java là "Write Once, Run Anywhere"
(Viết một lần, chạy mọi nơi), nghĩa là Java cho phép chúng ta viết code một lần và
thực thi được trên các hệ điều hành khác nhau. Ví dụ, chúng ta viết code trên Hệ
điều hành Windows và nó có thể thực thi được trên các Hệ điều hành Linux và Mac
OS...
Với đặc điểm nổi bật đó, Java có những đặc điểm cơ bản như sau:
-

-

1.2.4.

Đơn giản và quen thuộc: Vì Java kế thừa trực tiếp từ C/C++ nên nó có
những đặc điểm của ngôn ngữ này, Java đơn giản vì mặc dù dựa trên cơ
sở C++ nhưng Sun đã cẩn thận lược bỏ các tính năng khó nhất của của
C++ để làm cho ngôn ngữ này dễ sử dụng hơn.
Hướng đối tượng và quen thuộc.
Mạnh mẽ (thể hiện ở cơ chế tự động thu gom rác - Garbage Collection)
và an toàn.
Kiến trúc trung lập, độc lập nền tảng và có tính khả chuyển (Portability).
Hiệu suất cao.
Máy ảo (biên dịch và thông dịch).
Phân tán.
Đa nhiệm: Ngôn ngữ Java cho phép xâ dựng trình ứng dụng, trong đó
nhiều quá trình có thể xảy ra đồng thời. Tính đa nhiệm cho phép các nhà
lập trình có thể biên soạn phần mềm đáp ứng tốt hơn, tương tác tốt hơn
và thực hiện theo thời gian thực.
...
Các flatform cơ bản của Java

Java Platform gồm có 3 thành phần chính:
1.2.5.

Java Virtual Machine (Java VM): Máy ảo Java.
Java Application Programming Interface (Java API).
Java Development Kit (JDK) gồm trình biên dịch, thông dịch, trợ giúp,
soạn tài liệu... và các thư viện chuẩn.
Tiêu chuẩn của một môi trường Java điển hình

Thông thường, các chương trình Java trải qua 5 giai đoạn chính:
11


-

-

Editor: Lập trình viên viết chương trình và được lưu vào máy tính với
định dạng .java.
Compiler: Biên dịch chương trình thành bytecodes (định dạng .class) nhờ bước trung gian này mà Java được viết 1 lần và chạy trên các hệ
điều hành khác nhau.
Class Loader: Đọc file .class chứa mã bytecodes và lưu vào trong bộ
nhớ.
Bytecode Verifier: Đảm bảo rằng mã bytecodes là hợp lệ và không vi
phạm các vấn đề về bảo mật của Java.
Intepreter: Biên dịch bytecodes thành mã máy để máy tính có thể hiểu
được và sau đó thực thi chương trình.

1.3. Sơ lược về hệ thống mạng máy tính và hệ phân tán
Hệ thống mạng máy tính

1.3.1.

Các thiết bị truyền dẫn kết nối các máy tính cục bộ và trên diện rộng và liên lạc
với nhau qua các giao thức.
Hệ thống mạng máy tính có ở khắp nơi như:





Hệ thống mạng mobile.
Hệ thống mạng trong doanh nghiệp.
Hệ thống trong các nhà máy
Hệ thống mạng tại nhà.

Hệ thống mạng tập trung vào các gói tin, định tuyến, ...
1.3.2.

Hệ phân tán

Hệ phân tán là một tập hộp các máy tính độc lập sao cho mỗi user trong hệ thống
giống như máy tính riêng lẻ.
=>Tồn tại nhiều máy tính xử lí độc lập.
Hệ phân tán tập trung vào các ứng dụng, mọi hệ phân tán phụ thuộc vào các dịch
vụ được cung cấp bởi các hệ thống máy tính.

1.4. Các giao thức mạng
1.4.1.

Giao thức IP

IP là một số nguyên 32 bit, thường được biểu diễn dưới dạng một dãy 4 số
nguyên cách nhau bởi dấu chấm. Một số nguyên trong địa chỉ IP là một byte,
thường được gọi là một octet (8 bits).
Một địa chỉ IP gồm có 3 phần
• Phần đầu tiên là địa chỉ mạng (network address).
• Phần cuối cùng là địa chỉ máy (host address).
• Phần còn lại (nếu có) là địa chỉ mạng con (subnet address).

12


Địa chỉ IP được chia ra làm 5 lớp mạng (lớp A, B, C, D và E) trong đó 4 lớp đầu
được sử dụng còn lớp E dành để nghiên cứu, lớp D dung cho việc phát triển các
thông tin broadcast/multicast, lớp A,B,C được dung trong cuộc sống hàng ngày.
1.4.2.

Giao thức TCP

TCP là giao thức truyên thông định hướng kết nối, việc truyền trong mạng là tin
cậy dựa trên các tính năng retransmission, flowcontrol và kiểm tra lỗi.
TCP hỗ trợ nhiều giao thức ứng dụng phổ biến nhất trên Internet và các ứng
dụng kết quả, trong đó có WWW, thư điện tử và Secure Shell.
Trong bộ giao thức TCP/IP, TCP là tầng trung gian giữa giao thức IP bên dưới và
một ứng dụng bên trên. Các ứng dụng thường cần các kết nối đáng tin cậy kiểu
đường ống để liên lạc với nhau, trong khi đó, giao thức IP không cung cấp những
dòng kiểu đó, mà chỉ cung cấp dịch vụ chuyển gói tin không đáng tin cậy. TCP làm
nhiệm vụ của tầng giao vận trong mô hình OSI đơn giản của các mạng máy tính.
Các ứng dụng gửi các dòng gồm các byte 8-bit tới TCP để chuyển qua mạng.
TCP phân chia dòng byte này thành các đoạn có kích thước thích hợp (thường được
quyết định dựa theo kích thước của đơn vị truyền dẫn tối đa của tầng liên kết dữ liệu
của mạng mà máy tính đang nằm trong đó). Sau đó, TCP chuyển các gói tin thu
được tới giao thức IP để gửi nó qua một liên mạng tới mô đun TCP tại máy tính
đích. TCP kiểm tra để đảm bảo không có gói tin nào bị thất lạc bằng cách gán cho
mỗi gói tin một "số thứ tự". Số thứ tự này còn được sử dụng để đảm bảo dữ liệu
được trao cho ứng dụng đích theo đúng thứ tự. Mô-đun TCP tại đầu kia gửi lại "tin
báo nhận" cho các gói tin đã nhận được thành công; một "đồng hồ" tại nơi gửi sẽ
báo thời gian nếu không nhận được tin báo nhận trong khoảng thời gian bằng một
round-trip time, và dữ liệu (được coi là bị thất lạc) sẽ được gửi lại. TCP sử dụng
checksum (giá trị kiểm tra) để xem có byte nào bị hỏng trong quá trình truyền hay
không; giá trị này được tính toán cho mỗi khối dữ liệu tại nơi gửi trước khi nó được
gửi, và được kiểm tra tại nơi nhận.
1.4.3.

Giao thức UDP

UDP là một trong những giao thức cốt lõi của giao thức TCP/IP. Dùng UDP,
chương trình trên mạng máy tính có thể gởi những dữ liệu ngắn được gọi là
datagram tới máy khác. UDP không cung cấp sự tin cậy và thứ tự truyền nhận mà
TCP làm; các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà không có
thông báo. Tuy nhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như kích
thước nhỏ và yêu cầu khắt khe về thời gian. Do bản chất không trạng thái của nó
nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêu
cầu.

1.5. Mô hình Client – Server
13


Mô hình client/server là một mô hình nổi tiếng trong mạng máy tính, được áp
dụng rất rộng rãi và là mô hình của mọi trang web hiện có. Ý tưởng của mô hình
này là máy con (đóng vài trò là máy khách) gửi một yêu cầu để máy chủ (đóng vai
trò người cung ứng dịch vụ), máy chủ sẽ xử lý và trả kết quả về cho máy khách.

Hình 1. 1. Mô hình Client – Server

1.6. Lập trình Socket
Socket là một phương pháp để thiết lập kết nối truyền thông giữa một chương
trình yêu cầu dịch vụ ( client) và một chương trình cung cấp dịch vụ (server) trên
mạng LAN, WAN hay Internet và đôi lúc là giữa những quá trình ngay bên trong
máy tính. Mỗi socket có thể được xem như một điểm cuối trong một kết nối. Một
socket trên máy yêu cầu dịch vụ có địa chỉ mạng được cấp sẵn để “gọi” một socket
trên máy cung cấp dịch vụ. Một khi socket đã được thiết lập phù hợp, hai máy tính
có thể trao đổi dịch vụ và dữ liệu.
Để tạo 1 ứng dụng sử dụng socket thì cần phải có server và client.
Server và client sẽ gửi và nhận dữ liệu thông qua socket cụ thể: Client sẽ gửi yêu
cầu có các tham số đến server, server nhận được các tham số và sẽ xử lý ở server rồi
truyền trả lại cho client kết quả (1 ví dụ đơn giản là : client sẽ nhập 1 String và gửi
nó cho server và server sẽ đảo ngược String đó rồi trả lại cho client , cứ nhập như
vậy cho đến khi Client đã chuỗi "quit" thì sẽ thoát )

14


1.7. Công cụ hỗ trợ lập trình bằng ngôn ngữ Java - NetBean IDE
NetBean IDE là một “môi trường phát triển tích hợp“ (Integrated Development
Environment) kiểu như Visual Studio của Microsoft và được xem là một một bộ
ứng dụng “must-download” dành cho các nhà phát triển phần mềm.
NetBean IDE hỗ trợ nhiều hệ điều hành khác nhau như Windows, Mac, Linux,
và Solaris. NetBean bao gồm một IDE mã nguồn mở và một nền tảng ứng dụng cho
phép nhà phát triển nhanh chóng tạo nên các ứng dụng dành cho web, doanh
nghiệp, desktop và thiết bị di động bằng các ngôn ngữ lập trình Java, C/C++,
JavaScript, Ruby, Groovy, và PHP.
NetBeans IDE 7.1.1 cung cấp nhiều tính năng mới như shortcut tìm kiếm trong
toàn bộ IDE gọi là QuickSearch, giao diện thận thiện hơn với người dùng, và tính
năng tự động biên dịch khi lưu (Compile on Save). Ngoài việc hỗ trợ Java mọi
phiên bản (Java SE, Java EE, Java ME), NetBean IDE còn là công cụ lý tưởng cho
việc phát triển phần mềm bằng các ngôn ngữ PHP, C/C++, Groovy and Grails,
Ruby and Rails, Ajax and JavaScript.

Hình 1. 2. Giao diện của NetBean IDE

15


Chương 2. Phân tích thiết kế hệ thống
2.1 Mô tả chương trình
-

Viết chương trình để thực hiện trò chơi đánh cờ caro bằng LAN.
Cho phép chơi online ở mọi nơi trên Internet.
Máy Server tạo ra một Socket để liên kết giữa Khách và Chủ.
Theo từng ván cờ. Mỗi phiên là một luồng đảm bảo sự trao đổi giữa hai
người chơi và xác định trạng thái (thắng/thua) của ván cờ.
Trong hai người chơi có thể chat nói chuyện với nhau.
Trong mỗi ván cờ, Server sẽ được gán với kí hiệu “O” còn Client thì được
gán với kí hiệu là “X”. Hai người thay phiên đánh nhau vào những ô khác
nhau (nhấn vào ô màn hình mình định đánh) để nhanh chóng đạt được số ô
thẳng hàng theo hàng ngang, hàng dọc và hàng chéo. Người nào đánh được
số ô đó trước, người đó thắng cờ. Số ván cờ được tạo trên client.

2.2 Phân tích ứng dụng
Dựa vào bài toán ta phải thực hiện những công việc sau:
-

Tạo ra bàn cờ.
Tạo ra 1 Server cho game caro.
Tạo ra 1 Client cho game caro.
Máy Server tạo ra một Socket phục vụ kết nối đến Client.

Luật chơi của game được thiết lập như sau:
-

Khởi động Server, đợi kêt nối từ Client.
Client kêt nối thành công, bắt đầu ván cờ.
Bên nào đánh được số ô trên hàng dọc, hàng chéo lớn hơn hoặc bằng 5 ô thì
chiến thắng.

2.3Danh sách ca sử dụng:
-

Đánh cờ caro
Chat
Hiển thị thông tin người phát triển
Hiển thị luật chơi
Chơi mới
Kết nối lại
Kết nối địa chỉ IP mới

16


2.4 Biểu đồ ca sử dụng:

Choi moi
Chat

Danh caro

Server

Hien thong tin nha phat trien

Hien luat choi

Ket noi lai
Client

Ket noi IP moi

2.5 Đặc tả ca sử dụng
2.5.1 Đánh cờ caro
-

-

Tên UC: Đánh caro
Tác nhân: Người dùng
Mô tả: Đây là ca sử dụng chính của trò chơi, 2 bên client và server chơi caro
với nhau bằng ca sử dụng này
Điều kiện đầu vào: 2 máy client và server đã được kết nối
Điều kiện kết thúc: Có két quả thằng thua:
• Một bên tạo đánh được 5 nước thẳng hàng liên tục sẽ thắng
• Một bên không đánh lượt của mình trong khoảng thời gian nhất định sẽ
thua
Kết quả đầu ra: Kết quả thắng thua
17


-

Luồng sự kiện:

STT
1

Tác nhân

Hệ thống

Chọn chức năng New game

2

Làm mới vùng chơi caro

3

2 người dùng lần lượt chơi caro với
nhau cho đến khi phân thắng thua

4

Đưa ra thông báo kết quả thắng thua

5

Đưa ra gợi ý chơi lại
-

Luồng sự kiện khác:

STT

Tác nhân

Hệ thống

1

Mất kết nối client-server

2

Đưa ra thông báo mất kết nối
2.5.2 Chat
-

Tên UC: Chat
Tác nhân: Người dùng
Mô tả: 2 bên client và server có thể trò chuyện với nhau thông qua ca sử
dụng Chat
Điều kiện đầu vào: 2 máy client và server đã được kết nối
Kết quả đầu ra: Hiển thị các thông điệp đã gửi và nhận lên bảng Chat
Luồng sự kiện:

STT

Tác nhân

Hệ thống

1

Nhập thông điệp muốn gửi vào ô
Chat

2

Chọn Gửi

3

Gửi thông điệp tới máy khách

4

Hiển thị thông tin chat lên bảng chat
-

STT

Luồng sự kiện khác:
Tác nhân

Hệ thống

1

Mất kết nối client-server

2

Đưa ra thông báo mất kết nối

18


2.5.3 Hiện thông tin người phát triển
-

Tên UC: Hiện thông tin người phát triển
Tác nhân: Người dùng
Mô tả: Khi gười sử dụng khi muốn xem thông tin nhà phát triển có thể chọn
chức năng này để xem
Điều kiện đầu vào: Không có
Kết quả đầu ra: Hiển thị thông tin của người phát triển
Luồng sự kiện:

STT
1

Tác nhân

Hệ thống

Chọn Help

2

Hiển thị chỉ mục Help và About

3

Chọn About

4

Hiển thị thông tin người dùng
-

Luồng sự kiện khác: Không

2.5.4 Hiển thị luật chơi
-

Tên UC: Hiện thông tin người dùng
Tác nhân: Người dùng
Mô tả: Khi gười sử dụng khi muốn xem luật chơi có thể chọn chức năng này
để xem
Điều kiện đầu vào: Không
Kết quả đầu ra: Hiển thị luật chơi
Luồng sự kiện:

STT
1

Tác nhân

Hệ thống

Chọn Help

2

Hiển thị chỉ mục Help và About

3

Chọn Help

4

Hiển thị luật chơi
-

Luồng sự kiện khác: Không

2.5.5 Chơi mới
-

Tên UC: Làm mới game
Tác nhân: Người dùng
Mô tả: Khi người sử dụng muốn làm mới khung giao diện đánh caro để chơi
ván mới thì phải chọn chức năng chơi mới
Điều kiện đầu vào: Không
Kết quả đầu ra: Giao diện game đã được reset
Luồng sự kiện:
19


STT
1

Tác nhân

Hệ thống

Chọn Game

2

Hiển thị chỉ mục New Game

3

Chọn New Game

4

Reset lại game
-

Luồng sự kiện khác: Không

2.5.6 Kết nối lại
STT
1

Tên UC: Kết nối lại
Tác nhân: Client
Mô tả: Người dùng phía client khi bị mất kết nối, hay muốn làm mới kết nối
tới server có thể chọn chức năng reconnect
Điều kiện đầu vào: Máy client đã kết nối tới một địa chỉ IP từ trước đó
Kết quả đầu ra: Kết nối lại client tới server có IP đã kết nối từ trước
Luồng sự kiện:
Tác nhân

Hệ thống

Chọn new connect

2

Hiển thị chỉ mục reconnect và new
IP server

3

Chọn reconnect

4

Kết nối tới máy chủ có IP đã kết nối
từ trước

5

Hiện thị thông báo
-

Luồng sự kiện khác: Không

2.5.7 Kết nối địa chỉ IP mới
STT
1

Tên UC: Kết nối địa chỉ IP mới
Tác nhân: Client
Mô tả: Người dùng phía client khi muốn kết nối tới server có địa chỉ IP khác
địa chỉ ban đầu có thể chọn chức năng new IP server
Điều kiện đầu vào: không có
Kết quả đầu ra: Kết nối client tới server có IP mới nhập
Luồng sự kiện:
Tác nhân

Hệ thống

Chọn new connect
20


2

Hiển thị chỉ mục reconnect và new
IP server

3

Chọn reconnect

4

Kết nối tới máy chủ có IP đã kết nối
từ trước

5

Hiện thị thông báo
-

Luồng sự kiện khác: Không

21


Chương 3. Cài đặt và triển khai
3.1 Thiết kế giao diện
Sơ dồ lớp

Hình 3. 1. Sơ đồ lớp

-

Gồm 2 lớp:
+ Lớp Server cho cờ caro
+ Lớp Client cho cờ caro

22


Giao diện bàn cờ và hộp chat

Hình 3. 2. Giao diện bàn cờ và hộp chat

Form chính bàn cờ:
-

Nền: sử dụng thuộc tính BackGroundColor
Các ô: Tạo từ các nút buttton

Giao diện kết nối

23


Hình 3. 3. Giao diện kết nối dến Server

Hình 3. 4. Giao diện kết nối đến Server

Giao diện Client và Server
24


Hình 3. 5. Giao diện Client và Server

Khi chơi cờ

Hình 3. 6. Giao diện bên đánh cờ

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×