HCMUTE Xây Dựng Module Hỗ Trợ Thi Đấu Cờ Caro Tự Động

Hcmute phát triển module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động, nâng cao trải nghiệm người chơi và khả năng cạnh tranh.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

báo cáo tổng kết đề tài nghiên cứu khoa học

2020

59
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

MỞ ĐẦU

1. CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1. Mạng cục bộ (Local Network Area)

1.2. Mô hình Client – Server

1.3. Ưu và nhược điểm chính

1.4. Client

1.5. Vai trò của client

1.6. Server

1.7. Vai trò của server

1.8. Socket

2. CHƯƠNG 2: XÂY DỰNG PHẦN MỀM

2.1. Xác định yêu cầu

2.2. Xây dựng giao diện phần mềm

2.3. Xây dựng giao diện của chương trình Server

2.4. Xây dựng giao diện của chương trình Client

3. CHƯƠNG 3: CÁC KẾT QUẢ NGHIÊN CỨU

3.1. Chương trình Server

3.2. Màn hình Trang chủ

3.3. Màn hình Tạo tài khoản mới

3.4. Màn hình Tường thuật lại trận đấu

3.5. Chương trình Client

3.6. Màn hình Đăng nhập

3.7. Một số đoạn code quan trọng

4. CHƯƠNG 4: ĐÁNH GIÁ

KẾT LUẬN VÀ KIẾN NGHỊ

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Giới thiệu về Module Cờ Caro Tự Động của HCMUTE

Bài báo này phân tích đề tài nghiên cứu khoa học của sinh viên HCMUTE về việc phát triển module cờ caro tự động. Đề tài tập trung vào việc xây dựng một hệ thống cho phép hai chương trình máy tính thi đấu cờ caro, hỗ trợ giảng dạy và tổ chức các cuộc thi lập trình. Đây là một dự án tốt nghiệp HCMUTE, khẳng định năng lực nghiên cứu và ứng dụng trí tuệ nhân tạo (AI) của sinh viên. Phát triển game cờ carolập trình game cờ caro là hai trọng tâm chính của nghiên cứu. Hệ thống sử dụng ngôn ngữ lập trình C#, kết hợp mô hình Client-Server để đảm bảo sự tương tác và quản lý giữa các chương trình thi đấu.

1.1. Mục tiêu và Phạm vi Nghiên cứu

Mục tiêu chính là xây dựng một module cờ caro tự động hỗ trợ hai chương trình máy tính thi đấu một cách công bằng và thống nhất. Phạm vi nghiên cứu tập trung vào môi trường HCMUTE, cụ thể là sinh viên khoa Công nghệ thông tin HCMUTE. Đề tài hướng đến việc ứng dụng vào giảng dạy, chấm điểm bài tập và tạo sân chơi cho sinh viên, khuyến khích việc học hỏi về AI cờ caro, thuật toán cờ caro, và giải thuật tìm kiếm cờ caro. Module game HCMUTE này đóng vai trò quan trọng trong việc đánh giá khả năng lập trình và ứng dụng AI của sinh viên. Việc phát triển trò chơi cờ caro này cũng góp phần thúc đẩy sự phát triển của cộng đồng lập trình viên trong trường.

1.2. Tính Mới và Sáng tạo

Tính mới của đề tài nằm ở việc tạo ra một module cờ caro tự động hóa cho phép hai chương trình máy tính thi đấu với nhau. Hệ thống này khắc phục hạn chế của các phần mềm cờ caro hiện có, chỉ cho phép người chơi với người hoặc người chơi với máy. Ứng dụng module cờ caro này vào giảng dạy và thi cử giúp tiết kiệm chi phí, tạo sân chơi công bằng và thúc đẩy sự sáng tạo của sinh viên. Khả năng tích hợp module cờ caro vào các cuộc thi lập trình giúp nâng cao chất lượng và tính cạnh tranh của các cuộc thi. Game cờ caro trí tuệ nhân tạo được phát triển trong đề tài này có tiềm năng ứng dụng rộng rãi trong giáo dục và giải trí.

II. Phương pháp Nghiên cứu và Kiến trúc Hệ thống

Đề tài áp dụng nhiều phương pháp nghiên cứu, bao gồm nghiên cứu lý thuyết về mạng cục bộ (LAN), mô hình Client-Server, ngôn ngữ lập trình C#, và các thuật toán cờ caro. Ngoài ra, phương pháp phi thực nghiệm được sử dụng thông qua việc tiếp xúc trực tiếp với sinh viên để thu thập thông tin. Phương pháp thực nghiệm được áp dụng bằng việc xây dựng và thử nghiệm các phiên bản demo. Thiết kế game cờ caro dựa trên kiến trúc Client-Server, trong đó server quản lý các kết nối, cài đặt trận đấu và lưu trữ kết quả. Client tương tác với server và gửi thông tin về trận đấu. Việc sử dụng socket cho phép truyền dữ liệu giữa client và server một cách hiệu quả. Cờ caro onlinecờ caro tích hợp được tối ưu hóa thông qua việc sử dụng các thuật toángiải thuật hiệu quả.

2.1. Mô hình Kiến trúc

Hệ thống sử dụng mô hình Client-Server, một ứng dụng cờ caro phổ biến trong lập trình mạng. Server đóng vai trò trung tâm, quản lý các kết nối từ nhiều client, điều khiển quá trình thi đấu và lưu trữ dữ liệu. Các client gửi yêu cầu đến server và nhận phản hồi. Sự tương tác giữa client và server được thực hiện thông qua giao thức socket, cho phép truyền dữ liệu hai chiều hiệu quả. Cờ caro tự động hóa được hiện thực hóa nhờ vào khả năng tự động xử lý và truyền dữ liệu giữa các client thông qua server. Phát triển ứng dụng cờ caro theo mô hình này đảm bảo tính ổn định và khả năng mở rộng của hệ thống. Lập trình game cờ caro theo hướng này cho phép nhiều người chơi cùng tham gia thi đấu đồng thời.

2.2. Công nghệ và Thuật toán

Đề tài sử dụng ngôn ngữ lập trình C# và nền tảng .NET Framework. Thuật toán cờ caro được áp dụng để giúp máy tính tự động tìm kiếm nước đi tốt nhất. Việc phân tích thuật toán cờ caro là rất quan trọng để đảm bảo hiệu quả của hệ thống. Các giải thuật tìm kiếm được sử dụng để tối ưu hóa quá trình tìm kiếm nước đi. Deep learning cờ caro hoặc các phương pháp AI cờ caro có thể được nghiên cứu để nâng cao khả năng của chương trình. Tối ưu hóa cờ caro được thực hiện thông qua việc tinh chỉnh thuật toán và tối ưu hóa mã nguồn. Đánh giá module cờ caro được thực hiện dựa trên các tiêu chí như hiệu suất, độ chính xác và khả năng mở rộng.

III. Kết quả và Đánh giá

Đề tài đã xây dựng thành công module cờ caro tự động, cho phép hai chương trình máy tính thi đấu với nhau. Hệ thống hoạt động ổn định, giao diện thân thiện với người dùng. Việc kiểm thử module cờ caro được thực hiện kỹ lưỡng để đảm bảo chất lượng. Phần mềm cờ caro được đánh giá cao về tính khả dụng và hiệu quả. Đánh giá module cờ caro cho thấy sự thành công trong việc đáp ứng mục tiêu đề ra. Cờ caro tự động này tạo ra một môi trường thi đấu công bằng và minh bạch cho các sinh viên. HCMUTE công nghệ thông tin đã có bước tiến đáng kể trong việc ứng dụng công nghệ vào giáo dục.

3.1. Kết quả đạt được

Đề tài đã hoàn thành việc xây dựng module cờ caro tự động, cho phép hai chương trình máy tính thi đấu. Hệ thống có khả năng quản lý người dùng, cài đặt trận đấu và lưu trữ kết quả. Giao diện người dùng thân thiện, dễ sử dụng. Hệ thống hoạt động ổn định, đáp ứng được các yêu cầu về hiệu suất và độ tin cậy. Việc triển khai module cờ caro thành công là một minh chứng cho khả năng nghiên cứu và phát triển của sinh viên HCMUTE. Dự án tốt nghiệp HCMUTE này đóng góp vào việc ứng dụng công nghệ thông tin trong giáo dục. Sinh viên HCMUTE đã thể hiện được khả năng sáng tạo và giải quyết vấn đề.

3.2. Ứng dụng thực tiễn và ý nghĩa

Module cờ caro tự động này có nhiều ứng dụng thực tiễn trong giáo dục. Nó giúp giảng viên chấm điểm bài tập lập trình một cách hiệu quả, tạo sân chơi bổ ích cho sinh viên và khuyến khích họ học hỏi về AI. Việc tổ chức các cuộc thi lập trình cờ caro trở nên dễ dàng hơn. Dự án sinh viên HCMUTE này có ý nghĩa trong việc thúc đẩy ứng dụng công nghệ trong giáo dục và đào tạo. Nghiên cứu cờ caro này cũng đóng góp vào việc phát triển các ứng dụng AI trong lĩnh vực game. HCMUTE có thể sử dụng đề tài này để quảng bá hình ảnh và thu hút sinh viên. Tích hợp module cờ caro vào các chương trình giảng dạy khác cũng là một hướng phát triển tiềm năng.

01/02/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. Mạng cục bộ (Local Network Area) Local Area Network (LAN): là một hệ thống mạng dùng để kết nối các máy tính trong một phạm vi nhỏ (nhà ở, phòng làm việc, trường học, …). Các máy tính trong mạng LAN có thể chia sẻ tài nguyên với nhau, mà điển hình là chia sẻ tập tin, máy in, máy quét và một số thiết bị khác. [2] Một mạng LAN tối thiểu cần có máy chủ (server), các thiết bị ghép nối (Repeater, Hub, Switch, Bridge), máy tính con (client), card mạng (Network Interface Card – NIC) và dây cáp (cable) để kết nối các máy tính lại với nhau.

Trong thời đại của hệ điều hành MS-DOS, máy chủ mạng LAN thường sử dụng phần mềm Novell NetWare, tuy nhiên điều này đã trở nên lỗi thời hơn sau khi Hình 1: Sơ đồ Mạng LAN Windows NT và Windows for Workgroups xuất hiện. Ngày nay hầu hết máy chủ sử dụng hệ điều hành Windows, và tốc độ mạng LAN có thể lên đến 10 Mbps, 100 Mbps hay thậm chí là 1 Gbps. Mặc dầu ngày nay mạng Ethernet chuyển đổi là giao thức thông dụng nhất dùng trong tầng liên kết dữ liệu và IP là giao thức thông dụng nhất trong tầng Network, rất nhiều sự lựa chọn khác nhau đã và đang được sử dụng, và một vài trong số đó trở nên phổ biến trong những lĩnh vực thích hợp. Mạng LAN nhỏ hơn gồm có một hoặc vài liên kết chuyển mạch tới những mạng khác – thường với một liên kết tới một bộ định tuyến, modem cáp, hay DSL modem cho truy nhập Internet.

Những mạng LAN lớn hơn được mô tả bởi người dùng với những đường dẫn dư thừa và chuyển đổi sử dụng giao thức giải thuật cây để ngăn chặn vòng lặp, khả năng của chúng để điều khiển các loại giao thông khác nhau thông qua chất lượng dịch vụ (QoS), và cô lập giao thông qua VLANs. Mạng LAN lớn hơn cũng bao gồm nhiều và đa dạng các 14 Luan van thiết bị như bộ chuyển đổi, tường lửa, bộ định tuyến, bộ cân bằng tải, cảm biến và hơn thế nữa. LAN có thể có liên kết với những mạng cục bộ khác thông qua đường thuê bao, dịch vụ thuê bao, hoặc bằng "đường hầm" thông qua mạng Internet sử dụng công nghệ VPN. Tùy thuộc vào cách tạo ra và bảo đảm các liên kết, và độ rộng địa lý của mạng, hệ các mạng LAN này có thể trở thành Mạng liên kết chủ (MAN) hoặc Mạng liên kết diện rộng (WAN), hoặc một phần của Mạng toàn cầu.

Mô hình Client – Server Client/Server: là mô hình tổng quát nhất, trên thực tế thì một server có thể được nối tới nhiều server khác nhằm làm việc hiệu quả và nhanh hơn. Khi nhận được 1 yêu cầu từ client, server này có thể gửi tiếp yêu cầu vừa nhận được cho server khác ví dụ như database server vì bản thân nó không thể xử lý yêu cầu này được. Máy server có thể thi hành các nhiệm vụ Hình 2: Mô hình Client - Server đơn giản hoặc phức tạp. Ví dụ như một máy chủ trả lời thời gian hiện tại trong ngày, khi một máy client yêu cầu lấy thông tin về thời gian nó sẽ phải gửi một yêu cầu theo một tiêu 15 Luan van chuẩn do server định ra, nếu yêu cầu được chấp nhận thì máy server sẽ trả về thông tin mà client yêu cầu.

Có rất nhiều các dịch vụ server trên mạng nhưng nó đều hoạt động theo nguyên lý là nhận các yêu cầu từ client sau đó xử lý và trả kết quả cho client yêu cầu. Thông thường chương trình server và client được thi hành trên hai máy khác nhau. Cho dù lúc nào server cũng ở trạng thái sẵn sàng chờ nhận yêu cầu từ client nhưng trên thực tế một tiến trình liên tác qua lại (interaction) giữa client và server lại bắt đầu ở phía client, khi mà client gửi tín hiệu yêu cầu tới server. Các chương trình server thường đều thi hành ở mức ứng dụng (tầng ứng dụng của mạng).

Sự thuận lợi của phương pháp này là nó có thể làm việc trên bất cứ một mạng máy tính nào có hỗ trợ giao thức truyền thông chuẩn cụ thể ở đây là giao thức TCP/IP. Với các giao thức chuẩn này cũng giúp cho các nhà sản xuất có thể tích hợp nhiều sản phẩm khác nhau của họ lên mạng mà không gặp phải khó khăn gì. [3] Với các chuẩn này thì các chương trình server cho một dịch vụ nào đấy có thể thi hành trên một hệ thống chia sẻ thời gian (timesharing system) với nhiều chương trình và dịch vụ khác hoặc nó có thể chạy trên chính một máy tính các nhân bình thường. Có thể có nhiều chương server cùng làm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính.

Với mô hình trên chúng ta nhận thấy rằng mô hình client/server chỉ mang đặc điểm của phần mềm không liên quan gì đến phần cứng mặc dù trên thực tế yêu cầu cho một máy server là cao hơn nhiều so với máy client. Lý do là bởi vì máy server phải quản lý rất nhiều các yêu cầu từ các clients khác nhau trên mạng. Ưu và nhược điểm chính Có thể nói rằng với mô hình client/server thì mọi thứ dường như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ liệu từ xa (bao gồm các công việc như gửi và nhận file, tìm kiếm thông tin,.) với nhiều dịch vụ đa dạng mà mô hình cũ không thể làm được. Mô hình client/server cung cấp một nền tảng lý tưởng cho phép tích hợp các kỹ thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS).

Một trong những vấn đề nảy sinh trong mô hình này đó là tính an toàn và bảo mật thông tin trên mạng. Do phải trao đổi dữ liệu giữa 2 máy ở 2 khu vực khác nhau cho nên dễ dàng xảy ra hiện tượng thông tin truyền trên mạng bị lộ. 16 Luan van Hình 3: Hoạt động của mô hình Client - Server Client: Trong mô hình client/server, người ta còn định nghĩa cụ thể cho một máy client là một máy trạm mà chỉ được sử dụng bởi 1 người dùng với để muốn thể hiện tính độc lập cho nó. Máy client có thể sử dụng các hệ điều hành bình thường như Win9x, DOS, OS/2.

Bản thân mỗi một client cũng đã được tích hợp nhiều chức năng trên hệ điều hành mà nó chạy, nhưng khi được nối vào một mạng LAN, WAN theo mô hình client/server thì nó còn có thể sử dụng thêm các chức năng do hệ điều hành mạng (NOS) cung cấp với nhiều dịch vụ khác nhau (cụ thể là các dịch vụ do các server trên mạng này cung cấp), ví dụ như nó có thể yêu cầu lấy dữ liệu từ một server hay gửi dữ liệu lên server đó. Thực tế trong các ứng dụng của mô hình client/server, các chức năng hoạt động chính là sự kết hợp giữa client và server với sự chia sẻ tài nguyên, dữ liệu trên cả hai máy Vai trò của client Trong mô hình client/server, client được coi như là người sử dụng các dịch vụ trên mạng do một hoặc nhiều máy chủ cung cấp và server được coi như là người cung cấp dịch vụ để trả lời các yêu cầu của các clients. Điều quan trọng là phải hiểu được vai trò hoạt động của nó trong một mô hình cụ thể, một máy client trong mô hình này lại có thể là server trong một mô hình khác. Ví dụ cụ thể như một máy trạm làm việc như một client bình thường trong mạng LAN nhưng đồng thời nó có thể đóng vai trò như một máy in chủ (printer server) cung cấp dịch 17 Luan van vụ in ấn từ xa cho nhiều người khác (clients) sử dụng.

Client được hiểu như là bề nổi của các dịch vụ trên mạng, nếu có thông tin vào hoặc ra thì chúng sẽ được hiển thị trên máy client. Server: Còn được định nghĩa như là một máy tính nhiều người sử dụng (multiuser computer). Vì một server phải quản lý nhiều yêu cầu từ các client trên mạng cho nên nó hoạt động sẽ tốt hơn nếu hệ điều hành của nó là đa nhiệm với các tính năng hoạt động độc lập song song với nhau như hệ điều hành UNIX, WINDOWS. Server cung cấp và điều khiển các tiến trình truy cập vào tài nguyên của hệ thống.

Các ứng dụng chạy trên server phải được tách rời nhau để một lỗi của ứng dụng này khô ng làm hỏng ứng dụng khác. Tính đa nhiệm đảm bảo một tiến trình không sử dụng toàn bộ tài nguyên hệ thống. Vai trò của server. Như chúng ta đã bàn ở trên, server như là một nhà cung cấp dịch vụ cho các clients yêu cầu tới khi cần, các dịch vụ như cơ sở dữ liệu, in ấn, truyền file, hệ thống.

Các ứng dụng server cung cấp các dịch vụ mang tính chức năng để hỗ trợ cho các hoạt động trên các máy clients có hiệu quả hơn. Sự hỗ trợ của các dịch vụ này có thể là toàn bộ hoặc chỉ một phần thông qua IPC. Để đảm bảo tính an toàn trên mạng cho nên server này còn có vai trò như là một nhà quản lý toàn bộ quyền truy cập dữ liệu của các máy clients, nói cách khác đó là vai trò quản trị mạng. Có rất nhiều cách thức hiện nay nhằm quản trị có hiệu quả, một trong những cách đang được sử dụng đó là dùng tên Login và mật khẩu.

Socket Socket: là điểm cuối end-point trong liên kết truyền thông hai chiều (two-way communication) biểu diễn kết nối giữa Client – Server. Các lớp Socket được ràng buộc với một cổng port (thể hiện là một con số cụ thể) để các tầng TCP (TCP Layer) có thể định danh ứng dụng mà dữ liệu sẽ được gửi tới. [4] Socket hoạt động thông qua các tầng TCP hoặc TCP Layer định danh ứng dụng, từ đó truyền dữ liệu thông qua sự ràng buộc với một cổng port Socket là giao diện lập trình ứng dụng mạng được dùng để truyền và nhận dữ liệu trên internet. Giữa hai chương trình chạy trên mạng cần có một liên kết giao tiếp hai chiều, hay còn gọi là two-way communication để kết nối 2 process trò chuyện với nhau.

Điểm cuối (endpoint) của liên kết này được gọi là socket. Một chức năng khác của socket là giúp các tầng TCP hoặc TCP Layer định danh ứng dụng mà dữ liệu sẽ được gửi tới thông qua sự ràng buộc với một cổng port (thể hiện là một con số cụ thể), từ đó tiến hành kết nối giữa client và server. Chức năng của socket: kết nối giữa client và server thông qua TCP/IP và UDP để truyền và nhận giữ liệu qua Internet.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài viết "HCMUTE Phát Triển Module Thi Đấu Cờ Caro Tự Động" giới thiệu về một dự án nghiên cứu tại Trường Đại học Sư phạm Kỹ thuật TP.HCM, nơi các sinh viên đã phát triển một module cho phép thi đấu cờ Caro tự động. Dự án không chỉ giúp sinh viên áp dụng kiến thức lý thuyết vào thực tiễn mà còn nâng cao kỹ năng lập trình và tư duy logic. Những lợi ích mà bài viết mang lại cho độc giả bao gồm cái nhìn sâu sắc về quy trình phát triển phần mềm, cũng như cách thức mà công nghệ có thể được ứng dụng trong các trò chơi trí tuệ.

Nếu bạn muốn tìm hiểu thêm về các ứng dụng công nghệ trong lĩnh vực lập trình và phát triển phần mềm, hãy tham khảo bài viết Luận văn thạc sĩ khoa học máy tính xây dựng ứng dụng monocular full slam, nơi bạn sẽ khám phá cách xây dựng ứng dụng sử dụng công nghệ SLAM. Ngoài ra, bài viết Luận văn tốt nghiệp khoa học máy tính xây dựng hệ thống quản lý khóa học dựa trên moodle framework sẽ cung cấp cho bạn cái nhìn về việc phát triển hệ thống quản lý học tập. Cuối cùng, bạn có thể tìm hiểu về Luận văn tốt nghiệp công nghệ phần mềm phát triển hệ thống chatbot trò chuyện nhiều tầng, một ứng dụng thú vị khác trong lĩnh vực công nghệ thông tin. Những tài liệu này sẽ giúp bạn mở rộng kiến thức và hiểu rõ hơn về các xu hướng công nghệ hiện nay.