1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Môn học lập trình mạng Đề tài xây dựng trò chơi cờ vua

16 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Trò Chơi Cờ Vua
Tác giả Ngô Thế Đức
Người hướng dẫn Phạm Phú Thiện, Giảng Viên Hướng Dẫn
Trường học Trường Đại Học Ngoại Ngữ - Tin Học Thành Phố Hồ Chí Minh
Chuyên ngành Lập Trình Mạng
Thể loại Đồ Án
Năm xuất bản 2024
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 16
Dung lượng 1,38 MB

Nội dung

o Đăng ký tài khoản mới, đăng nhập, cập nhật thông tin tài khoản  Đăng ký tài khoản mới  Đăng nhập vào hệ thống  Cập nhật thông tin tài khoản o Chức năng chơi game  Cứ một cặp user

Trang 1

Bộ Giáo Dục Và Đào Tạo Trường Đại Học Ngoại Ngữ - Tin Học Thành Phố Hồ Chí Minh

Khoa Công Nghệ Thông Tin

MÔN HỌC : LẬP TRÌNH MẠNG

ĐỀ TÀI : XÂY DỰNG TRÒ CHƠI CỜ VUA

Giảng Viên Hướng Dẫn : PHẠM PHÚ THIỆN Thành Viên:

1 Ngô Thế Đức – MSSV: 22DH114504

Tp Hồ chí minh, Ngày 24 Tháng 7 năm 2024

Trang 2

Nhận xét của giảng viên

Trang 3

Lời cảm ơn

Kính gửi Giảng Viên Hướng Dẫn : Phạm Phú Thiện,

Chúng tôi, nhóm sinh viên của lớp 233123045403, xin được gửi lời cảm ơn chân thành đến thầy vì sự hướng dẫn tận tâm và chuyên nghiệp trong quá trình thực hiện

đồ án lập trình mạng

Trước khi được thầy hướng dẫn, chúng tôi đã gặp nhiều khó khăn và bối rối trong việc xác định và triển khai các bước cần thiết để hoàn thành đồ án

Tuy nhiên, sự hỗ trợ tận tâm của thầy đã giúp chúng tôi vượt qua những khó khăn

đó một cách hiệu quả

Thầy đã không chỉ giúp chúng tôi hiểu rõ hơn về quy trình làm đồ án, mà còn truyền đạt những kiến thức quan trọng và kinh nghiệm thực tế từ những dự án đã từng tham gia Nhờ đó, chúng tôi đã có thể áp dụng những kiến thức đó vào đồ án của mình

Không chỉ là một giảng viên, thầy còn là một người đồng hành tận tụy và đáng tin cậy trong suốt quá trình thực hiện đồ án Thầy luôn sẵn lòng lắng nghe và trả lời những câu hỏi của chúng tôi một cách chi tiết và rõ ràng Thầy đã tạo ra một môi trường học tập tích cực và khích lệ chúng tôi tự tin thể hiện ý kiến và ý tưởng của mình

Chúng tôi biết rằng những kiến thức và kỹ năng mà chúng tôi đã học được từ thầy

sẽ có giá trị lớn trong sự nghiệp và cuộc sống của chúng tôi Chúng tôi sẽ luôn ghi nhớ những lời khuyên và chỉ dẫn của thầy để ngày càng trở nên giỏi hơn và đóng góp tốt hơn cho ngành nghề của mình

Một lần nữa, chúng tôi xin chân thành cảm ơn thầy Thành vì sự hướng dẫn tận tâm

và những đóng góp quý báu của thầy trong quá trình thực hiện đồ án Thầy là một người giảng viên xuất sắc và đáng ngưỡng mộ

Chúng tôi chúc thầy luôn khỏe mạnh, thành công trong công việc và có thêm nhiều niềm vui trong cuộc sống

Trân trọng,

Lớp: 233123045403

Trang 5

Mục lục

Contents

I Mở đầu: 8

1 Giới thiệu đề tài: 8

2 Mục tiêu nghiên cứu: 8

3 Phạm vi nghiên cứu: 8

II Phân tích yêu cầu: 8

1 Yêu cầu chức năng: 8

2 Các kịch bản sử dụng: 9

III Thiết kế hệ thống: 9

1 Kiến trúc hệ thống: 9

2 Thiết kế chi tiết: 10

IV Mã nguồn: 13

1 Môi trường phát triển: 13

2 Cấu trúc mã nguồn: 13

3 Quá trình cài đặt và triển khai: 13

V Đánh giá và kết luận: 13

1 Kết quả thực thực hiện: 13

2 Kết luận: 13

3 Hạn chế: 13

4 Hướng phát triển: 13

VI Tài liệu tham khảo: 13

Trang 6

Danh mục từ viết tắt

1

2

Trang 7

I Mở đầu:

1 Giới thiệu đề tài:

 Cờ vua là một trò chơi trí tuệ lâu đời với lịch sử phát triển hàng ngàn năm, phổ biến rộng rãi trên toàn thế giới Nó không chỉ là một trò chơi giải trí đơn thuần mà còn là một môn thể thao trí tuệ, giúp rèn luyện tư duy logic, khả năng tập trung, giải quyết vấn đề và đưa ra quyết định sáng suốt

 Với sự phát triển mạnh mẽ của công nghệ thông tin, việc xây dựng game

cờ vua điện tử đang ngày càng trở nên phổ biến Các game cờ vua điện tử mang đến cho người chơi nhiều lợi ích như:

Tiện lợi: Người chơi có thể dễ dàng chơi cờ vua mọi lúc mọi nơi chỉ với một

thiết bị điện tử có kết nối internet

Giàu tính tương tác: Các game cờ vua điện tử thường có nhiều tính năng

tương tác như: hướng dẫn cách chơi, phân tích nước đi, thi đấu trực tuyến với người chơi khác, giúp người chơi nâng cao trình độ và có thêm hứng thú với trò chơi

Đa dạng: Các game cờ vua điện tử có nhiều biến thể khác nhau, đáp ứng

nhu cầu và sở thích của nhiều đối tượng người chơi

2 Mục tiêu nghiên cứu:

 Sử dụng mô hình kết nối giữa Client – Server để tiến hành triển khai trò chơi cờ vua Từ đó cho ta thấy được trực quan cách thức hoạt động của

mô hình Client – Server

 Phát triển một hệ thống Client-Server mạnh mẽ, hiệu quả và bảo mật cho game cờ vua điện tử

 Mang đến cho người chơi trải nghiệm chơi game mượt mà, ổn định và an toàn

3 Phạm vi nghiên cứu:

 Tiến hành kết nối mô hình Client – Server trong mạng LAN

 Triển khai kết nối giữa nhiều Client với Server

II Phân tích yêu cầu:

1 Yêu cầu chức năng:

Trang 8

o Đăng ký tài khoản mới, đăng nhập, cập nhật thông tin tài khoản

 Đăng ký tài khoản mới

 Đăng nhập vào hệ thống

 Cập nhật thông tin tài khoản

o Chức năng chơi game

 Cứ một cặp user đăng nhập sẽ được ghép đôi thành 1 phiên chơi sau khi có xác nhận đồng ý từ cả hai user

 Nếu 1 user đăng nhập vào trường hợp lẻ, user sẽ được đưa vào hàng đợi và có thể chọn xem 1 phiên chơi của một cặp bất kỳ User này sẽ tự động được ghép đôi tạo thành 1 phiên chơi mới khi có một user nữa đăng nhập (cần có xác nhận đồng ý từ cả hai user) Trong trường hợp một trong hai user không đồng ý ghép đôi cả hai sẽ được đưa lại vào hàng đợi

và user từ chối ghép đôi sẽ bị trừ 1 điểm thành tích

 Mỗi phiên chơi giới hạn trong 10 phút, nếu hết thời gian thì xem như 2 user hỏa Thời gian giới hạn cho mỗi nước đi là

30 giây user nào không đi nước mới trong thời gian giới hạn

sẽ bị xử thua Điểm phiên chơi được tỉnh theo tỉ lệ:

 Thắng: cộng 3 điểm

 Hòa: cộng 1 điểm

 Thua: trừ 1 điểm

 Chat nhóm trong khi chơi: giữa người chơi 1 người chơi 2 -người xem

 Xem thành tích cá nhân: số trận thắng/thua, tỉ lệ thắng, chuỗi trận thắng thua dài nhất, điểm thành tích (nhóm từ xác định công thức tính điểm thành tích sao cho hợp lý)

 Xếp hạng: liệt kẻ thứ hạng tất cả các user đã tham gia dựa trên điểm thành tích: chuỗi trận thẳng: tỉ lệ thắng (cần quan tâm đến trường hợp user mới tham gia vài trận)

o Thống kê được tổng số user.

o Thống kê được số user đang online.

o Block user khỏi hệ thống.

o Ghi log các trận đấu.

 Ghi log các user tham gia

Trang 9

 Ghi log thời gian chơi

 Ghi log thời gian bắt đầu

o Query các thông tin cơ bản

 Query user thắng nhiều nhất

 Query trận đấu ngắn nhất

4 Các kịch bản sử dụng:

o Đăng kí hoặc đăng nhập

o Tạo và tham gia trò chơi:

 Tạo trò chơi mới hoặc tham gia trò chơi hiện có

 Chọn chơi với đối thủ người hoặc AI

o Di chuyển quân cờ:

 Sử dụng giao diện kéo-thả hoặc nhấp chuột để di chuyển quân cờ

o Ghép đôi người chơi:

 Khi hai người chơi đăng nhập cùng lúc, họ sẽ được ghép đôi thành một phiên chơi sau khi cả hai xác nhận đồng ý

 Nếu một người chơi đăng nhập mà không có người chơi khác, họ sẽ được đưa vào hàng đợi

o Hàng đợi và xem trận đấu:

 Người chơi trong hàng đợi có thể chọn xem một phiên chơi của cặp bất kỳ

 Khi có một người chơi mới đăng nhập, cả hai sẽ được ghép đôi và tạo thành một phiên chơi mới sau khi cả hai xác nhận đồng ý

 Nếu một trong hai người chơi từ chối ghép đôi, cả hai sẽ được đưa lại vào hàng đợi và người từ chối sẽ bị trừ 1 điểm thành tích

o Các cách kết thúc:

Trang 10

 Thời gian giới hạn cho mỗi nước đi là 30 giây Người chơi không đi nước mới trong thời gian giới hạn sẽ bị xử thua

 Đầu hàng hoặc thoát trận sẽ bị xử thua

 Mỗi phiên chơi giới hạn trong 10 phút Nếu hết thời gian thì xem như hòa

o Tính điểm:

 Thắng: +3 điểm

 Hòa: +1 điểm

 Thua: -1 điểm

o Chat nhóm:

 Giữa người chơi 1, người chơi 2 và người xem

o Xem thành tích cá nhân:

 Số trận thắng/thua

 Tỉ lệ thắng

 Chuỗi trận thắng/thua dài nhất

 Điểm thành tích (dựa trên tổng từ “tính điểm”)

o Xếp hạng người chơi:

 Liệt kê thứ hạng tất cả người chơi đã tham gia dựa trên điểm thành tích

 Cân nhắc chuỗi trận thắng và tỉ lệ thắng

 Đặc biệt quan tâm đến trường hợp người chơi mới tham gia vài trận

Trang 11

III. Thiết kế hệ thống:

1 Kiến trúc hệ thống:

5 Thiết kế chi tiết:

 Giao diện người dùng:

Hình 3.1 Bàn cờ vào trận

Trang 12

 Thiết kế cơ sở dữ liệu:

 Thiết kế các module:

Module Client

o Giao diện người dùng (UI)

 Màn hình chính: Tạo/truy cập trò chơi, xem trận đấu, và kiểm tra thành tích

 Bàn cờ: Hiển thị bàn cờ và các quân cờ, xử lý các sự kiện di chuyển quân cờ

 Thông báo trò chơi: Hiển thị các thông báo về trạng thái trò chơi (chiếu, hòa, hết thời gian)

 Chat nhóm: Giao diện chat giữa người chơi và người xem

o Quản lý phiên chơi

 Tạo và tham gia trò chơi: Kết nối đến server, tạo và tham gia các trò chơi

 Ghép đôi: Quản lý quá trình ghép đôi người chơi

 Hàng đợi: Hiển thị danh sách người chơi trong hàng đợi và cung cấp các tùy chọn

o Tính toán thời gian

 Đếm ngược thời gian trò chơi: Hiển thị thời gian còn lại cho mỗi phiên chơi và mỗi nước đi

 Thông báo hết giờ: Xử lý các thông báo khi hết thời gian

o Hiển thị thông tin cá nhân

 Thành tích cá nhân: Hiển thị số trận thắng/thua, tỉ lệ thắng, chuỗi trận thắng/thua dài nhất

 Xếp hạng: Hiển thị bảng xếp hạng dựa trên điểm thành tích

Module Server

o Quản lý kết nối

 Xử lý kết nối của người chơi: Quản lý kết nối và đăng nhập của người chơi

 Đồng bộ hóa trạng thái trò chơi: Đảm bảo rằng tất cả các client có cùng một trạng thái trò chơi

o Quản lý trò chơi

 Ghép đôi người chơi: Xử lý quá trình ghép đôi người chơi, bao gồm xác nhận đồng ý từ cả hai người chơi

Trang 13

 Tạo và quản lý phiên chơi: Quản lý các phiên chơi, bao gồm thời gian giới hạn và điều kiện kết thúc

o Xử lý nước đi

 Nhận và kiểm tra nước đi: Nhận nước đi từ client, kiểm tra tính hợp lệ và cập nhật trạng thái bàn cờ

 Xử lý lỗi và bất thường: Phát hiện và xử lý các lỗi hoặc trường hợp bất thường trong trò chơi

o Thống kê và điểm số

 Tính điểm: Cập nhật điểm số dựa trên kết quả trận đấu (thắng, hòa, thua)

 Cập nhật thành tích và xếp hạng: Cập nhật và duy trì thông tin thành tích và xếp hạng người chơi

o Thuật toán chơi cờ

 Thuật toán lựa chọn nước đi: Cài đặt thuật toán AI để lựa chọn nước đi, chẳng hạn như Minimax hoặc Alpha-Beta Pruning

 Cấp độ khó: Điều chỉnh độ khó của AI để phù hợp với các trình độ khác nhau

o Xử lý nước đi AI

 Tính toán nước đi: Tính toán và đưa ra nước đi của AI dựa trên trạng thái hiện tại của bàn cờ

 Gửi nước đi đến client: Gửi nước đi của AI đến client để cập nhật bàn cờ

o Lưu trữ thông tin người chơi

 Thông tin tài khoản: Lưu trữ thông tin đăng nhập, điểm số,

và thành tích cá nhân của người chơi

o Lưu trữ trận đấu

 Lịch sử trận đấu: Lưu trữ các trận đấu đã hoàn thành và kết quả của chúng

o Cập nhật điểm số và xếp hạng

 Điểm thành tích: Lưu trữ và cập nhật điểm thành tích của người chơi

 Xếp hạng: Lưu trữ và quản lý bảng xếp hạng người chơi

Trang 14

IV Mã nguồn:

1 Môi trường phát triển:

 Intellij IDEA

 Gradle

 JDK

 Hệ điều hành Linux/Windows

6 Cấu trúc mã nguồn:

7 Quá trình cài đặt và triển khai:

o Cài Đặt Java Development Kit (JDK):

o Cài Đặt Integrated Development Environment (IDE):

o Tạo Dự Án Mới trong IntelliJ IDEA:

o Viết Mã Nguồn:

o Viết các chức năng cho ứng dụng

o Kiểm Tra:

V Đánh giá và kết luận:

Trang 15

1 Kết quả thực hiện:

Hình 1.1 Bàn cờ

Hình 1.2 Chọn chế độ

2 Kết luận:

 Trò chơi cờ vua với hình thức online, nhiều người chơi cho chúng ta thấy được cái nhìn tổng quan hơn về cách thức hoạt động của của mô hình Client–Server

3 Hạn chế:

 Chưa có đăng nhập, đăng kí

 Chưa chơi được ngoài mạng

 Hạn chế về mặt tìm hiểu công nghệ, nhân lực làm việc, kiến thức chưa đủ dẫn đến trì trệ tiến độ làm việc

 Quá trình lên kế hoạch chưa hợp lí dẫn đến không được hoàn thành như mong đợi

Trang 16

8 Hướng phát triển:

 Với những bước hoàn thiện trên tôi đã hướng tới mục tiêu mở rộng hệ thống từ LAN thành WAN

 Thiết kế lại trò chơi thành 3D

 Tiến hành áp dụng vào các dự án thực tế như nhận diện để bảo mật thông tin người dùng, hệ thống đăng nhập trong các công ty…

VI Tài liệu tham khảo:

https://chatgpt.com/

https://www.youtube.com/@amir650

https://github.com/amir650/BlackWidow-Chess

https://youtu.be/bWKbdPAovFA?si=HHOBjKDYZlEW-R4K

https://youtu.be/eIrMbAQSU34?si=Sg9XW2h0p5uVnhh9

Ngày đăng: 02/11/2024, 17:17

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w