Slide Lap Trinh Mang

16
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MÔN HỌC ĐỒ ÁN MÔN HỌC LẬP TRÌNH MẠNG CĂN BẢN LẬP TRÌNH MẠNG CĂN BẢN Đề tài: GAME CARO QUA MẠNG LAN GAME CARO QUA MẠNG LAN Giảng viên hướng dẫn: Sinh viên thực hiện: ThS. Trần Bá Nhiệm Dương Quang Huynh 09520113 Tp Hồ Chí Minh, tháng 8 năm 2012

Transcript of Slide Lap Trinh Mang

Page 1: Slide Lap Trinh Mang

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN MÔN HỌCĐỒ ÁN MÔN HỌCLẬP TRÌNH MẠNG CĂN BẢNLẬP TRÌNH MẠNG CĂN BẢN

Đề tài:

GAME CARO QUA MẠNG LANGAME CARO QUA MẠNG LAN

Giảng viên hướng dẫn: Sinh viên thực hiện:ThS. Trần Bá Nhiệm Dương Quang Huynh

09520113

Tp Hồ Chí Minh, tháng 8 năm 2012

Page 2: Slide Lap Trinh Mang

CHƯƠNG 1: NỀN TẢNG KIẾN THỨC

I. 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 này 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 là TCP, UDP…

II. 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:

IPAddress(Byte[]): tạo địa chỉ IP từ mảng byte (4 byte).

IPAddress(Int64): tạo địa chỉ IP từ một số kiểu long.

Page 3: Slide Lap Trinh Mang

CHƯƠNG 1: NỀN TẢNG KIẾN THỨC (TT)

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

Page 4: Slide Lap Trinh Mang

III. 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:

CHƯƠNG 1: NỀN TẢNG KIẾN THỨC (TT)

Page 5: Slide Lap Trinh Mang

III. Giao thức UDP (tt):

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

CHƯƠNG 1: NỀN TẢNG KIẾN THỨC (TT)

Page 6: Slide Lap Trinh Mang

IV. 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);

CHƯƠNG 1: NỀN TẢNG KIẾN THỨC (TT)

Page 7: Slide Lap Trinh Mang

IV. RegularExpressions:- 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 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.

CHƯƠNG 1: NỀN TẢNG KIẾN THỨC (TT)

Page 8: Slide Lap Trinh Mang

V. Đồ 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).

CHƯƠNG 1: NỀN TẢNG KIẾN THỨC (TT)

Page 9: Slide Lap Trinh Mang

CHƯƠNG 2: GIỚI THIỆU CHƯƠNG TRÌNH

I. Tổng quan:

- Ngôn ngữ lập trình: C# trên nền tảng .NET Framework 4.0.

- Công cụ lập trình: Microsoft Visual Studio 2010.

- Công cụ thiết kế: Adobe Photoshop CS5, Microsoft Paint.

II. . Giới thiệu chương trình:

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

Page 10: Slide Lap Trinh Mang

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

CHƯƠNG 2: GIỚI THIỆU CHƯƠNG TRÌNH (TT)

Thông tin của máy cục bộ, gồm tên máy và địa chỉ IP

Chọn hình thức kết nối là máy server hay máy

client

Nhập tên của bạn và IP của máy đối thủ

Page 11: Slide Lap Trinh Mang

- Giao diện khi vào chương trình:Bảng tỉ số và quân cờ 2 bên

Thông tin người chơi

hiện tại

Thông tin đối

thủ

Các nút chức năng: Nhập lại tin nhắn, Xóa ô chat, Khóa/mở

chức năng chat

Khung nhập tin

nhắnNút gửi tin

nhắn

Nút kết nối với server

Nút bắt đầu trò chơi

Nút chọn quân cờ

Nút thoát chương

trình

CHƯƠNG 2: GIỚI THIỆU CHƯƠNG TRÌNH (TT)

Page 12: Slide Lap Trinh Mang

- Giao diện khi đang chơi:

CHƯƠNG 2: GIỚI THIỆU CHƯƠNG TRÌNH (TT)

Khi đến lượt, nhấn chuột vào bất kì ô trống

trên bàn cờ để đặt quân cờ

của mình

Page 13: Slide Lap Trinh Mang

- Hộp thoại thay đổi quân cờ:

CHƯƠNG 2: GIỚI THIỆU CHƯƠNG TRÌNH (TT)

Page 14: Slide Lap Trinh Mang

- Hộp thoại giúp đỡ:

CHƯƠNG 2: GIỚI THIỆU CHƯƠNG TRÌNH (TT)

Page 15: Slide Lap Trinh Mang

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 2 người chơi.

2. Nhược điểm:

- Chương trình chưa có tùy chọn cho việc thay đổi luật chơi.

- Khi chương trình đã chạy, không thể kết nối đến người chơi có địa chỉ IP khác so với lúc nhập ban đầu.

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

Page 16: Slide Lap Trinh Mang

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.

- Giải quyết vấn đề không thể kết nối đến người chơi khác trong khi đang chạy chương trình.

- Cải tiến giao diện đẹp hơn, thân thiện hơn.

IV. Tài liệu tham khảo:

- Slide bài giảng Lập trình mạng căn bản C# (ThS. Trần Bá Nhiệm).

- Các giải pháp lập trình C# (Nguyễn Ngọc Bình Phương - Thái Thanh Phong).

- Các website:

http://www.codeproject.com/

http://msdn.microsoft.com/

http://forums.congdongcviet.com/

CHƯƠNG 3: TỔNG KẾT (TT)