







Preview text:
I. TỔNG QUAN
1. Giới thiệu Game -
Hệ thống: bao gồm một server và (2 client trở lên) kết nối với nhau. Server quản lý trận đấu, lưu
trữ thông tin người chơi, lưu lịch sử các trận đấu. -
Đăng nhập: Người chơi đăng nhập vào tài khoản của mình từ một máy client. Sau khi đăng nhập
thành công, giao diện hiển thị danh sách các người chơi (client khác) đang trực tuyến cùng thông
tin: tên người chơi, tổng số trận thắng hiện có, trạng thái (đang chơi hoặc online hoặc đang
offline), bảng xếp hạng. -
Bắt đầu trận: Người chơi có thể gửi lời mời chơi cho một người chơi khác từ danh sách trực
tuyến (không thuộc người chơi đang chơi). Khi người chơi khác chấp nhận mời, trận đấu bắt đầu. -
Luật chơi: Trò chơi Rút bài may mắn diễn ra như sau: -
Server ngẫu nhiên chọn ra 10 lá bài từ bộ bài. -
Người chơi rút ra 3 quân bài ngẫu nhiên từ 10 quân bài được phát và được xem tổng điểm của mình. -
Server so sánh điểm của 2 người chơi, người chiến thắng được 1 điểm, nếu thua thì
không được điểm. Nếu điểm 2 người chơi bằng nhau, mỗi người được 0.5 điểm. -
Giao diện: Hiển thị 10 lá bài được phát ngẫu nhiên và cho phép người chơi chọn ra 3 lá mình
mong muốn. Sau khi 2 bên chọn xong, kết quả sẽ hiển thị ngay lập tức cho 2 bên biết số điểm của
nhau và màn hình hiển thị kết quả so sánh là cao hơn, thấp hơn, hay hòa. -
Kết thúc trận đấu: Người có tổng điểm cao nhất sẽ chiến thắng. -
Thoát trận: Người chơi có thể thoát khỏi trận đấu bất cứ lúc nào, nhưng sẽ bị xử thua (có hiển
thị cảnh báo) nếu làm vậy trước khi trận đấu kết thúc. -
Xếp hạng: Kết quả của các trận đấu sẽ được lưu trữ trên cơ sở dữ liệu. Mỗi người chơi có thể
xem bảng xếp hạng của toàn bộ hệ thống theo tổng số điểm (giảm dần) và số trận thắng. Công nghệ sử dụng: - Java (Java Swing) - Database: MySQL -
Protocol: TCP/IP thông qua ServerSocket.
2. Phân tích yêu cầu II. THIẾT KẾ
1. Kiến trúc tổng quan
a. Tổng quan kiến trúc hệ thống
Hệ thống sẽ gồm hai thành phần chính:
Server: Quản lý kết nối, lưu trữ thông tin người chơi, và điều phối trận đấu.
Client: Giao diện cho người chơi để đăng nhập, bắt đầu trận đấu, và xem kết quả.
b. Thành phần chi tiết của hệ thống A. Server
Server sẽ có các module chính như sau:
Quản lý kết nối và đăng nhập: Kiểm tra thông tin đăng nhập hợp lệ của người chơi, duy trì kết nối
với các client. Lưu trữ thông tin người chơi khi đăng ký tài khoản mới.
Quản lý thông tin người chơi: Lưu trữ các thông tin người chơi như tên, tổng số trận thắng/thua,
trạng thái online/offline, và xếp hạng.
Quản lý trận đấu: Tạo và điều phối các trận đấu. Gửi thông báo kết quả và điểm số giữa các client tham gia trận đấu.
Quản lý xếp hạng: Cập nhật bảng xếp hạng của người chơi dựa trên tổng số điểm và tỉ lệ thắng sau mỗi trận đấu.
Thư viện luật chơi: Chứa các quy tắc chơi game "Rút bài may mắn" và cách tính điểm trong từng ván. B. Client
Client sẽ có các module sau:
Giao diện người dùng (UI): Cho phép người chơi đăng nhập, đăng ký, và bắt đầu trận đấu.
Giao diện trò chơi: Hiển thị các lá bài, điểm số, và kết quả sau mỗi vòng chơi. Giao diện sẽ có
chức năng chọn 3 lá bài từ 10 lá được phát ngẫu nhiên.
Thông báo trận đấu: Hiển thị trạng thái của trận đấu, thông báo kết quả của mỗi vòng và tổng kết
sau khi kết thúc trận đấu.
c. Luồng hoạt động chính của hệ thống
Đăng nhập và kết nối: Client sẽ gửi yêu cầu đăng nhập đến server, server sẽ xác thực và gửi lại
thông tin kết nối thành công nếu hợp lệ.
Tạo và tham gia trận đấu: Người chơi có thể mời người chơi khác tham gia trận đấu hoặc chờ
mời. Khi hai người chơi cùng tham gia, server sẽ khởi tạo trận đấu.
Chơi game: Server ngẫu nhiên chọn ra 10 lá bài cho cả hai người chơi và thông báo cho client.
Mỗi người chơi chọn 3 lá bài mong muốn và gửi lại cho server để so sánh điểm.
Tính điểm và so sánh: Server so sánh điểm giữa hai người chơi và thông báo kết quả từng vòng.
Sau ba vòng, server sẽ tổng kết và thông báo người chiến thắng.
Cập nhật xếp hạng: Sau mỗi trận đấu, server sẽ cập nhật xếp hạng của người chơi dựa trên kết quả
của trận đấu và lưu trữ vào cơ sở dữ liệu. d. Cơ sở dữ liệu
Bảng người chơi: Lưu thông tin người chơi bao gồm ID, tên, mật khẩu, số trận thắng/thua, và trạng thái online/offline.
Bảng trận đấu: Lưu thông tin của các trận đấu bao gồm ID trận đấu, ID người chơi tham gia, điểm
số của mỗi người chơi, và kết quả trận đấu.
Bảng xếp hạng: Lưu tổng điểm của mỗi người chơi và xếp hạng hiện tại dựa trên tỉ lệ thắng.
e. Giao tiếp giữa Client và Server
Giao thức kết nối: Sử dụng WebSocket để giữ kết nối liên tục giữa client và server nhằm cập nhật
trạng thái và kết quả thời gian thực.
API giao tiếp: Server cung cấp các API cho client để thực hiện đăng nhập, đăng ký, bắt đầu trận
đấu, cập nhật điểm số, và lấy thông tin xếp hạng.
2. Sơ đồ khối các chức năng của Client và Server \
3. Biểu đồ use-case tổng quan
4. Use-case chi tiết Chat messages Play game View Info View Ranking View History
5. Biểu đồ lớp
6. Biểu đồ tuần tự
7. Sơ đồ thực thể quan hệ (ER) III. KẾT QUẢ
1. Kiến trúc ứng dụng
2. Cài đặt triển khai IV. KẾT LUẬN TÀI LIỆU THAM KHẢO