báo cáo đề tài cờ caro

26 1.1K 5
báo cáo đề tài cờ caro

Đ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

báo cáo đề tài cờ caro

ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU LỜI MỞ ĐẦU Hiện nay, mạng Lan phát triển rất mạnh cả trong trường học, các cơ quan tổ chức và ở cả các hộ gia đình. Chính điều đó kéo theo nhu cầu giải trí trong mạng Lan cũng phát triển theo. Chính vì vậy, một chương trình Game phục vụ cho nhu cầu trên là rất cần thiết. Cờ caro là một trò chơi truyền thống vẫn được nhiều người ưa chuộng dù có nhiều trò chơi với đồ họa hấp dẫn hơn. Cờ carô rất đơn giản nhưng lại đòi hỏi nhiều sự thông minh và tính toán nước đi khéo léo ở người chơi. Bạn phải nghĩ ra những phương án chiến lược và bạn sẽ giành chiến thắng trên bàn cờ! Yêu cầu đề ra: Yêu cầu đặt ra là xây dựng chương trình Chat hoạt động trong mạng Lan sử dụng Socket và Multithreading đòi hỏi các chức năng nghiệp vụ sau:  Chơi cờ caro online  Chơi cờ caro offline ( với máy)  Chơi cờ caro ofline ( với 1 người khác)  Chế độ chat, kết bạn, tính điểm, thăng cấp,… 1 ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU NHẬN XÉT CỦA GIÁO VIÊN 2 ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU MỤC LỤC 3 ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU Chương I: CÁC KHÁI NIỆM CƠ BẢN 1. Giới thiệu về socket Là một giao diện lập trình ứng dụng (API : application program interfaces) mạng , là một phương pháp để thiết lập kết nối truyền thông giữa một chương trình yêu cầu dịch vụ ( client) và một chương trình cung cấp dịch vụ (server) trên mạng LAN, WAN hay Internet. Socket nằm giữa chương trình ứng dụng với tầng vận chuyển. Nó cho phép ta chọn giao thức sử dụng ở tầng vận chuyển là TCP hay UDP cho chương trình ứng dụng của mình. 1.1 Các lớp cơ bản Class Namespace Desciption IPAddress System.Net Cung cấp địa chỉ giao thức Internet IPEndPoint System.Net Đại diện cho một thiết bị đầu cuối mạng như địa chỉ IP và số cổng. TcpListener System.Net.Sockets Lắng nghe cho các kết nối từ mạnglưới khách hàng TCP. Socket System.Net.Sockets Thực hiện các giao diện Berkeley socket TcpClient System.Net.Sockets Cung cấp các kết nối khách hàng với các dịch vụ mạng TCP. NetworkStream System.Net.Sockets Cung cấp các dòng cơ bản của dữ liệu để truy cập mạng. 1.2 Socket hướng kết nối (TCP Socket) • Có 1 đường kết nối ảo giữa hai tiến trình • Một trong hai tiến trình phải đợi tiến trình kia yêu cầu kết nối. • Có thể sử dụng để liên lạc theo mô hình client/server • Trong mô hình Client/Server thì Server lắng nghe và chấp nhận một yêu cầu kết nối • Các gói tin chuyển đi tuần tự 1.3 Kết nối Server-Client với TCP/IP ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU  Server: • Tạo một đối tượng System.Net.Sockets.TcpListener để bắt đầu “lắng nghe” trên một cổng cục bộ. • Đợi và chấp nhận kết nối từ client với phương thức AccepSocket(). Phương thức này trả về một đối tượng System.Net.Sockets.Socket dùng để gửi và nhận dữ liệu. • Thực hiện giao tiếp với client. • Đóng Socket. Thông thường quy trình này sẽ được đặt trong một vòng lặp (lặp lại bước 2) để chấp nhận nhiều kết nối cùng lúc (sử dụng Thread) hoặc các kết nối lần lượt.  Client: • Tạo một đối tượng System.Net.Sockets.TcpClient • Kết nối đến server với địa chỉ và port xác định với phương thức TcpClient.Connect() • Lấy luồng (stream) giao tiếp bằng phương thức TcpClient.GetStream(). • Thực hiện giao tiếp với server. • Đóng luồng và socket. 2. MultiThread Thread là một chuỗi liên tiếp những sự thực thi (mã lệnh hay câu lệnh) trong chương trình (ứng dụng). Trong một chương trình C#, dễ thấy việc thực thi được bắt đầu bằng phương thức main() và tiếp tục cho đến khi kết thúc hàm ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU main(). Cấu trúc này rất hay cho những chương trình có một chuỗi xác định những nhiệm vụ liên tiếp, nhưng thường thì trong một chương trình ứng có nhiều hơn một công việc vào cùng một lúc. Có thể cùng hoạt động trong một không gian địa chỉ => Cùng chia sẻ tài nguyên chung. Khai báo thread: using System; using System.Threading; Tạo 1 thread : class Program { static void Main () { Thread t = new Thread(WriteY); t.Start(); } static void WriteY () { while (true) Console.Write("T"); } } Chờ đợi một luồng khác Bằng việc sử dụng phương thức Join(); ta có thể cho phép chờ đợi một luồng khác thực hiện xong (để thu thập dữ liệu chẳng hạn - do chia nhỏ công việc mà), thì luồng đã gọi nó mới tiếp tục được công việc của nó Một số phương thức cơ bản của class Thread ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU Chương II: THIẾT KẾ CƠ SỞ DỮ LIỆU 1. Table DANHSACHTHANHVIEN • Chức năng: Lưu thông tin về User (quản lý account, pass, tính điểm, xếp hang cho User) • Danh sách các thuộc tính: 2. Table FRIEND • Danh sách các thuộc tính: ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU Chương III: THIẾT KẾ CÁC THÀNH PHẦN XỬ LÝ 1. Mô hình luồng xử lý đăng nhập: Mô tả qui trình xử lý: ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU Khi một User yêu cầu đăng nhập hệ thống, Client sẽ gởi Username và Password cho Server. Server sẽ kiểm tra xem Username và Password có hợp lệ hay không. Sau đó, Server sẽ kiểm tra Username này đã đăng nhập chưa. Nếu đăng nhập thành công, Server sẽ lấy danh sách các Friend đang Offline và Online của User và gởi cho User và cập nhật lại trạng thái đăng nhập của User. Đồng thời cũng gởi thông báo đến các Users khác có Friend là User này mới Online. 2. Mô hình luồng xử lý đăng xuất: ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU Mô tả qui trình xử lý: Khi một User yêu cầu đăng xuất lại hệ thống, Client sẽ hiển thị lại màn hình đăng nhập và đồng thời gởi thông báo đang xuất đến Server. Server sẽ gởi thông báo đăng xuất tới các Users có Friend là User này. Bên cạnh đó, Server kiểm tra tất cả các Groups mà User này đang tham gia. Server sẽ gởi thông báo hủy đến các Group mà User này là người khởi tạo và sẽ gởi thông báo đăng xuất đến các Group mà User này chỉ tham gia với tư cách là thành viên. Cuối cùng, Server sẽ cập nhật lại trạng thái đăng nhập của User. [...]... return 1; ĐỀ TÀI: CỜ CARO CHÂU GVHD: MAI NGỌC return -1; } Chương VI: 1 Bên server 1.1 Đăng nhập 1.2 Sau khi đăng nhập THIẾT KẾ GIAO DIỆN ĐỀ TÀI: CỜ CARO CHÂU GVHD: MAI NGỌC ĐỀ TÀI: CỜ CARO CHÂU 1.3 Thiết lập thông tin user trên server 2 2.1 Bên client Đăng kí GVHD: MAI NGỌC ĐỀ TÀI: CỜ CARO CHÂU 2.2 Đăng nhập GVHD: MAI NGỌC ĐỀ TÀI: CỜ CARO CHÂU 2.3 Sau khi đăng nhập GVHD: MAI NGỌC ĐỀ TÀI: CỜ CARO CHÂU... GVHD: MAI NGỌC ĐỀ TÀI: CỜ CARO CHÂU 2.4 Khi vào chơi online 2.5 Danh sách bạn online và bạn bè đã kết bạn GVHD: MAI NGỌC ĐỀ TÀI: CỜ CARO CHÂU 2.6 Khung chat GVHD: MAI NGỌC ĐỀ TÀI: CỜ CARO CHÂU 2.7 Khi chơi offline (với máy) GVHD: MAI NGỌC ĐỀ TÀI: CỜ CARO CHÂU GVHD: MAI NGỌC ĐỀ TÀI: CỜ CARO CHÂU GVHD: MAI NGỌC ... công hay thất bại (có hai nguyên nhân thất bại là Friend không tồn tại và Friend chưa có trong FriendList) đồng thời cập nhật lại màn hình chính 6 Giải thuật cờ caro Hình: Mô tả quá trình xử lí trên bàn cờ Code luận lý: Xét hàng ngang: ĐỀ TÀI: CỜ CARO CHÂU GVHD: MAI NGỌC private int Ngang(int iX,int iY) { int iChanNgang = 0; int iCountNgang = 0; NgangTrai(iX, iY, ref iCountNgang, ref iChanNgang); NgangPhai(iX,... sẽ kiểm tra Friend này đã được thêm vào FriendList trước đó hay chưa Nếu Friend này đã có trong ĐỀ TÀI: CỜ CARO CHÂU GVHD: MAI NGỌC FriendList, Server sẽ xóa Friend này ra khỏi FriendList của người dùng Cuối cùng, Server sẽ gởi kết quả của công việc về cho Client Dựa vào kết quả nhận được, Client sẽ thông báo cho người dùng biết là việc Xóa thành công hay thất bại (có hai nguyên nhân thất bại là Friend... của người dùng Cuối cùng, Server sẽ gởi kết quả của công việc về cho Client Dựa vào kết quả nhận được, Client sẽ thông báo cho người dùng biết là việc thêm thành công hay thất bại (có hai nguyên nhân thất bại là Friend không tồn tại và Friend đã có trong FriendList rồi) ĐỀ TÀI: CỜ CARO CHÂU 5 GVHD: MAI NGỌC Xóa một Friend khỏi FriendList: Mô tả qui trình xử lý: Khi người dùng chọn chức năng xóa một... ref iCountDung, ref iChanDung); DungDuoi(iX, iY, ref iCountDung, ref iChanDung); if (iChanDung == 2) return 0; else if (iCountDung > 4) return 2; else if (iCountDung == 4) return 1; return -1; } ĐỀ TÀI: CỜ CARO CHÂU GVHD: MAI NGỌC Xét hàng chéo thuận: private int CheoThuan(int iX, int iY) { int iCountCheoThuan = 0; int iChanCheoThuan = 0; CheoThuanTren(iX, iY, ref iCountCheoThuan, ref iChanCheoThuan);... không Nếu người nhận đang Online, Server sẽ gởi tin nhắn và tên người gởi Khi nhận được tin nhắn, Client sẽ hiển thị tin nhắn thông qua một Tab Chat (Tab này sẽ được mở nếu nó chưa có trước đó) ĐỀ TÀI: CỜ CARO CHÂU 4 GVHD: MAI NGỌC Mô hình luồng xử lý FriendList Mô tả qui trình xử lý: Khi người dùng chọn chức năng thêm một Friend vào FriendList, màn hình thêm FriendList sẽ được mở ra Người dùng sẽ...ĐỀ TÀI: CỜ CARO CHÂU GVHD: MAI NGỌC 3 Mô hình luồng xử lý gửi tin nhắn Mô tả qui trình xử lý: Khi người dùng nhập tin nhắn và nhấn phím Enter (hoặc button Send), Client sẽ hiển thị tin nhắn trên Tab Chat đồng . return 1; ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU return -1; } Chương VI: THIẾT KẾ GIAO DIỆN 1. Bên server 1.1 Đăng nhập 1.2 Sau khi đăng nhập ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU ĐỀ TÀI: CỜ CARO GVHD:. Danh sách các thuộc tính: ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU Chương III: THIẾT KẾ CÁC THÀNH PHẦN XỬ LÝ 1. Mô hình luồng xử lý đăng nhập: Mô tả qui trình xử lý: ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU Khi. 2 ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU MỤC LỤC 3 ĐỀ TÀI: CỜ CARO GVHD: MAI NGỌC CHÂU Chương I: CÁC KHÁI NIỆM CƠ BẢN 1. Giới thiệu

Ngày đăng: 17/07/2015, 12:31

Từ khóa liên quan

Mục lục

  • 1.1 Các lớp cơ bản

  • Chương II: THIẾT KẾ CƠ SỞ DỮ LIỆU

  • Chương III: THIẾT KẾ CÁC THÀNH PHẦN XỬ LÝ

    • 1. Mô hình luồng xử lý đăng nhập:

    • 3. Mô hình luồng xử lý gửi tin nhắn

    • Chương VI: THIẾT KẾ GIAO DIỆN

      • 1. Bên server

        • 1.1 Đăng nhập

        • 1.3 Thiết lập thông tin user trên server

        • 2.2 Đăng nhập

        • 2.4 Khi vào chơi online

        • 2.5 Danh sách bạn online và bạn bè đã kết bạn

        • 2.7 Khi chơi offline (với máy)

Tài liệu cùng người dùng

Tài liệu liên quan