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 nha
Trang 1TRƯỜ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
Trang 2LỜ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!”
Trang 3DANH SÁCH HÌNH ẢNH
Trang 4MỤC LỤC
Contents
I TỔNG QUAN VỀ TÌNH HÌNH NGHIÊN CỨU 1
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 5
I TỔNG QUAN VỀ MICROSOFT VISUAL STUDIO 5
1.1.2 Namespace System/Net và System.Net.Sockets: 6
CHƯƠNG 3: GIỚI THIỆU CHƯƠNG TRÌNH 10
I Giới thiệu chương trình: 10
2 Giao diện và chức năng của chương trình: 11
II Ưu điểm, nhược điểm của chương trình: 13
Trang 5TÓ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
Trang 7CHƯƠ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ụ ngoà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
Trang 81.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 ô vuông đề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 ngoà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
Trang 9Theo đó, để 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
Trang 10- 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
Trang 11CHƯƠ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
Trang 12Mộ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
Trang 131.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 Ngoà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
Trang 14+ 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
Trang 15Regex
+ 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ữ nguyên 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
Trang 16I 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
Trang 172 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
Trang 18Hình 4 Giao diện khi đang chơi
12
Trang 19CHƯƠ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