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

Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động

59 14 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

Định dạng
Số trang 59
Dung lượng 4,13 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

DANH MỤC NHỮNG MỤC VIẾT TẮT - CNTT: Công nghệ thông tin - CPU: Central Processing Unit Bộ xử lý trung tâm - DBMS: Database Management System Hệ quản trị cơ sở dữ liệu - DSL: Digital Su

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

THÀNH PHỐ HỒ CHÍ MINH

CÔNG TRÌNH NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN

XÂY DỰNG MODULE HỖ TRỢ HAI CHƯƠNG TRÌNH MÁY TÍNH THI ĐẤU CỜ CARO TỰ ĐỘNG

MÃ SỐ: SV2020-09

S K C 0 0 7 3 6 3

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP.HCM

TP Hồ Chí Minh, Tháng 10/2020 XÂY DỰNG MODULE HỖ TRỢ HAI CHƯƠNG TRÌNH

MÁY TÍNH THI ĐẤU CỜ CARO TỰ ĐỘNG

Trang 3

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM

BÁO CÁO TỔNG KẾT

ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN

XÂY DỰNG MODULE HỖ TRỢ HAI CHƯƠNG TRÌNH

MÁY TÍNH THI ĐẤU CỜ CARO TỰ ĐỘNG

Mã số đề tài: SV2020-09

Thuộc nhóm ngành khoa học: Công nghệ thông tin

Nguyễn Huỳnh Phúc (Chủ nhiệm) Nam

Trang 4

TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT

THÀNH PHỐ HỒ CHÍ MINH

KHOA CÔNG NGHỆ THÔNG TIN

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do - Hạnh phúc

BẢN GIẢI TRÌNH CHỈNH SỬA BÁO CÁO TỔNG KẾT ĐỀ TÀI NCKH SINH VIÊN

1 Tên đề tài: Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động

2 Mã số đề tài: SV2020-09

3 Họ và tên chủ nhiệm: Nguyễn Huỳnh Phúc

4 Họ và tên GVHD: Trần Công Tú

5 Đơn vị công tác: Khoa Công nghệ thông tin

6 Giải trình chỉnh sửa báo cáo tổng kết đề tài:

Không có chỉnh sửa

MỤC LỤC

MỤC LỤC 3

DANH MỤC NHỮNG MỤC VIẾT TẮT 6

DANH MỤC CÁC HÌNH VẼ 7

THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI 9

MỞ ĐẦU 11

1 Tổng quan tình hình nghiên cứu 11

2 Lý do chọn đề tài 11

3 Mục tiêu đề tài 12

Giảng viên hướng dẫn (Ký và họ tên) Tp HCM, ngày tháng năm

Chủ nhiệm đề tài

(Ký và họ tên)

Trang 5

4 Phương pháp nghiên cứu 12

5 Đối tượng và phạm vi nghiên cứu 13

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

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

1.2 Mô hình Client – Server 15

1.3 Socket 19

1.4 Database (Microsoft SQL Server) 21

1.5 WPF (Windows Presentation Foundation) 22

1.6 .NET Framework 24

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

1 Xác định yêu cầu 25

2 Xây dựng giao diện phần mềm 26

2.1 Xây dựng giao diện của chương trình Server (Hình 8) 26

2.2 Xây dựng giao diện của chương trình Client (Hình 29) 27

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

3.1 Chương trình Server 28

3.1.1 Màn hình Trang chủ 28

3.1.2 Màn hình Tạo tài khoản mới 34

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

3.2 Chương trình Client 43

3.2.1 Màn hình Trang chủ 43

3.2.2 Màn hình Đăng nhập 45

3.3 Một số đoạn code quan trọng 47

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

Trang 6

KẾT LUẬN VÀ KIẾN NGHỊ 52 TÀI LIỆU THAM KHẢO 53 PHỤ LỤC 54

Trang 7

DANH MỤC NHỮNG MỤC VIẾT TẮT

- CNTT: Công nghệ thông tin

- CPU: Central Processing Unit (Bộ xử lý trung tâm)

- DBMS: Database Management System (Hệ quản trị cơ sở dữ liệu)

- DSL: Digital Subcriber Line (kênh thuê bao số)

- GIS: Geographic Information System (Hệ thống thông tin địa lý)

- IP: Internet Protocol (Giao thức mạng)

- IPC: Inter Process Communication

- LAN: Local Area Network (Mạng máy tính cục bộ)

- MAN: Metropolitan Area Network (Mạng máy tính đô thị)

- NIC: Network Interface Card (Card giao tiếp mạng)

- SQL: Structured Query Language (Ngôn ngữ truy vấn dữ liệu)

- SV: Sinh viên

- TCP: Transmission Control Protocol (Giao thức vận chuyển truyền vận)

- VPN: Virtual Private Network (Mạng riêng ảo)

- WAN: Wide Area Network (Mạng máy tính diện rộng)

- WPF: Windows Presentation Foundation

- XAML: eXtensible Application Markup Language (Ngôn ngữ đánh dấu ứng dụng

mở rộng được)

- XBAP: XAML Browser Applications (Ứng dụng trình duyệt XAML)

Trang 8

DANH MỤC CÁC HÌNH VẼ

Hình 1: Sơ đồ Mạng LAN 14

Hình 2: Mô hình Client - Server 15

Hình 3: Hoạt động của mô hình Client - Server 17

Hình 4: Giao thức Stream Socket 20

Hình 5: Database 21

Hình 6: SQL (Structured Query Language) 21

Hình 7: WPF 22

Hình 8: Màn hình trang chủ 28

Hình 9: Thanh hiển thị những người chơi đã kết nối với Server 29

Hình 10: Thanh công cụ 30

Hình 11: Khu vực hiển thị các trận đấu 31

Hình 12: Thông tin của hai người chơi trong trận đấu 32

Hình 13: Tuỳ chọn số lượng trận đấu sẽ bắt đầu 33

Hình 14: Nút Play - Bắt đầu chơi dựa trên số lượng trận đấu đã lựa chọn 33

Hình 15: Nút Replay - Sẽ hiển thị Cửa sổ Tường thuật trận đấu 34

Hình 16: Màn hình Tạo tài khoản mới 34

Hình 17: Ô nhập thông tin tài khoản của người chơi 35

Hình 18: Ô nhập thông tin mật khẩu của người chơi 35

Hình 19: Nút tạo tài khoản mới 36

Hình 20: Màn hình Tạo trận đấu mới 36

Hình 21: Thanh hiển thị danh sách các người chơi 37

Hình 22: Ô lựa chọn số lượng trận dấu 37

Hình 23: Ô chọn bật/ tắt Luật chặn hai đầu trong game Caro 38

Hình 24: Ô thông tin của hai người chơi 39

Hình 25: Nút tạo mới 39

Hình 26: Màn hình Tường thuật trận đấu 40

Hình 27: Ô thông tin của hai người chơi 41

Hình 28: Ô hiển thị trận đấu 42

Trang 9

Hình 29: Màn hình Trang chủ 43

Hình 30: Trạng thái kết nối của người chơi đến Server 43

Hình 31: Nút đăng nhập lại 44

Hình 32: Ô dùng để điền đường dẫn của Chương trình AI mà người chơi thiết kế 44

Hình 33: Màn hình Đăng nhập 45

Hình 34: Ô nhập địa chỉ IP của Server mà người chơi muốn kết nối 45

Hình 35: Ô nhập tài khoản và mật khẩu của người chơi và nút đăng nhập 46

Hình 36: Màn hình chờ sau khi ấn nút đăng nhập 46

Trang 10

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM

THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI

1 Thông tin chung:

- Tên đề tài: Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động

- Chủ nhiệm đề tài: Nguyễn Huỳnh Phúc Mã số SV: 17110350

- Lớp: 17910 Khoa: Công nghệ thông tin

- Thành viên đề tài:

STT Họ và tên MSSV Lớp Khoa

1 Phạm Thái Dương 17110273 171101 Công nghệ thông tin

2 Lê Hồng Đạo 17110276 171101 Công nghệ thông tin

- Người hướng dẫn: ThS Trần Công Tú

2 Mục tiêu đề tài: Xây dựng module hỗ trợ 2 chương trình máy tính thi đấu cờ caro tự động một cách thống nhất, công bằng Ứng dụng vào để chấm điểm bài tập về lập trình game Caro Tạo ra một sân chơi trong lĩnh vực lập trình, có thể tạo ra một cuộc thi học thuật

thi đấu Caro giữa nhiều đối tượng khác nhau

3 Tính mới và sáng tạo: Dự án này mang lại lợi ích lớn trong môi trường giảng dạy, tổ

chức các cuộc thi học thuật liên quan đến lĩnh vực công nghệ thông tin Khuyến khích sinh viên làm quen với trí tuệ nhân tạo, ứng dụng vào lập trình trò chơi caro tự động và so sánh

kết quả với nhau

4 Kết quả nghiên cứu: Xây dựng được module có khả năng kết nối 2 máy, giúp 2 chương

trình có thể thi đấu Client có khả năng tương tác với chương trình thi đấu và gửi thông tin

về cho Server Server có khả năng tổng hợp các kết nối, cài đặt trận đấu Cung cấp

Trang 11

framework để người dùng lập trình chương trình thi đấu Server có khả năng lưu lại kết

quả, phục hồi trạng thái trận đấu nếu có sự cố xảy ra như mất kết nối, mất điện,

5 Đóng góp về mặt giáo dục và đào tạo, kinh tế - xã hội, an ninh, quốc phòng và khả năng áp dụng của đề tài: Dự án này mang lại lợi ích lớn trong môi trường giảng dạy, tổ chức các cuộc thi học thuật liên quan đến lĩnh vực công nghệ thông tin: giảm chi phí tổ chức, khuyến khích sinh viên làm quen với trí tuệ nhân tạo, ứng dụng vào lập trình trò chơi caro tự động và so sánh kết quả với nhau 6 Công bố khoa học của SV từ kết quả nghiên cứu của đề tài (ghi rõ tên tạp chí nếu có) hoặc nhận xét, đánh giá của cơ sở đã áp dụng các kết quả nghiên cứu (nếu có): không có Ngày tháng năm SV chịu trách nhiệm chính thực hiện đề tài (kí, họ và tên) Nhận xét của người hướng dẫn về những đóng góp khoa học của SV thực hiện đề tài (phần này do người hướng dẫn ghi):

Ngày tháng năm

Người hướng dẫn

(kí, họ và tên)

Trang 12

MỞ ĐẦU

1 Tổng quan tình hình nghiên cứu

- Trong nước: Hiện nay, có khá nhiều phần mềm chơi caro trên mạng, hầu hết là

các phần mềm cho phép người chơi với người hay là người chơi với máy như phần mềm đánh caro qua mạng LAN 2 người chơi của nhóm HowKteam, hay game cờ caro qua mạng LAN bằng viết bằng Python của nhóm CODELEARN… Nhưng dĩ nhiên các phần mềm trên đều chỉ cho phép hai người chơi thi đấu với nhau qua mạng LAN nên nó khó có thể sử dụng để tạo ra sân chơi để người chơi sáng tạo và thi đấu Hầu hết các cuộc thi cờ caro trên cả nước đều diễn ra trực tiếp trên giấy như cuộc thi cờ caro của FPT Software

Trên giao diện mobile cũng ngày càng có nhiều ứng dụng cho phép người chơi thi đấu caro với nhau hoặc thi đấu với máy ở các mức độ khó khác nhau Nhưng chúng ta hãy nghĩ đến việc thay vì người đấu với người hay người đấu với máy thì có thể làm một mudule để cho phép hai chương trình máy tính có thể thi đấu với nhau hay không? Qua đó, có thể kiểm tra khả năng lập trình của người tham gia để tạo ra các chương trình thông minh

Qua ý tưởng đó, nhóm đang nghiên cứu về việc xây dựng module để hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động, theo nhóm thì phần mềm này hiện nay chưa có ở Việt Nam

- Ngoài nước: Không có dữ liệu về tình hình nghiên cứu ở nước ngoài

2 Lý do chọn đề tài

Trong những năm gần đây, cùng với sự phát triển của công nghệ thông tin Nền kinh tế thế giới đang bước vào giai đoạn kinh tế tri thức Để bắt kịp thời đại ở Việt Nam hiện nay công nghệ thông tin cũng đã được nghiên cứu và ứng dụng rộng rãi trong nhiều lĩnh vực, đặc biệt là trong lĩnh vực phần mềm hay lập trình ứng dụng

và đặc biệt là trí tuệ nhân tạo

Trang 13

Và trong ngành công nghệ thông tin, đặc biệt trong môi trường trường học thì một cuộc thi vừa có tính giải trí vừa giúp sinh viên có sân chơi để rèn luyện bản thân và áp dụng những gì được học là rất cần thiết Hiện nay, có khá nhiều các cuộc thi offline được tổ chức đối kháng giữa những người chơi thi đấu trực tiếp với nhau Nhưng trong thời đại trí tuệ nhân tạo phát triển thì các cuộc thi lập trình cho các chương trình máy tính thi đấu với nhau là một trong những việc hết sức quan trọng Thế nhưng trên thực tế hiện nay các module cho phép tổ chức các cuộc thi như thế này khá ít và nếu có thì việc tổ chức hết sức phức tạp Từ đó, nhóm quyết định tạo

ra một chương trình để đáp ứng nhu cầu này Và cuộc thi đơn giản và hiệu quả nhất

có thể kể đến là cuộc thi cờ caro, nó vừa dễ thực hiện vừa có thể thể hiện được khả năng lập trình của người chơi, ai là người lập trình ra được chương trình thông minh hơn và biết đâu sẽ có những chương trình có thể thắng được con người Qua những

lý do trên nhóm thực hiện đã quyết định chọn đề tài làm sao để tổ chức kì thi caro cho các chương trình máy tính thi đấu với nhau, tạo môi trường thống nhất, công bằng

- Đưa module áp dụng vào môi trường trường học để tổ chức các cuộc thi trong thực

tế

4 Phương pháp nghiên cứu

Trang 14

- Phương pháp nghiên cứu lý thuyết: Nghiên cứu lý thuyết cũng như cách sử dụng các công nghệ để có thể áp dụng để thực hiện đề tài như: NET Framwork, Socket,

5 Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu: Xây dựng module sử dụng kết nội cục bộ (LAN) để hai chương trình máy tính thi đấu cờ caro với nhau sử dụng ngôn ngữ lập trình C# Phạm vi nghiên cứu: Trường Đại học Sư phạm kỹ thuật thành phố Hồ Chí Minh

mà chủ yếu là sinh viên khoa Công nghệ thông tin

Trang 15

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

1.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

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

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

Hình 1: Sơ đồ Mạng LAN

Trang 16

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

1.2 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ụ

đơ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

Hình 2: Mô hình Client - Server

Trang 17

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ộ

Trang 18

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

Hình 3: Hoạt động của mô hình Client - Server

Trang 19

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

Trang 20

1.3 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 Giao diện lập trình ứng dụng mạng này chỉ có thể hoạt động khi đã có thông tin về thông số IP và số hiệu cổng của 2 ứng dụng cần trao đổi dữ liệu cho nhau

Hai ứng dụng cần truyền thông tin phải đáp ứng điều kiện sau thì socket mới có thể hoạt động:

- 2 ứng dụng có thể nằm cùng trên một máy hoặc 2 máy khác nhau

- Trong trường hợp 2 ứng dụng cùng nằm trên một máy, số hiệu cổng không được trùng nhau

Trang 21

Stream Socket: Dựa trên giao thức TCP( Tranmission Control Protocol), việc truyền

dữ liệu chỉ thực hiện giữa 2 quá trình đã thiết lập kết nối Do đó, hình thức này được gọi là socket hướng kết nối

client /sever thì sever lắng nghe và chấp nhận từ client Giao thức này đảm bảo

dữ liệu được truyền đến nơi nhận một cách đáng tin cậy, đúng thứ tự nhờ vào cơ chế quản lý luồng lưu thông trên mạng và cơ chế chống tắc nghẽn Đồng thời, mỗi thông điệp gửi phải có xác nhận trả về và các gói tin chuyển đi tuần tự

trình kia phải đợi tiến trình kia yêu cầu kết nối

Giao thức Stream Socket

Hình 4: Giao thức Stream Socket

Trang 22

1.4 Database (Microsoft SQL Server)

Cơ sở dữ liệu (Database): là một tập hợp

các dữ liệu có tổ chức, thường được lưu trữ

và truy cập điện tử từ hệ thống máy tính

Khi cơ sở dữ liệu phức tạp hơn, chúng

thường được phát triển bằng cách sử dụng

các kỹ thuật thiết kế và mô hình hóa chính

thức [5]

Hệ quản lý cơ sở dữ liệu (Database

Management System - DBMS) là phần

mềm tương tác với người dùng cuối, ứng

dụng và chính cơ sở dữ liệu để thu thập và

phân tích dữ liệu Phần mềm DBMS bao

gồm các tiện ích cốt lõi được cung cấp để

quản trị cơ sở dữ liệu Tổng cộng của cơ sở

dữ liệu, DBMS và các ứng dụng liên quan

có thể được gọi là "hệ thống cơ sở dữ liệu"

Thông thường thuật ngữ "cơ sở dữ liệu" cũng được sử dụng để nói đến bất kỳ DBMS, hệ thống cơ sở dữ liệu hoặc ứng dụng nào được liên kết với cơ sở dữ liệu

SQL (Structured Query

Language): Ngôn ngữ truy vấn

mang tính cấu trúc, là một loại

ngôn ngữ máy tính phổ biến để

tạo, sửa, và lấy dữ liệu từ một

hệ quản trị cơ sở dữ liệu quan

hệ Ngôn ngữ này phát triển

vượt xa so với mục đích ban

Trang 23

Microsoft SQL Server: là một hệ quản trị cơ sở dữ liệu quan hệ được phát triển bởi

Microsoft Là một máy chủ cơ sở dữ liệu, nó là một sản phẩm phần mềm có chức năng chính là lưu trữ và truy xuất dữ liệu theo yêu cầu của các ứng dụng phần mềm khác

1.5 WPF (Windows Presentation Foundation)

Windows Presentation Foundation: do Microsoft phát triển, là công nghệ kế tiếp

Windows Form dùng để xây dựng các ứng dụng dành cho máy trạm chạy hệ điều hành Windows WPF được giới thiệu từ năm 2006 trong.NET Framework 3.0 (dưới tên gọi Avalon), công nghệ này nhận được sự quan tâm của cộng đồng lập trình viên bởi nhiều điểm đổi mới trong lập trình ứng dụng và khả năng xây dựng giao diện thân thiện, sinh động Tại Việt Nam, WPF thực sự chưa phát triển so với nhánh khác là Silverlight (WPF/E) [6]

Hình 7: WPF

Trang 24

WPF sử dụng 2 thư viện lõi là PresentationCore và PresentationFramework để xử lý các điều hướng, ràng buộc dữ liệu, sự kiện và quản lý giao diện WPF dựa trên nền tảng đồ họa là DirectX, xử lý vector, hỗ trợ gam màu rộng, cho phép tùy biến giá trị opacity hay tạo gradient một cách dễ dàng, cho phép tạo ảnh không gian 2 chiều hoặc 3 chiều Thư viện thực thi của WPF tự động tính toán và tận dụng tài nguyên của hệ thống một cách tối ưu để giảm tải cho CPU

Ngoài ra, WPF hỗ trợ tốt hơn Winform trong việc xử lý hình ảnh, âm thanh, video, quản lý phông chữ, quản lý hiển thị và chỉnh sửa văn bản Các control trong WPF có thể được lồng ghép linh động để tạo ra giao diện do được viết bằng XAML Một ứng dụng WPF có thể được xây dựng để chạy độc lập dưới dạng mở rộng EXE hoặc đóng gói với phần mở rộng là XBAP để có thể tích hợp lên website

Trước khi WPF ra đời, việc tạo giao diện người dùng theo những yêu cầu mô tả ở ví

dụ trên đòi hỏi sử dụng rất nhiều công nghệ khác nhau Để tạo form, các control và các tính năng kinh điển khác của một giao diện đồ họa Windows, thông thường lập trình viên sẽ chọn Windows Forms, một phần của NET Framework Nếu cần hiển thị văn bản, Windows Forms có một số tính năng hỗ trợ văn bản trực tiếp hoặc có thể sử dụng Adobe’s PDF để hiển thị văn bản có khuôn dạng cố định

WPF đưa ra ngôn ngữ đặc tả eXtensible Application Markup Language (XAML) XAML định ra một tập các phần tử XML như Button, TextBox, Label…, nhằm định nghĩa các đối tượng đồ họa tương ứng như nút bấm, hộp thoại, nhãn…, và nhờ đó cho phép mô

tả chính xác diện mạo của giao diện người dùng Các phần tử XAML cũng chứa các thuộc tính, cho phép thiết lập nhiều tính chất khác nhau của đối tượng đồ họa tương ứng

Người thiết kế có thể mô tả giao diện người dùng và tương tác với nó thông qua một công cụ, chẳng hạn như Microsoft Expression Interactive Designer Chỉ tập trung vào việc định ra diện mạo và cảm quan cho giao diện đồ họa WPF, công cụ này sinh các đoạn mô tả giao diện thể hiện qua ngôn ngữ XAML Lập trình viên sau đó sẽ nhập đoạn mô tả XAML

đó vào môi trường lập trình, chẳng hạn như Microsoft Visual Studio

Thay vì lập trình viên phải tái tạo lại giao diện từ đầu dựa trên một ảnh tĩnh mà người thiết kế cung cấp, bản thân các đoạn XAML này sẽ được Microsoft Visual Studio biên dịch

để tái tạo thành giao diện đồ họa đúng theo mô tả Lập trình viên chỉ tập trung vào việc viết

Trang 25

mã trình cho giao diện được sinh ra, chẳng hạn như xử lý các sự kiện, theo những chức năng đề ra của ứng dụng

Việc cho phép người thiết kế và lập trình viên làm việc chung như vậy sẽ hạn chế những lỗi phát sinh khi hiện thực hóa giao diện từ thiết kế Thêm vào đó, nó còn cho phép hai nhóm công tác này làm việc song song, khiến mỗi bước lặp trong quy trình phát triển phần mềm ngắn đi và việc phản hồi được tốt hơn Vì cả hai môi trường đều có khả năng hiểu và sử dụng XAML, ứng dụng WPF có thể chuyển qua lại giữa hai môi trường phát triển để sửa đổi hay bổ sung giao diện Với tất cả những lợi điểm này, vai trò của người thiết kế trong việc xây dựng giao diện được đặt lên hàng đầu

1.6 .NET Framework

.NET Framework là một nền tảng lập trình và cũng là một nền tảng thực thi ứng dụng chủ yếu trên hệ điều hành Microsoft Windows được phát triển bởi Microsoft Các chương trình được viết trên nền.NET Framework sẽ được triển khai trong môi trường phần mềm được biết đến với tên Common Language Runtime [7]

Trang 26

 Tạo và cấu hình trận đấu giữa hai chương trình

 Bắt đầu và duy trì trận đấu trung thực, khách quan

 Lưu và cho phép xem lại kết quả trận đấu

- Xây dựng chương trình Client cho phép kết nối đến Server giao tiếp với chương trình của thí sinh

 Đăng nhập để xác định danh tính của thí sinh

 Chọn và khởi chạy chương trình của thí sinh khi thi đấu

 Giao tiếp với chương trình thi đấu và Server

 Hiển thị các thông báo trạng thái

- Xây dựng tài liệu hướng dẫn thí sinh cài đặt chương trình có thể tham gia thi đấu

 Giới thiệu về tổng quan mô hình thi đấu và các quy tắc thi đấu

 Xây dựng các quy ước giao tiếp

 Xây dựng khung chương trình mẫu

Trang 27

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

2.1 Xây dựng giao diện của chương trình Server (Hình 8)

- Xây dựng giao diện màn hình chủ, màn hình điều hướng bao gồm:

 Thông tin cấu hình của chương trính Server (địa chỉ IP)

 Thanh danh sách người chơi (Danh sách các người chơi sử dụng chương trình Client đã kết nối với chương trình Server) bao gồm:

 Thông tin của người chơi

 Trạng thái kết nối của người chơi

 Nút refresh lại danh sách người chơi

 Bảng danh sách các trận đấu đang diễn ra

 Mỗi trận đấu bao gồm: thông tin của hai đối thủ, tỉ số của trận đấu, các tùy chọn khởi chạy trận đấu,

 Nút bắt đầu trận đấu

 Nút xem lại lịch sử trận dấu

 Nút tạo trận đấu mới

 Nút tạo ra tài khoản mới cho người chơi dự thi

 Cửa sổ tạo trận đấu mới, bao gồm:

 Danh sách người chơi

 Các tùy chọn để khởi tạo trận đấu

 Nút thay đổi lượt chơi

 Nút khởi tạo trận đấu

 Cửa sổ xem lại trận đấu, bao gồm:

 Thông tin của hai đối thủ trong trận đấu

 Tỉ số của trận đấu

 Các tab lượt đấu của từng trận đấu

 Bàn cờ ứng với từng lượt đấu

 Nút điều chỉnh chế độ xem của trận đấu: Nút bắt đầu, tạm dừng, tua nhanh, đi tới bước kế, quay lại bước vừa đi

 Cửa sổ tạo mới tài khoản cho người chơi, bao gồm:

Trang 28

 Ô nhập tài khoản của người chơi

 Ô nhập mật khẩu của người chơi

2.2 Xây dựng giao diện của chương trình Client (Hình 29)

- Màn hình đăng nhập của người chơi, bao gồm:

- Ô nhập địa chỉ IP của chương trình Server để kết nối

- Ô nhập tài khoản của người chơi

- Ô nhập mật khẩu của người chơi

- Nút đăng nhập tài khoản

2.3 Màn hình chính của chương trình Client

- Thanh hiển thị trạng thái kết nối của chương trình Client

- Ô nhập đường dẫn của chương trình thi đấu của người chơi dùng để khởi chạy

- Bảng hiển thị xác định hoạt động của người chơi: nước đi, trạng thái kết nối, kết quả của trận đấu

Trang 29

CHƯƠNG 3: CÁC KẾT QUẢ NGHIÊN CỨU 3.1 Chương trình Server

3.1.1 Màn hình Trang chủ

Hình 8: Màn hình trang chủ

Đây là màn hình Trang chủ khi người Quản lí bắt đầu chương trình Server Sẽ bao gồm các thông tin như:

Ngày đăng: 07/01/2022, 15:28

HÌNH ẢNH LIÊN QUAN

1.2. Mô hình Client – Server - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
1.2. Mô hình Client – Server (Trang 16)
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ó - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
lient 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ó (Trang 18)
- Ưu điểm: Có thể dùng để liên lạc theo mô hình client và sever. Nếu là mô hình client /sever thì sever lắng nghe và chấp nhận từ client - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
u điểm: Có thể dùng để liên lạc theo mô hình client và sever. Nếu là mô hình client /sever thì sever lắng nghe và chấp nhận từ client (Trang 21)
3.1.1. Màn hình Trang chủ - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
3.1.1. Màn hình Trang chủ (Trang 29)
3.1.2. Màn hình Tạo tài khoản mới - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
3.1.2. Màn hình Tạo tài khoản mới (Trang 35)
Màn hình Tạo tài khoản cho phép người Quản lí tạo thêm một tài khoản mới cho người chơi - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
n hình Tạo tài khoản cho phép người Quản lí tạo thêm một tài khoản mới cho người chơi (Trang 35)
Màn hình Tạo trận đấu cho phép người Quản lí tạo mới 1 trận dấu. Bao gồm: - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
n hình Tạo trận đấu cho phép người Quản lí tạo mới 1 trận dấu. Bao gồm: (Trang 37)
3.1.3. Màn hình Tường thuật lại trận đấu - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
3.1.3. Màn hình Tường thuật lại trận đấu (Trang 41)
3.2.1. Màn hình Trang chủ - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
3.2.1. Màn hình Trang chủ (Trang 44)
Màn hình Trang chủ bao gồm: - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
n hình Trang chủ bao gồm: (Trang 44)
3.2.2. Màn hình Đăng nhập - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
3.2.2. Màn hình Đăng nhập (Trang 46)
Màn hình để người chơi đăng nhập bằng tài khoản do người Quản lí cấp để tiến hành khởi động chương trình - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
n hình để người chơi đăng nhập bằng tài khoản do người Quản lí cấp để tiến hành khởi động chương trình (Trang 46)
Sau khi ấn nút đăng nhập sẽ hiện lên màn hình chờ. - Xây dựng module hỗ trợ hai chương trình máy tính thi đấu cờ caro tự động
au khi ấn nút đăng nhập sẽ hiện lên màn hình chờ (Trang 47)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w