1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo đồ án môn học đề tài chương trình trò chơi caro qua mạng bằng java

19 11 0

Đ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 đề Chương trình trò chơi caro qua mạng bằng Java
Tác giả Lê Hoàng Việt Quốc, Phạm Vĩnh Phú, Phan Dương Khải Nguyên, Huỳnh Trần Quốc Trung
Người hướng dẫn ThS. Lê Đức Trị
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Lập trình mạng
Thể loại báo cáo đồ án
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 19
Dung lượng 1,43 MB

Nội dung

Điều này cho phép các máy tính khác nhau có thể giao tiếp với nhau một cách độc lập thông qua các kênh giao tiếp được thiết lập socket.Có hai kiểu socket: AF_UNIX: chỉ cho phép giao tiế

Trang 1

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA ĐIỆN TỬ - VIỄN THÔNG

BỘ MÔN MÁY TÍNH – HỆ THỐNG NHÚNG

- -

BÁO CÁO ĐỒ ÁN MÔN HỌC Môn học: Lập trình mạng Đề tài: Chương trình trò chơi caro qua mạng bằng Java Giảng viên hướng dẫn: ThS Lê Đức Trị Lớp: 20Nhung Nhóm sinh viên thực hiện: Nhóm 15 Lê Hoàng Việt Quốc 20200323

Phạm Vĩnh Phú 20200308

Phan Dương Khải Nguyên 20200281

Huỳnh Trần Quốc Trung 20200379

Thành phố Hồ Chí Minh, ngày 07 tháng 03 năm 2024

Trang 2

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

Trang 3

BẢNG ĐÁNH GIÁ ĐÓNG GÓP CỦA THÀNH VIÊN

Trang 4

LỜI MỞ ĐẦU

Đầu tiên, nhóm 15 xin cảm ơn thầy Lê Đức Trị đã phân công cho nhóm 15

đề tài này Được nhận và thực hiện vào dự án này không chỉ là một cơ hội lớn

để áp dụng kiến thức lập trình mạng của mình mà còn là một trải nghiệm học hỏi và phát triển kỹ năng quý báu

Việc xây dựng một game Caro đa người chơi trên mạng không chỉ là một nhiệm vụ kỹ thuật mà còn là một thách thức tương đối đối với kỹ năng lập trình mạng và giao tiếp giữa các thành phần của hệ thống Chúng em cam kết

sẽ đặt hết sức mình vào dự án này, học hỏi và tận dụng những kiến thức đã học được để tạo ra một sản phẩm chất lượng và thú vị

Trong báo cáo này, nhóm 15 sẽ cố gắng trình bày một cách chi tiết và rõ ràng nhất về quá trình phát triển dự án, từ việc nghiên cứu và thiết kế cho đến triển khai và kiểm thử Nhóm chúng em hy vọng rằng báo cáo này không chỉ

là một bản tường thuật về công việc của nhóm đã thực hiện mà còn là một nguồn tài liệu hữu ích cho các sinh viên khác quan tâm đến lập trình mạng và phát triển game trực tuyến

Một lần nữa xin được phép gửi lời cảm ơn chân thành nhất đến thầy Lê Đức Trị vì đã giúp đỡ và hướng dẫn để nhóm chúng em có thể hoàn thành được đề tài đã được nhận và hoàn thành tốt môn học /

Nhóm 15

Trang 5

MỤC LỤC

LỜI MỞ ĐẦU 4

I TỔNG QUAN VỀ ĐỀ TÀI 6

1 Giới thiệu tổng quan về đề tài 6

2 Giới thiệu tổng quan về game Caro 6

3 Phương pháp triển khai đề tài 6

II CƠ SỞ LÝ THUYẾT 7

1 Giao thức TCP/IP 7

2 Socket 8

3 Mô hình client – server 10

4 Mô hình MVC 13

5 Đa luồng 14

III GIỚI THIỆU MÔI TRƯỜNG PHẦN MỀM 15

1 Java 15

2 Java Swing 16

3 MySQL 16

Trang 6

I TỔNG QUAN VỀ ĐỀ TÀI

1 Giới thiệu tổng quan về đề tài

Yêu cầu: Lập trình chương trình trò chơi game caro qua mạng bằng Java

2 Giới thiệu tổng quan về game Caro

Game Caro, hay còn được biết đến với tên gọi Gomoku, là một trò chơi kinh điển thuộc thể loại cờ vua, nơi hai người chơi trạnh nhanh với nhau để tạo ra một chuỗi liên tiếp gồm n cờ theo hàng ngang, dọc hoặc chéo trên một bảng ô vuông

Luật chơi: Trò chơi được chơi trên một bảng ô vuông, thường là có kích thước

15x15 hoặc 19x19, với mỗi người chơi sử dụng một loại quân cờ riêng (thường là X

và O hoặc các biểu tượng khác nhau) Mục tiêu cua mỗi người chơi là đặt quân cờ của mình trên bảng để tạo ra một chuỗi gồm n quân cờ theo hàng ngang, dọc hoặc chéo mà không bị chặn bởi quân cờ của đối thủ Người chơi đầu tiên tạo ra chuỗi này sẽ chiến thắng trò chơi

Game Caro không chỉ là một trò chơi giải trí mà còn là một trò chơi đòi hỏi tính

tư duy chiến lược và kỹ năng định hình không gian Với sự phổ biến trên toàn thế giới, Caro đã trở thành một trong những trò chơi kinh điển được yêu thích và chơi rộng rãi trong cộng đồng game thủ

Trong dự án này, nhóm chúng em quyết định phát triển một phiên bản game Caro bằng Java, cho phép 2 người chơi cùng tham gia vào trò chơi và cạnh tranh với nhau thông qua kết nối Internet Với sự kết hợp giữa tính giải trí và khả năng tương tác trực tuyến, nhóm em hy vọng rằng dự án sẽ đáp ứng được yêu cầu và mang đến một trải nghiệm tốt với dự án game Caro qua mạng này

3 Phương pháp triển khai đề tài

 Ngôn ngữ lập trình: Java

 Môi trường phát triển: NetBeans, MySQL

 Các kiến thức sử dụng: giao thức TCP/IP, Socket, JavaSwing, Multithreading

 Mô hình: client-server, MVC (Model – View – Controller)

Trang 7

 Tạo ra được một chương trình mà các Client có thể kết nối và tương tác với nhau thông qua một Server

II CƠ SỞ LÝ THUYẾT

1 Giao thức TCP/IP

Bộ giao thức TCP/IP (TCP/IP protocol suite) hay còn gọi là bộ giao thức Internet (Internet protocol suite hoặc IP suite) là một mô hình khái niệm và một tập hợp các giao thức truyền thông dùng trong mạng Internet và các hệ thống mạng máy tính tương tự Tên gọi TCP/IP đến từ hai giao thức nền tảng của bộ giao thức là TCP (Transmission Control Protocol) và IP (Internet Protocol)

Các lớp chính của mô hình TCP/IP:

 Lớp Ứng dụng (Application Layer)

 Lớp Giao vận (Transport Layer)

 Lớp Mạng (Internet Layer)

 Lớp Liên kết Dữ liệu (Link Layer hoặc Network Access Layer)

Hình 1: Mô hình TCP/IP

Trang 8

Trong dự án, nhóm sử dụng TCP/IP, làm việc ở tầng Transport và tần Internet của

mô hình TCP/IP

Tầng Transport (TCP/UDP):

 TCP cung cấp kết nối tin cậy, đảm bảo dữ liệu được truyền qua mạng một cách an toàn và có thứ tự Điều này thích hợp cho các ứng dụng như trò chơi trực tuyến, nơi độ tin cậy và đồng bộ hóa dữ liệu là quan trọng

 Nếu sử dụng UDP (User Datagram Protocol) thay vì TCP, cũng đang làm việc ở tầng Transport UDP là giao thức không đảm bảo việc truyền dữ liệu một cách tin cậy và không có cơ chế kiểm soát lỗi hoặc đảm bảo thứ tự gói tin, nhưng nó

có thể nhanh hơn và phù hợp cho các ứng dụng cần thời gian thực hoặc không yêu cầu độ tin cậy cao như streaming media

Tầng Internet (IP):

 Tầng Internet của TCP/IP chịu trách nhiệm định tuyến gói tin trên mạng Trong dự án, khi sử dụng TCP hoặc UDP để truyền dữ liệu, gói tin sẽ được đóng gói vào các gói tin IP và chuyển tiếp qua mạng tới đích Giao thức IP đảm bảo gói tin đến đúng đích bằng cách sử dụng địa chỉ IP của các thiết bị mạng và các bảng định tuyến

2 Socket

Socket là một giao diện lập trình ứng dụng (API – Application Programming Interface) được giới thiệu đầu tiên trong ấn bản Unix – BSD 4.2 dưới dạng các hàm

hệ thống trong ngôn ngữ C Ngày nay, socket được hỗ trợ hầu hết trên các hệ điều hành: Windows, Linux và trong nhiều ngôn ngữ lập trình như C, C++, Java, Dot.net,…

Socket cho phép thiết lập các kênh giao tiếp giữa các máy tính trên mạng, trong

đó mỗi đầu kênh được đánh dấu bởi một cặp địa chỉ IP và số cổng (port)

Trang 9

Hình 2: Socket

Khi thiết lập kết nối bằng socket, mỗi bên của kết nối được gán với một cặp địa chỉ IP và số cổng Điều này cho phép các máy tính khác nhau có thể giao tiếp với nhau một cách độc lập thông qua các kênh giao tiếp được thiết lập socket

Có hai kiểu socket:

 AF_UNIX: chỉ cho phép giao tiếp giữa các quá trình trong cùng một máy tính

 AF_INET: cho phép giao tiếp giữa các quá trình trên những máy tính khác nhau

Trong dự án này, nhóm thực hiện dùng kiểu socket AF_UNIX để tương tác giữa hai user khác nhau

Để thực hiện các cuộc giao tiếp, quá trình cần có cổng của socket mà mình sử dụng Mỗi cổng giao tiếp thể hiện một địa chỉ xác định trong hệ thống

Trang 10

Hình 3: Ports

Số hiệu cổng gán cho socket phải duy nhất trên máy tính, có giá trị trong khoảng 0 – 65535 (16bit), các cổng từ 1 – 1023 được dành riêng cho các quá trình của hệ thống

Socket thường được sử dụng trong hai loại kết nối chính:

 Socket TCP

 Soket UDP

Socket TCP:

Sử dụng trong các ứng dụng yêu cầu kết nối tin cậy, đảm bảo việc truyền dữ liệu

an toàn và có thứ tự Khi sử dụng socket TCP, một kết nối đường truyền được thiết lập giữa client và server, và dữ liệu được truyền đi qua kết nối này theo trình tự được đảm bảo

Socket UDP:

Sử dụng trong các ứng dụng yêu cầu truyền dữ liệu một cách nhanh chóng và không cần đảm bảo việc truyền dữ liệu tin cậy Khi sự dụng socket UDP, dữ liệu được gửi dưới dạng các gói tin độc lập mà không cần thiết lập kết nối đường truyền Trong dự án, nhóm sử dụng giao thức có kết nối sử dụng giao thức TCP vì các lý

do sau:

Trang 11

 Đảm bảo truyền dữ liệu an toàn và có thứ tự.

 Kết nối tin cậy giữa client và server

 Quản lý kết nối đa chiều

3 Mô hình client – server

Mô hình client – server là một mô hình phân tán trong đó các ứng dụng được chia thành hai phần chính: client (người dùng) và server (máy chủ) Trong mô hình này, client và server tương tác với nhau thông mạng

Hình 4: Mô hình client - server

Trong mô hình client – server, server đóng vai trò như là một trung tâm điều khiên, cung cấp các dịch vụ và tài nguyên cho các client Các client được cấp quyền truy cập vào các tài nguyên và dịch vụ của server thông qua các giao thức và phương thức truy cập HTPP, FTP, SSH, Telnet, và nhiều hơn nữa

Các ứng dụng client – server rất phổ biến trong các môi trường mạng và Internet, bao gồm các ứng dụng web, email, trò chơi trực tuyến, hệ thống quản lý cơ sở dữ liệu và nhiều hơn nữa Mô hình client – server cho phép các ứng dụng phân tán trên nhiều máy trính và cho phép các người dùng truy cập và chia sẽ dữ liệu và tài nguyên một cách dễ dàng

Mô hình client – server sử dụng TCP là một kiểu thiết kế mạng phổ biến trong đó client và server tương tác với nhau thông qua giao thức TCP (Transmission Control Protocol) Cách mô hình hoạt động:

Trang 12

 Thiết lập kết nối:

 Client khởi tạo một yêu cầu kết nối tới server bằng cách gửi một yêu cầu kết nối đến địa chỉ IP và cổng của server

 Server lắng nghe yêu cầu kết nối từ client trên cổng được chỉ định và chấp nhận kết nối từ client khi có yêu cầu

Hình 5: Giai đoạn 1 của hoạt động client - server sử dụng TCP

 Gửi nhận và dữ liệu:

 Sau khi kết nối được thiết lập, client và server có thể gửi và nhận dữ liệu từ nhau

 Dữ liệu được chia thành các gói tin và truyền đi qua kết nối TCP, đảm bảo tính toàn vẹn và đúng thứu tự của dữ liệu

Hình 6: Giai đoạn 2 của mô hình hoạt động client - server sử dụng TCP

 Xử lý yêu cầu:

 Server nhận dữ liệu từ client và thực hiện xử lý yêu cầu tương ứng

 Sau khi xử lý, server có thể gửi lại kết quả cho client, hoặc tiếp tục duy trì kết nối thực hiện các tương tác tiếp theo

Trang 13

Hình 7: Giai đoạn 3 của mô hình hoạt động client - server sử dụng TCP

 Kết thúc kết nối:

 Khi quá trình trao đổi dữ liệu hoàn tất, client hoặc server có thể đóng kết nối bằng cách gưi một tín hiệu kết thúc kết nối

 Server lắng nghe và chấp nhận các yêu cầu đóng kết nối từ client, và sau đó đóng kết nối

Hình 8: Giai đoạn 4 của mô hình client - servet sử dụng TCP

Mô hình client – server sử dụng TCP được sử dụng trong dự án vì đáp ứng được tính tin cậy và đảm bảo tính toán vẹn của dữ liệu Điều này là do TCP cung cấp một kết nối tin cậy giữa client và server, đảm bảo rằng dữ liệu được truyền đi một cách

an toàn và có thứ tự

4 Mô hình MVC

MVC là viết tắt của cụm từ “Model – View – Controller” Đây là mô hình thiết

kế được sử dụng trong kỹ thuật phần mềm MVC là một mẫu kiến trúc phần mềm

để tạo lập giao diện người dùng trên máy tính MVC chia thành ba phần được kết nối với nhau và mỗi thành phần đều có một nhiệm vụ riêng của nó và độc lập với các thành phần khác Tên gọi 3 thành phần:

 Model (dữ liệu): quản lí xử lí các dữ liệu

Trang 14

 View (giao diện): nơi hiển thị dữ liệu cho người dùng.

 Controller (bộ điều khiển): điều khiển sự tương tác của hai thành phần Model

và View

Mô hình MVC được dùng trong dự án để phát triển giao diện người dùng

Hình 9: Mô hình MVC

4

Các thành phần chính của mô hình:

 Model: là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng và là cầu nối giữa 2 thành phần khác là View và Controller Một model là dữ liệu được sử dụng bởi chương trình Đây có thể là cơ sở dữ liệu, hoặc file XML bình thường hay một đối tượng đơn giản

View: đây là phần giao diện dành cho người sử dụng View là phương tiện

hiển thị các đối tượng trong một ứng dụng Chẳng hạn như hiện thị một cửa sổ, nút hay văn bản trong một cửa số khác Nó bao gồm bất cứ thứ gì mà người dùng có thể nhìn thấy được

Controller: là bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đến

thông qua View Một controller bao gồm cả Model lẫn View Nó nhận input và thực hiện các update tương ứng

Luồng xử lý trong MVC:

Trang 15

 Khi một yêu cầu của từ client gưi server Thì bị Controller trong MVC chặn lại để xem đó là URL request hay event

 Sau đó, Controller xử lý input của user rồi giap tiếp với Model trong MVC

 Model chuẩn bị data và gửi lại cho Controller

 Cuối cùng, khi xử lý xong yêu cầu thì Controller gửi dữ liệu trở lại View và hiện thị cho người dùng trên trình duyệt

5 Đa luồng

Hình 10: Đa luồng

Đa luồng (multithreading) là một kỹ thuật cho phép một chương trình chia thành nhiều luồng thực thi đồng thời Mỗi luồng thực hiện một tác vụ riêng biệt, cho phép chương trình thực hiện nhiều công việc cùng lúc và tăng hiệu suất tổng thể của ứng dụng Dưới đây là số điểm quan trọng về đa luồng:

Tăng hiệu suất: Đa luồng cho phép các tác vụ được thực hiện đồng thời,

giúp tăng hiệu suất của chương trình bằng cách sử dụng tài nguyên hệ thống hiệu quả hơn

Phản hồi tương tác: Đa luồng cho phép ứng dụng vẫn có thể phản hồi tương

tác với người dùng trong khi thực hiện các tác vụ phức tạp khác mà không gây tình trạng đóng băng hoặc chậm trễ

Tận dụng CPU đa lõi: Trên các máy tính có nhiều lõi CPU, việc sử dụng đa

luồng cho phép chương trình tận dụng tối đa khả năng xử lý song song của các lõi

Xử lý các tác vụ đồng thời: Đa luồng thường được sử dụng để xử lý các tác

vụ đồng thời như gửi và nhận dữ liệu qua mạng, xử lý dữ liệu đồng thời từ nhiều nguồn, hoặc tương tác với người dùng trong khi thực hiện các tác vụ nền

Trang 16

Quản lý tài nguyên chia sẻ: Khi sử dụng đa luồng, cần phải chú ý đến việc

quản lý tài nguyên chia sẻ như biến toàn cục hoặc bộ nhớ, để tránh các vấn đề như xung đột và đồng bộ hóa dữ liệu

Trong dự án của nhóm, việc sử dụng đa luồng có thể hữu ích để xử lý các tác vụ đồng thời như xử lý yêu cầu từ nhiều người chơi cùng một lúc, cập nhật trạng thái của trò chơi và hiển thị giao diện người dùng một cách mượt mà và phản hồi

III GIỚI THIỆU MÔI TRƯỜNG PHẦN MỀM

1 Java

Java là một ngôn ngữ lập trình phổ biến, mạnh mẽ và đa năng Ra mắt lần đầu vào năm 1995, cho đến bây giờ Java được sử dụng rộng rãi trong nhiều loại ứng dụng khác nhau Các đặc điểm quan trọng của Java:

 Đa nền tảng: Java được thiết kể để có thể chạy trên nhiều nền tảng khác nhau

mà không cần đổi mã nguồn, nhờ vào máy ảo Java

 Hướng đối tượng: Java hỗ trợ lập trình hướng đối tượng, giúp dễ quản lý mã nguồn, tái sử dụng mã và phát triển ứng dụng phức tạp

 An toàn và bảo mật: Java có các tính năng bảo mật tích hợp để ngăn chặn các

lỗ hổng bảo mật và chống lại các cuộc tấn công

 Phong phú với thư viện: Java đi kèm với một bộ thư viện phong phú, cung cấp các công cụ và API để phát triển nhanh chóng và dễ dàng các ứng dụng phức tạp

Java không chỉ là một ngôn ngữ lập trình, mà còn là một nền tảng phát triển toàn diện, cung cấp một loạt các công cụ và tài nguyên để phát triển ứng dụng từ nhỏ đến lớn Trong hệ sinh thái Java, Java Development Kit (JDK) là trung tâm, cung cấp môi trường phát triển và thực thi đầy đủ cho các ứng dụng Java

2 Java Swing

Java Swing là một phần của Java Development Kit (JDK), cung cấp bộ công cụ GUI mạnh mẽ để phát triển giao diện người dùng đồ họa cho các ứng dụng Java Với Swing, ta có thể tạo ra các ứng dụng desktop phong phú và linh hoạt, với các thành phần giao diện người dùng như nút, ô văn bản, hộp thoại, bảng và nhiều hơn nữa phù hợp cho nhu cầu cụ thể của dự án là tạo ra một trò chơi game Caro

Ngày đăng: 14/04/2024, 21:26

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w