Tải bản đầy đủ (.pdf) (19 trang)

Đề tài LẬP TRÌNH GAME CARO BẰNG c

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (944.44 KB, 19 trang )


TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT VĨNH LONG KHOA
CÔNG NGHỆ THƠNG TIN

Đồ án CNTT 3
Đề tài
LẬP TRÌNH GAME CARO BẰNG C#

Giảng viên hướng dẫn: Lê Thị Hoàng Yến
Sinh Viên Thực Hiện
Mã Sinh Viên: 18004168
Tên Sinh Viên: Hứa Văn Hữu Chí

Vĩnh Long, 12/2021



LỜI CẢM ƠN
"Đầu tiên, em xin gửi lời cảm ơn chân thành sâu sắc đến giảng viên Lê Thị
Hoàng Yến đã dạy dỗ tận tâm, truyền đạt những kiến thức quý báu cho em trong
suốt thời gian học tập vừa qua. Trong thời gian tham gia lớp học lập trình dotnet
của cơ, em đã có thêm cho mình nhiều kiến thức bổ ích về thiết kế phần mềm. Đây
chắc chắn sẽ là những kiến thức quý báu và sẽ là hành trang để các em có thể
vững chắc mai sau này.
Mơn lập trình dotnet là mơn học thú vị, vơ cùng bổ ích và có tính thực tế cao.
Đảm bảo cung cấp đủ kiến thức, gắn liền với nhu cầu thực tiễn của sinh viên khi
làm phần mềm. Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả năng tiếp
thu thực tế còn nhiều bỡ ngỡ. Mặc dù em đã cố gắng hết sức nhưng chắc chắn bài
báo cáo khó có thể tránh khỏi những thiếu sót và nhiều chỗ cịn chưa chính xác,
kính mong cơ xem xét và góp ý để bài báo có của em được hoàn thiện hơn.
Em xin chân thành cảm ơn!”





DANH SÁCH HÌNH ẢNH
Hình 1: Trình tự kết nối giao thức UDP
Hình 2: Sơ đồ kết nối giữ 2 máy
Hình 3: Giao diện chương trình
Hình 4. Giao diện khi đang chơi

7
10
11
12




MỤC LỤC
Contents
CHƯƠNG 1: TỔNG QUAN
I. TỔNG QUAN VỀ TÌNH HÌNH NGHIÊN CỨU

1
1

1.1.1 Game trí tuệ là gì?

1

1.1.2 Game Caro là gì?


2

II. LÝ DO CHỌN ĐỀ TÀI

2

III. MỤC TIÊU NGHIÊN CỨU

3

IV. ĐỐI TƯỢNG VÀ KHÁCH THỂ NGHIÊN CỨU

3

V. PHƯƠNG TIỆN NGHIÊN CỨU

4

CHƯƠNG 2: NHỮNG CƠ SỞ LÝ LUẬN CỦA ĐỀ TÀI NGHIÊN CỨU
I. TỔNG QUAN VỀ MICROSOFT VISUAL STUDIO

5
5

1.1.1 Lập trình mạng với SocKet:

5

1.1.2 Namespace System/Net và System.Net.Sockets:


6

1.1.3 Giao thức UDP

7

1.1.4 RegularExpressions:

8

1.1.5 Đồ họa trong C#

9

CHƯƠNG 3: GIỚI THIỆU CHƯƠNG TRÌNH
I. Giới thiệu chương trình:

10
10

1. Sơ đồ kết nối

10

2. Giao diện và chức năng của chương trình:

11

CHƯƠNG 4: TỔNG KẾT


13

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

13

II. Ưu điểm, nhược điểm của chương trình:

13

1. Ưu điểm:

13

2. Nhược điểm:

13

III. Hướng phát triển:

13




TĨM TẮT
Chơi cờ Caro một game trí tuệ trực tuyến đã rất quen thuộc với mỗi chúng
ta. Với lối chơi đơn giản nhưng yếu tố trí tuệ lại rất cao nên Chơi Cờ Caro được
rất nhiều người yêu thích đặc biệt là các bạn học sinh, sinh viên và dân văn phịng.

Game Chơi cờ Caro khơng chỉ mang tính chất giải trí đơn thuần mà là một cuộc
đấu trí vơ cùng gay cấn. Cùng tham gia game Chơi cờ Caro và đánh bại các đối
thủ để thể hiện đẳng cấp chơi cờ của bạn.






CHƯƠNG 1: TỔNG QUAN
I. TỔNG QUAN VỀ TÌNH HÌNH NGHIÊN CỨU
1.1.1 Game trí tuệ là gì?
Game trí tuệ (đơi khi cịn được gọi là  trị chơi trí não ) là trị chơi
điện tử có mục tiêu chính là giúp mọi người cải thiện các kỹ năng nhận thức cụ
thể, chẳng hạn như khả năng phản ứng nhanh hoặc khả năng ghi nhớ thơng tin.
Hiệu quả của các trị chơi rèn luyện trí não đang được tranh luận
trong cộng đồng khoa học, với một số nghiên cứu cho thấy chúng có thể dẫn đến
cải thiện hiệu suất nhận thức và các nghiên cứu khác cho thấy những trị chơi này
khơng dẫn đến cải thiện đáng kể, đặc biệt là so với trò chơi điện tử. Hơn
nữa, nghiên cứu về chủ đề này cho thấy rằng, trong nhiều trường hợp, các trò chơi
rèn luyện trí nhớ có thể giúp bạn cải thiện chủ yếu ở các nhiệm vụ nhận thức có
liên quan mật thiết đến các nhiệm vụ trong trò chơi, nhưng những tác động này
hiếm khi mở rộng sang các nhiệm vụ khác.
Nhìn chung, mặc dù còn tranh cãi về hiệu quả của game trí tuệ, nhưng
nghiên cứu cho thấy rằng những trị chơi này có thể giúp mọi người cải thiện một
số kỹ năng nhận thức của họ, ở một mức độ nào đó và trong một số tình huống.
Do đó, nếu bạn thích chơi các trị chơi rèn luyện trí não và cảm thấy
như chúng đang giúp bạn cải thiện kỹ năng nhận thức, đặc biệt là khi liên quan
đến các nhiệm vụ ngồi những nhiệm vụ trong trị chơi, thì bạn cũng có thể chơi
chúng. Bạn chỉ cần đảm bảo giữ cho kỳ vọng của mình thực tế khi nói đến lợi ích

nhận thức mà các trò chơi này mang lại, đặc biệt là vì các cơng ty quảng cáo các
trị chơi này đơi khi có thể tăng cường sản phẩm của họ, nhằm cố gắng làm cho
chúng có vẻ hiệu quả hơn chúng.

1



1.1.2 Game Caro là gì?
- Là một loại game đối kháng gồm có hai người chơi trên một màn
hình (hoặc một tờ giấy) có kẻ các ơ vng đều nhau và người chơi đánh các ký tự
O---X (tùy quy định từng người) vào đó.
- Luật chơi game: Trị chơi gồm hai người, lần lượt mỗi bên đánh dấu
O-X. Nếu mỗi bên đạt được năm dấu chung hàng (có thể là hàng ngang, hàng dọc,
hàng chéo) thì thắng.Ngược lại thì thua, trị chơi có thể hào khi hết màn hình.Lưu
ý, nếu đạt được năm dấu cùng hàng mà bị chặn trước hai đầu là chưa thắng. Đặc
biêt, chỉ có năm dấu cùng hàng mới thắng.

II. LÝ DO CHỌN ĐỀ TÀI
Như chúng ta đã thấy cho đến nay, chơi trị chơi trí tuệ có thể giúp bạn cải
thiện các kỹ năng nhận thức khác nhau. Tuy nhiên, nếu bạn muốn tích cực cố gắng
cải thiện kỹ năng nhận thức của mình bằng cách chơi trị chơi điện tử, thì có một
số điều quan trọng mà bạn nên ghi nhớ:
Các trị chơi trí tuệ khác nhau sẽ giúp bạn rèn luyện các kỹ năng nhận thức
khác nhau, có nghĩa là bạn khơng nên mong đợi một trò chơi duy nhất giúp bạn
cải thiện tất cả các kỹ năng có thể.
Sự cải thiện đối với các kỹ năng nhận thức mà bạn nhận được từ việc chơi
trị chơi trí tuệ khơng phải lúc nào cũng chuyển một cách có ý nghĩa sang các
nhiệm vụ bên ngồi, nghĩa là nó có thể khơng có bất kỳ ý nghĩa thực tế nào khi
nói đến các nhiệm vụ mà bạn cần thực hiện trong thế giới thực.

Có một giới hạn về số lượng trị chơi trí tuệ có thể giúp bạn cải thiện kỹ
năng nhận thức của mình, có nghĩa là, sau một thời điểm nhất định, thời gian chơi
bổ sung có thể sẽ khơng mang lại bất kỳ lợi ích ý nghĩa nào.

2



Theo đó, để tối đa hóa lợi ích nhận thức mà bạn thu được từ việc chơi, bạn
nên luân phiên giữa các loại trò chơi khác nhau, giúp bạn cải thiện các khả năng
khác nhau, đặc biệt là khi bạn cảm thấy rằng bạn đang đạt đến điểm giảm dần lợi
nhuận khi tham gia một trò chơi nhất định. Hơn nữa, bạn nên cố gắng tập trung
vào các trò chơi giúp bạn cải thiện kỹ năng của mình theo cách chuyển sang các
nhiệm vụ trong thế giới thực mà bạn cần thực hiện.
Tuy nhiên, điều quan trọng nhất cần ghi nhớ là chơi trị chơi trí tuệ với mục
tiêu chính là tích cực cải thiện hiệu suất nhận thức của bạn có thể khiến bạn mất đi
những lợi ích quan trọng khác của việc chơi trị chơi trí tuệ. Ví dụ, chơi game trí
tuệ theo cách này có thể có nghĩa là việc chơi khơng cịn giúp bạn giải tỏa căng
thẳng và cải thiện tâm trạng. Điều này là quan trọng cần tính đến, vì nó có nghĩa
là, trong nhiều trường hợp, bạn có thể được lợi nhiều hơn từ việc chơi trị chơi
điện tử để giải trí và cho phép bản thân tiến bộ một cách tự nhiên.

III. MỤC TIÊU NGHIÊN CỨU
Ứng dụng game cơ Caro được xây dựng nhằm mục đích làm quen với ngơn
ngữ, giải trí nhẹ nhàng cho những ai đang căng thẳng.

IV. ĐỐI TƯỢNG VÀ KHÁCH THỂ NGHIÊN CỨU
- Đối tượng nghiên cứu: Game Caro
- Khách thể nghiên cứu:
+ Những ngưởi có nhu cầu giải trí

+ Luật chơi.

3



 V. PHƯƠNG TIỆN NGHIÊN CỨU 
- Nghiên cứu cơ sở lý thuyết về phân tích và thiết kế hệ thống.
- Ngơn ngữ lập trình C Sharp (C#).
- Cơng cụ lập trình Visual Studio 2019.

4



CHƯƠNG 2: NHỮNG CƠ SỞ LÝ LUẬN CỦA ĐỀ TÀI
NGHIÊN CỨU
I. TỔNG QUAN VỀ MICROSOFT VISUAL STUDIO
Microsoft Visual Studio là một mơi trường phát triển tích hợp từ Microsoft.
Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows,
cũng như các trang web, các ứng dụng web và các dịch vụ web.
Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như
Windows API, Windows Forms, Windows Presentation Foundation, Windows
Store và Microsoft Silverlight. Nó có thể sản xuất cả hai ngôn ngữ máy và mã số
quản lý.
Visual Studio bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng như
cải tiến mã nguồn. Trình gỡ lỗi tích hợp hoạt động cả về trình gỡ lỗi mức độ mã
nguồn và gỡ lỗi mức độ máy. Công cụ tích hợp khác bao gồm một mẫu thiết kế
các hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế
giản đồ cơ sở dữ liệu. Nó chấp nhận các plug-in nâng cao các chức năng ở hầu hết

các cấp bao gồm thêm hỗ trợ cho các hệ thống quản lý phiên bản (như
Subversion) và bổ sung thêm bộ công cụ mới như biên tập và thiết kế trực quan
cho các miền ngôn ngữ cụ thể hoặc bộ cơng cụ dành cho các khía cạnh khác trong
quy trình phát triển phần mềm.
1.1.1 Lập trình mạng với SocKet:
- Socket là một API cung cấp các phương thức để giao tiếp thơng qua
mạng.
- Lập trình mức socket là nền tảng của lập trình mạng.
- Thơng qua giao diện nay chúng ta có thể lập trình điều khiển việc
truyền thông giữa hai máy sử dụng các giao thức mức thấp TCP, UDP////

5



1.1.2 Namespace System/Net và System.Net.Sockets:
- Lớp IPAddress: để chứa địa chỉ IP của máy trong
mạng.
Một số phương thức cần chú ý:
+ Phương thức khởi tạo:
IPAddresss(Byte[]): tạo địa chỉ IP từ mảng byte (4 byte).
IPAddress(Int64): tạo ra địa chỉ IP từ một số kiểu long.
+ Parse: chuyển IP dạng chuỗi về dạng IP chuẩn.
+ TryParse: kiểm tra IP ở dạng chuỗi có hợ lệ hay khơng.
- Lớp IPEndPoint: chứa địa chỉ IP và số hiệu cổng để giao tiếp qua
mạng. Một số phương thức cần chú ý:
+ IPEndPoint(IPAddress, Int32): tạo một đối tượng IPEndPoint mới,
tham số truyền vào là một địa chỉ IPAddress và số hiệu cổng.
+ ToString: trả về địa chỉ IP và số hiệu cổng theo dạng
IP:port. Ví dụ: 192.168.1.10:3000

- Lớp DNS: phân giải tên miền đơn giản, lấy thông tin về máy cục
bộ như tên, địa chỉ… Một số phương thức cần chú ý:
+

GetHostEntry(IP/string Tenmay): phân giải tên hoặc địa chỉ IP và

trả về đối tượng IPHostEntry.
+ GetHostByAddress(string IP): trả về thơng tin của trạm có địa
chỉ IP được truyền vào.

6



1.1.3 Giao thức UDP
- UDP (User Datagram Protocol) là một giao thức cốt lõi của giao
thức TCP/IP, thuộc loại phi kết nối (Connectionless).
- Giao thức UDP không tin cậy bằng giao thức TCP, tuy nhiên
UDP

có tốc độ nhanh, dễ cài đặt và hiệu quả hơn đối với các gói tin kích

thước nhỏ và yêu cầu khắt khe về thời gian. Ngồi ra với giao thức UDP
ta cịn có thể gửi các gói tin quảng bá (broadcast).
- Trình tự kết nối:

Hình 1: Trình tự kết nối giao thức UDP
- Trong .NET, lớp UDPClient đóng gói các chức năng của giao thức
UDP.
- Các phương thức cần lưu ý trong lớp UDPClient:

+ UdpClient(): tạo đối tượng mới của lớp UDPClient.
+ UdpClient(AddressFamily): tạo một đối tượng mới

7



của lớp UDPClient, thuộc một dòng địa chỉ được chỉ định.
+ UdpClient(RemoteHost: String, Int32): tạo một UdpClient và
thiết lập với một trạm từ xa mặc định.
+ Connect: thiết lập một default remote host.
+ Close: đóng kết nối.
+ Receive(EndPoint của máy ở xa) As Byte(): nhận dữ liệu
đồng bộ do máy ở xa gửi.
+ Send: gửi dữ liệu đồng bộ cho máy ở xa.
1.1.4 RegularExpressions:
Regex là một biểu thức ở dạng chuỗi mô tả một quy tắc dùng để
so

khớp mẫu văn bản.
Bất kỳ chuỗi đầu vào nào thỏa quy tắc này sẽ được coi là một

chuỗi hợp lệ. Việc sử dụng Regex sẽ giúp ta loại bỏ được các dữ liệu
không hợp lệ trong quá trình nhập liệu.
Lớp Regex: lớp Regex tượng trưng cho 1 regular expression bất
di

bất dịch (read-only). Nó cũng chứa một phương thức tĩnh (static)

cho


phép chúng ta sử dụng những lớp rex khác mà khỏi khởi tạo 1 đối

tượng khác.
Ví dụ:
string pattern = @"\s2000";
Regex myRegex = new Regex(pattern);
- Các thuộc tính của lớp Regex:
+ Options: trả về những mục chọn được trao qua cho constructor
8



Regex.
+ RightToLeft: nhận 1 trị cho biết liệu xem regular expression dị
tìm từ phải qua trái hay khơng.
- Các phương thức của lớp Regex:
+ IsMatch: trả về trị bool cho biết liệu xem RE có tìm thấy
một so khớp hay khơng trên pattern.
+ Match: dị tìm trên pattern xem có xuất hiện một RE hay không
rồi trả về kết quả chính xác như là một đối tượng Match duy nhất.
+ Matches: dị tìm trên pattern xem tất cả các xuất hiện của một RE
có hay khơng rồi trả về tất cả những so khớp thành công xem như
Match được gọi nhiều lần.
1.1.5 Đồ họa trong C#
Sử dụng các lớp được cung cấp bởi namespace
System.Drawing.
Lớp Pen: khởi tạo một đối tượng dùng để vẽ đường thẳng
hoặc đường cong.
+ Pen(Color): khởi tạo một đối tượng Pen có màu truyền

vào.
+ Pen(Color, Single): khởi tạo một đối tượng Pen có màu
và độ rộng truyền vào.
Lớp Graphic: các phương thức sử dụng
+ DrawImage(Image,Point):vẽ ra một hình ảnh giữ ngun
kích thước tại một vị trí truyền vào.
+ DrawLine(Pen,Int X1, Int Y1, Int X2, Int Y2): vẽ một
đường nối hai điểm có tọa độ (X1, Y1) và (X2, Y2).

9



CHƯƠNG 3: GIỚI THIỆU CHƯƠNG TRÌNH
I. Giới thiệu chương trình:
1. Sơ đồ kết nối

Hình 2: Sơ đồ kết nối giữ 2 máy

10



2. Giao diện và chức năng của chương trình:
1. Giao diện khi vào chương trình

Hình 3: Giao diện chương trình

11




2. Giao diện khi đang chơi

Hình 4. Giao diện khi đang chơi

12



CHƯƠNG 4: TỔNG KẾT
I. Kết quả đạt được
- Tìm hiểu và hiểu rõ hơn về các lớp, phương thức trong lập
trình mạng bằng C#.
- Xây dựng được chương trình chơi cờ caro qua mạng LAN
đơn giản theo mơ hình Client-Server.
II. Ưu điểm, nhược điểm của chương trình:
1. Ưu điểm:
- Chương trình có giao diện thân thiện.
- Có chức năng chat giữa hai người chơi.
- Có chức năng chơi với máy.
2. Nhược điểm:
- Chương trình chưa có tùy chọn thay đổi luật chơi.
- Khi chương trình đã chạy, khơng thể kết nối đến người có địa
chị IP khác so với lúc nhập ban đầu.
III. Hướng phát triển:
- Xây dựng chương trình với nhiều tùy chọn hơn nữa trong việc
chơi game.
- Cải thiện giao diện đẹp hơn, thân thiện hơn.


13



×