Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
3,3 MB
Nội dung
Môc lôc Mở đầu Chương Tổng quan DotNet C# 1.1 Tổng quan MS.NET 1.1.1 Nguồn gốc NET 1.1.2 Microsoft NET 1.1.3 Kiến trúc NET Framework 1.1.4 Common Language Runtime (CLR) 1.1.5 Thư viện lớp NET Framework 1.1.6 Phát triển ứng dụng Client 1.1.7 Biên dịch MSIL 1.2 Tổng quan C# 1.2.1 Giới thiệu C# 1.2.2 Tại phải sử dụng ngôn ngữ C# 1.2.2.1 C# ngôn ngữ đơn giản 1.2.2.2 C# ngôn ngữ đại 1.2.2.3 C# ngôn ngữ hướng đối tượng 1.2.2.4 C# ngôn ngữ mạnh mẽ mềm dẻo 1.2.2.5 C# ngôn ngữ từ khóa 1.2.2.6 C# ngôn ngữ hướng module 1.2.2.7 C# ngôn ngữ phổ biến 1.2.3 C# ngôn ngữ khác Chương Tổng quan vệ TCP/IP 2.1 Nguồn gốc TCP/IP 2.2 Ưu điểm giao thức TCP/IP 2.3 Mô hình TCP/IP 2.4 Các tầng giao thức 2.4.1 Tầng mạng (network Layer) 2.4.2 Tầng Internet(Internet Layer) Xây dựng Cờ Tướng Server 2.4.3 Tầng giao vận 2.4.3.1 Giao thức không kết nối ( User Datagram Protocol-UDP) 2.4.3.2 Phân kênh,hợp kênh post 2.4.3.3 Lý lập trình viên lựa chọn UDP dịch vụ giao vận 2.4.4 Tầng ứng dụng TCP/IP 2.4.4.1 Dịch vụ tên miền (Domain Name Service –DNS ) 2.4.4.2 Đăng nhập từ xa (Telnet) 2.4.4.3 Thư điện tử 2.4.4.4 Giao thức truyền tệp(File transfer Protocol) 2.4.4.5 Nhóm tin (News Group) 2.4.4.6 Tìm kiếm tệp (Archie) 2.4.4.7 Tra cứu thông tin theo thực đơn (Gopher) 2.4.4.8 Tìm kiếm thông tin theo số (WAIS) 2.4.4.9 Siêu văn (WWW) Chương ứng dụng Cờ Tướng Server 3.1 Đặc tả chương trình Cờ Tướng Server 3.1.1 Cái nhìn tổng quan mô hình Client-Server 3.1.2 Mô hình Client – Server 3.1.2.1 Mô hình Client –Server không kết nối 3.1.2.2 Mô hình Client-Server hướng kết nối 3.2 Thiết kế đối tượng chương trình 3.2.1 Các đối tượng Server 3.2.1.1 ChatServer 3.2.1.2 UserInfo 3.2.1.3 UserChat 3.2.1.4 SocketHelper 3.2.1.5 PlayGame 3.2.1.6 Một vài đối tượng khác 3.2.2 Client 3.2.2.1 BanCo 3.2.2.2 QuanCo Báo cáo tốt nghiệp Xây dựng Cờ Tướng Server 3.2.2.3 KieuQuanCo 3.3 Cài đặt chương trình 3.3.1 Server 3.3.2 Kiểu quân cờ 3.3.3.Quân Cờ 3.3.4 Bàn Cờ 3.4 Kiểm thử chương trình 3.4.1 Chương trình quản lý Client(Server) 3.4.1.1 Các kết nối sử dụng chương trình 3.4.1.2 Làm việc với Socket 3.4.1.3 Cờ Tướng Server 3.4.2 Chương trình Client Kết luận Kết đạt Hướng phát triển tương lai Tài liệu tham khảo Phụ lục Báo cáo tốt nghiệp Xây dựng Cờ Tướng Server MỞ ĐẦU Với tốc độ phát triển mạnh mẽ, Công nghệ thông tin vào sống với ứng dụng thiết thực chiều sâu chiều rộng Nó gắn liền với sống số xã hội đại dường dần trở thành nhân tố thiếu sống ngày Và với có mặt công nghệ thông tin thị hiếu giả trí thay đổi với xuất game online giúp giới trẻ có sân chơi Những người làm công nghệ thông tin mong muốn đưa Công nghệ thông tin vào ứng ngày hiệu sống Với ý tưởng đưa kiến thức học nhà trường vào ứng dụng thực tế Trong thời gian làm đồ án tốt nghiệp em hướng dẫn để thực đề tài: Xây dựng Cờ Tướng Server Đề tài nhằm tìm hiểu giao thức chuyển đổi Client Server để từ nắm rõ tư tưởng lập trình với Game Online ứng dụng tư tưởng để viết chương trình Cờ Tướng Server Đề tài xây dựng Server cho phép Client kết nối đến qua IP Port Server tạo Server quản lý Client kết nối đến, quản lý nước đi, trạng thái chiếu tướng, hết cờ, nắm bắt yêu cầu Client gửi tạo chuẩn xâu trạng thái truyền Client ServerClient Báo cáo bao gồm chương : Chương Tổng quan DotNet C# ngôn ngữ mà chương trình cài đặt, Chương Tổng quan TCP/IP, Chương Ứng dụng Cờ Tướng Server giới cụ thể thiết kế, cài đặt chương trình phần cuối phụ lục tài liệu tham khảo Mặc dù cố gắng nhiều chắn đề tài tránh khỏi thiếu xót Rất mong nhận đóng góp thầy cô bạn giúp chương trình hoàn thiện hơn.Em xin chân thành cảm ơn giúp đỡ thầy Nguyễn Văn Tới tận tình hướng dẫn, giúp đỡ em hoàn thành tốt đề tài Em xin chân thành cảm ơn ! Báo cáo tốt nghiệp Xây dựng Cờ Tướng Server Chương Tæng quan vÒ DotNet vµ C# 1.1 Tổng quan MS.NET 1.1.1 Nguồn gốc NET Đầu năm 1998, sau hoàn tất phiên Version Internet Information Server(IIS), đội ngũ lập trình Microsoft nhận thấy họ nhiều sáng kiến để kiện toàn IIS Họ bắt đầu xây dựng kiến trúc tảng ý tưởng đặt tên Next Generation Windows Services (NGWS) Sau Visual Basic trình làng vào cuối 1998, dự án mang tên Visual Studio xác nhập vào NGWS Đội ngũ COM+/MTS góp vào universal runtime cho tất ngôn ngữ lập trình chung Visual Studio, tham vọng họ cung cấp cho ngôn ngữ lập trình công ty khác dùng chung Công việc xúc tiến cách hoàn toàn bí mật hội nghị Professional Developers’ Conference orlado vào tháng 7/2000 Đến tháng 11/2000 Microsoft phát hành Beta NET gồm đĩa CD Tính đến lúc Microsoft làm việc với NET gần năm rồi, Beta tương đối vững .NET mang dáng dấp sáng kiến áp dụng trước code UCSD Pascal Java Virtual Machine Có điều Microsoft góp nhặt sáng kiến người khác, kết hợp với sáng kiến để làm nên sản phẩm hoàn chỉnh từ bên lẫn bên Hiện Microsoft công bố phiên release NET Thật Microsoft đặt cược vào NET theo thông tin công ty, tập trung 80% sức mạnh Microsoft để nghiên cứu triển khai NET (bao gồm nhân lực tài ?), tất sản phẩm Microsoft chuyển qua NET 1.1.2 Microsoft NET Microsoft NET gồm phần chính: Framework Integrate Development Environment (IDE) Framework cung cấp cần thiết bản, chữ Framework có nghĩa khung hay khung cảnh ta dùng hạ tầng sở theo qui ước định để công việc trôi chảy IDE cung cấp môi Báo cáo tốt nghiệp Xây dựng Cờ Tướng Server trường giúp triển khai dễ dàng, nhanh chóng ứng dụng dựa tảng NET Nếu IDE Microsoft NET 10 Ngôn Ngữ Lập Trình C# dùng trình soạn thảo ví Notepad hay trình soạn thảo văn sử dụng command line để biên dịch thực thi, nhiên việc nhiều thời gian Tốt dùng IDE phát triển ứng dụng, cách dễ sử dụng Thành phần Framework quan trọng NET cốt lõi tinh hoa môi trường, IDE công cụ để phát triển dựa tảng Trong NET toàn ngôn ngữ C#, Visual C++ hay Visual Basic.NET dùng IDE Tóm lại Microsoft NET tảng cho việc xây dựng thực thi ứng dụng phân tán hệ Bao gồm ứng dụng từ client đến server dịch vụ khác Một số tính Microsoft NET cho phép nhà phát triển sử dụng sau: Một mô hình lập trình cho phép nhà phát triển xây dựng ứng dụng dịch vụ web ứng dụng client với Extensible Markup Language (XML) Tập hợp dịch vụ XML Web, Microsoft NET My Services cho phép nhà phát triển đơn giản tích hợp người dùng kinh nghiệm Cung cấp server phục vụ bao gồm: Windows 2000, SQL Server BizTalk Server, tất điều tích hợp, hoạt động, quản lý dịch vụ XML Web ứng dụng Các phần mềm client Windows XP Windows CE giúp người phát triển phân phối sâu thuyết phục người dùng kinh nghiệm thông qua dòng thiết bị Nhiều công cụ hỗ trợ Visual Studio NET, để phát triển dịch vụ Web XML, ứng dụng Windows hay web cách dể dàng hiệu 1.1.3 Kiến trúc NET Framework NET Framework platform làm đơn giản việc phát triển ứng dụng môi trường phân tán Internet .NET Framework thiết kế đầy đủ để đáp ứng theo quan điểm sau: Báo cáo tốt nghiệp Xây dựng Cờ Tướng Server Để cung cấp môi trường lập trình hướng đối tượng vững chắc, mã nguồn đối tượng lưu trữ thực thi cách cục Thực thi cục phân tán Internet, thực thi từ xa Để cung cấp môi trường thực thi mã nguồn mà tối thiểu việc đóng gói phần mềm tranh chấp phiên Để cung cấp môi trường thực thi mã nguồn mà đảm bảo việc thực thi an toàn mã nguồn, bao gồm việc mã nguồn tạo hãng thứ ba hay hãng mà tuân thủ theo kiến trúc NET Để cung cấp môi trường thực thi mã nguồn mà loại bỏ lỗi thực script hay môi trường thông dịch Để làm cho người phát triển có kinh nghiệm vững nắm vững nhiều kiểu ứng dụng khác Như từ ứng dụng Windows đến ứng dụng dựa web Để xây dựng tất thông tin dựa tiêu chuẩn công nghiệp để đảm bảo mã nguồn .NET tích hợp với mã nguồn khác NET Framework có hai thành phần chính: Common Language Runtime (CLR) thư viện lớp NET Framework CLR tảng NET Framework Chúng ta hiểu runtime agent quản lý mã nguồn thực thi, cung cấp dịch vụ cốt lõi như: quản lý nhớ, quản lý tiến trình, quản lý từ xa Ngoài thúc đẩy việc sử dụng kiểu an toàn hình thức khác việc xác mã nguồn, đảm bảo cho việc thực bảo mật mạnh mẽ Thật vậy, khái niệm quản lý mã nguồn nguyên lý tảng runtime Mã nguồn mà đích tới runtime biết mã nguồn quản lý (managed code) Trong mã nguồn mà đích tới runtime biết mã nguồn không quản lý (unmanaged code) Thư viện lớp, thành phần khác NET Framework tập hợp hướng đối tượng kiểu liệu dùng lại, cho phép phát triển ứng dụng từ ứng dụng truyền thống command-line hay ứng dụng có giao diện đồ họa (GUI) đến ứng dụng cung cấp ASP.NET, Web Form dịch vụ XML Web Báo cáo tốt nghiệp Xây dựng Cờ Tướng Server 1.1.4 Common Language Runtime (CLR) Như đề cập CLR thực quản lý nhớ, quản lý thực thi tiến trình, thực thi mã nguồn, xác nhận mã nguồn an toàn, biên dịch dịch vụ hệ thống khác Những đặc tính tảng cho mã nguồn quản lý chạy CLR Do trọng đến bảo mật, thành phần quản lý cấp mức độ quyền hạn khác nhau, phụ thuộc vào nhiều yếu tố nguyên thủy chúng như: liên quan đến Internet, hệ thống mạng nhà máy, hay máy tính cục Điều có nghĩa rằng, thành phần quản lý có hay quyền thực thao tác truy cập tập tin, thao tác truy cập registry, hay chức nhạy cảm khác CLR thúc đẩy việc mã nguồn thực việc truy cập bảo mật Ví dụ, người sử dụng giới hạn việc thực thi nhúng vào trang web chạy hoạt hình hình hay hát nhạc, truy cập liệu riêng tư, tập tin hệ thống, hay truy cập mạng Do đó, đặc tính bảo mật CLR cho phép phần mềm đóng gói Internet có nhiều đặc tính mà không ảnh hưởng đến việc bảo mật hệ thống CLR thúc đẩy cho mã nguồn thực thi mạnh mẽ việc thực thi mã nguồn Type System (CTS) CTS đảm bảo mã nguồn quản lý tự mô tả (selfdescribing) Sự khác Microsoft trình biên dịch ngôn ngữ hãng thứ ba việc tạo mã nguồn quản lý thích hợp với CTS Điều mã nguồn quản lý sử dụng kiểu quản lý khác thể hiện, thúc đẩy nghiêm ngặt việc sử dụng kiểu liệu xác an toàn Thêm vào đó, môi trường quản lý runtime thực việc tự động xử lý layout đối tượng quản lý tham chiếu đến đối tượng, giải phóng chúng chúng không sử dụng Việc quản lý nhớ tự động giải hai lỗi chung ứng dụng: thiếu nhớ tham chiếu nhớ không hợp lệ Trong runtime thiết kế cho phần mềm tương lai, hỗ trợ cho phần mềm ngày trước Khả hoạt động qua lại mã Báo cáo tốt nghiệp Xây dựng Cờ Tướng Server nguồn quản lý mã nguồn không quản lý cho phép người phát triển tiếp tục sử dụng thành phần cần thiết COM DLL Runtime thiết kế để cải tiến hiệu suất thực Mặc dù CLR cung cấp nhiều tiêu chuẩn dịch vụ runtime, mã nguồn quản lý không dịch Có đặc tính gọi Just-in-Time (JIT) biên dịch tất mã nguồn quản lý vào ngôn ngữ máy hệ thống vào lúc mà thực thi Khi đó, trình quản lý nhớ xóa bỏ phân mảnh nhớ gia tăng tham chiếu nhớ cục bộ, kết gia tăng hiệu thực thi 1.1.5 Thư viện lớp NET Framework Thư viện lớp NET Framework tập hợp kiểu liệu dùng lại kết hợp chặt chẽ với Common Language Runtime Thư viện lớp hướng đối tượng cung cấp kiểu liệu mà mã nguồn quản lý dẫn xuất Điều không làm cho kiểu liệu NET Framework dễ sử dụng mà làm giảm thời gian liên quan đến việc học đặc tính NET Framework Thêm vào đó, thành phần hãng thứ ba tích hợp với lớp NET Framework Cũng mong đợi người phát triển với thư viện lớp hướng đối tượng, kiểu liệu NET Framework cho phép người phát triển thiết lập nhiều mức độ thông dụng việc lập trình, bao gồm nhiệm vụ như: quản lý chuỗi, thu thập hay chọn lọc liệu, kết nối với sở liệu, truy cập tập tin Ngoài nhiệm vụ thông dụng Thư viện lớp đưa vào kiểu liệu để hỗ trợ cho kịch phát triển chuyên biệt khác Ví dụ người phát triển sử dụng NET Framework để phát triển kiểu ứng dụng dịch vụ sau: Ứng dụng Console Ứng dụng giao diện GUI Windows (Windows Forms) Ứng dụng ASP.NET Dịch vụ XML Web Dịch vụ Windows Trong lớp Windows Forms cung cấp tập hợp lớn kiểu liệu nhằm làm đơn giản việc phát triển ứng dụng GUI chạy Windows Còn Báo cáo tốt nghiệp Xây dựng Cờ Tướng Server viết ứng dụng ASP.NET sử dụng lớp Web Forms thư viện NET Framework 1.1.6 Phát triển ứng dụng Client Những ứng dụng client gần với ứng dụng kiểu truyền thống lập trình dựa Windows Đây kiểu ứng dụng hiển thị cửa sổ hay form desktop cho phép người dùng thực thao tác hay nhiệm vụ Những ứng dụng client bao gồm ứng dụng xử lý văn bản, xử lý bảng tính, ứng dụng lĩnh vực thương mại công cụ nhập liệu, công cụ tạo báo cáo Những ứng dụng client thường sử dụng cửa sổ, menu, toolbar, button hay thành phần GUI khác, chúng thường truy cập tài nguyên cục tập tin hệ thống, thiết bị ngoại vi máy in Một loại ứng dụng client khác với ứng dụng truyền thống ActiveX control (hiện thay Windows Form control) nhúng vào trang web Internet Các ứng dụng giống ứng dụng client khác truy cập tài nguyên cục Trong khứ, nhà phát triển tạo ứng dụng sử dụng C/C++ thông qua kết nối với MFC sử dụng môi trường phát triển ứng dụng nhanh (RAD: Rapid Application Development) .NET Framework tích hợp diện mạo sản phẩm thành Môi trường phát triển cố định làm đơn giản mạnh mẽ phát triển ứng dụng client Những lớp NET Framework chứa NET Framework thiết kế cho việc sử dụng phát triển GUI Điều cho phép người phát triển nhanh chóng dễ dàng tạo cửa sổ, button, menu, toolbar, thành phần khác ứng dụng viết phục vụ cho lĩnh vực thương mại Ví dụ như, NET cung cấp thuộc tính đơn giản để hiệu chỉnh hiệu ứng visual liên quan đến form Trong vài trường hợp hệ điều hành không hỗ trợ việc thay đổi thuộc tính cách trực tiếp, trường hợp NET tự động tạo lại form Đây nhiều cách mà NET tích hợp việc phát triển giao diện làm cho mã nguồn đơn giản mạnh mẽ Không giống ActiveX control, Windows Form control có truy cập giới hạn đến máy người sử dụng Điều có nghĩa mà nguồn thực thi nhị Báo cáo tốt nghiệp 10 Xây dựng Cờ Tướng Server { if (banCo[i][j] != 0){ if (banCo[i][j] == -5 * loaiQuanCo) kt=banCo[i][j]; temp = false; } else j ; }} else j ;} j = cot + 1; ok = true; while (kt==0 && (j < 9) && ok) { if (banCo[i][j] != 0) { ok = false; if ((banCo[i][j] == -4 * loaiQuanCo)) kt=banCo[i][j]; j++; bool temp = true; while ((j < 9) && (kt==0) && temp) {if (banCo[i][j] != 0) { if (banCo[i][j] == -5 * loaiQuanCo) kt=banCo[i][j];temp = false;} else j++;}} else j++;} j = cot; i = dong - 1;ok = true; while (kt==0 && (i >= 0) && ok) { if (banCo[i][j] != 0) { ok = false; if ((banCo[i][j] == -4 * loaiQuanCo)) kt=banCo[i][j]; i ; bool temp = true; while ((i >= 0) && (kt==0) && temp) { if (banCo[i][j] != 0) { if (banCo[i][j] == -5 * loaiQuanCo) kt=banCo[i][j]; temp = false; } else i ; } } Else i ; } i = dong + 1; ok = true; while (kt==0 && (i < 10) && ok) { if (banCo[i][j] != 0) { ok = false; if ((banCo[i][j] == -4 * loaiQuanCo)) Báo cáo tốt nghiệp 60 Xây dựng Cờ Tướng Server kt=banCo[i][j]; i++; bool temp = true; while ((i < 10) && (kt==0) && temp) { if (banCo[i][j] != 0) { if (banCo[i][j] == -5 * loaiQuanCo) kt=banCo[i][j]; temp = false; }else i++; }} Else i++;} return kt; } 12 Kiểm tra nước quân public bool KiemTraNuocDi(int kieuQuanCo, int dongCu, int cotCu,int dongMoi,int cotMoi) { bool kt = false;bool tam = true; int dong, cot; int count = 0; switch (kieuQuanCo) { case 1:// Tuong_xanh if (banCo[dongMoi][cotMoi] = && cotMoi = && cotMoi = 7) { if (dongMoi == dongCu && ((cotMoi == (cotCu - 1)) || (cotMoi == (cotCu + 1)))) kt = true;//sang trai or phai Báo cáo tốt nghiệp 61 Xây dựng Cờ Tướng Server if (cotMoi == cotCu && ((dongMoi == (dongCu + 1)) || (dongMoi == (dongCu 1)))) kt = true;//thang len or xuong } break; case 2://Si_xanh if (banCo[dongMoi][cotMoi] = && cotMoi = && cotMoi = 7) { if (dongMoi == (dongCu + 1) && (cotMoi == (cotCu + 1)) || (cotMoi == (cotCu 1))) kt = true;//cheo len if (dongMoi == (dongCu - 1) && (cotMoi == (cotCu + 1)) || (cotMoi == (cotCu 1))) kt = true;//cheo xuong } break; case 3://Tinh_xanh if (banCo[dongMoi][cotMoi] = 5) { if ((dongMoi == (dongCu - 2)) && (cotMoi == (cotCu - 2)) && banCo[dongCu 1][cotCu - 1] == 0) kt = true;//cheo len ben trai if ((dongMoi == (dongCu - 2)) && (cotMoi == (cotCu + 2)) && banCo[dongCu 1][cotCu + 1] == 0) kt = true;//cheo len ben Phai if ((dongMoi == (dongCu + 2)) && (cotMoi == (cotCu - 2)) && banCo[dongCu + 1][cotCu - 1] == 0) kt = true;//cheo xuong ben trai if ((dongMoi == (dongCu + 2)) && (cotMoi == (cotCu + 2)) && banCo[dongCu + 1][cotCu + 1] == 0) kt = true;//cheo xuong ben phai } break; case 4:// xe_xanh if ((banCo[dongMoi][cotMoi] dongCu)) {//di len theo dong if (dongMoi == (dongCu + 1)) {kt = true;break; } Else for (dong = dongCu + 1; dong < dongMoi; dong++) { if (banCo[dong][cotMoi] != 0) {tam = false; kt = tam;break;} else {tam = true;kt = tam;}}} if (cotMoi == cotCu && dongMoi < dongCu)//di xuongtheo dong { if (dongMoi == (dongCu - 1)){kt = true;break;} Else for (dong = dongCu - 1; dong > dongMoi; dong ) { if (banCo[dong][cotMoi] != 0){ tam = false; kt = tam;break;} else{tam = true;kt = tam;}}} if (dongMoi == dongCu && cotMoi > cotCu)// di sang phai { if (cotMoi == (cotCu + 1)) {kt = true;break;} Else for (cot = cotCu + 1; cot < cotMoi; cot++) { if (banCo[dongMoi][cot] != 0) { tam = false;kt = tam;break;} else{tam = true;kt = tam;}}} if (dongMoi == dongCu && cotMoi < cotCu)// di sang trai { if (cotMoi == (cotCu - 1)){kt = true;break;} Else for (cot = cotCu - 1; cot > cotMoi; cot ) { if (banCo[dongMoi][cot] != 0){tam = false;kt = tam;break;} Else {tam = true;kt = tam;}}} break; case -4: // xe_do if ((banCo[dongMoi][cotMoi] >= 0)) { if ((cotMoi == cotCu) && (dongMoi < dongCu)) {//di len theo dong if (dongMoi == (dongCu - 1)){kt = true;break;} Else for (dong = dongCu - 1; dong > dongMoi; dong ) Báo cáo tốt nghiệp 64 Xây dựng Cờ Tướng Server {if (banCo[dong][cotMoi] != 0) { tam = false; kt = tam; break;} else{tam = true;kt = tam;}}} if (cotMoi == cotCu && dongMoi > dongCu)//di xuongtheo dong { if (dongMoi == (dongCu + 1)){kt = true;break;} Else for (dong = dongCu + 1; dong < dongMoi; dong++) {if (banCo[dong][cotMoi] != 0) {tam = false;kt = tam;break;} else{tam = true; kt = tam; }}} if (dongMoi == dongCu && cotMoi > cotCu)// di sang phai {if (cotMoi == (cotCu + 1)) {kt = true;break;} elsefor (cot = cotCu + 1; cot < cotMoi; cot++) { if (banCo[dongMoi][cot] != 0) { tam = false;kt = tam;break;} Else {tam = true;kt = tam;}} } if (dongMoi == dongCu && cotMoi < cotCu)// di sang trai { if (cotMoi == (cotCu - 1)) {kt = true;break; } Else for (cot = cotCu - 1; cot > cotMoi; cot ) { if (banCo[dongMoi][cot] != 0) {tam = false;kt = tam; break; } else{tam = true;kt = tam;}} }} break; case 5://phao_xanh if ((banCo[dongMoi][cotMoi] == 0)) { if ((cotMoi == cotCu) && (dongMoi > dongCu)) {//di len theo dong if (dongMoi == (dongCu + 1)) { kt = true;break; } Else for (dong = dongCu + 1; dong < dongMoi; dong++) { if (banCo[dong][cotMoi] != 0) {tam = false;kt = tam; break;} else{tam = true;kt = tam;}}} if (cotMoi == cotCu && dongMoi < dongCu)//di xuongtheo dong Báo cáo tốt nghiệp 65 Xây dựng Cờ Tướng Server { if (dongMoi == (dongCu - 1)) { kt = true; break;} Else for (dong = dongCu - 1; dong >= dongMoi; dong ) { if (banCo[dong][cotMoi] != 0) {tam = false;kt = tam;break;} else{tam = true;kt = tam;}}} if (dongMoi == dongCu && cotMoi > cotCu)// di sang phai { if (cotMoi == cotCu - 1) {kt = true;break;} Else or (cot = cotCu + 1; cot dongCu)) {//di len theo dong for (dong = dongCu + 1; dong < dongMoi; dong++) { if (banCo[dong][cotMoi] != 0) count++; if (count == 1) kt = true; else kt = false;} } //phao di xuong va an if (cotMoi == cotCu && dongMoi < dongCu)//di xuongtheo dong { for (dong = dongCu - 1; dong > dongMoi; dong ) { if (banCo[dong][cotMoi] != 0) count++; Báo cáo tốt nghiệp 66 Xây dựng Cờ Tướng Server if (count == 1) kt = true; else kt = false;} } // phao sang phai va an if (dongMoi == dongCu && cotMoi > cotCu)// di sang phai { for (cot = cotCu + 1; cot < cotMoi; cot++) { if (banCo[dongMoi][cot] != 0) count++; if (count == 1) kt = true; else kt = false; }} //Phao sang trai va an if (dongMoi == dongCu && cotMoi < cotCu)// di sang trai { for (cot = cotCu - 1; cot > cotMoi; cot ) { if (banCo[dongMoi][cot] != 0) count++; if (count == 1) kt = true; else kt = false;}}} break; case -5: // phao_do if ((banCo[dongMoi][cotMoi] == 0)) { if ((cotMoi == cotCu) && (dongMoi < dongCu)) {//di len theo dong if (dongMoi == dongCu - 1) {kt = true;break;} else for (dong = dongCu - 1; dong >= dongMoi; dong ) { if (banCo[dong][cotMoi] != 0){tam = false;kt = tam; break;} else{ tam = true; kt = tam;}}} if (cotMoi == cotCu && dongMoi > dongCu)//di xuongtheo dong { Báo cáo tốt nghiệp 67 Xây dựng Cờ Tướng Server if (dongMoi == dongCu + 1) {kt = true;break;} Else for (dong = dongCu + 1; dong cotCu)// di sang phai { if (cotMoi == cotCu + 1) {kt = true;break; } Else for (cot = cotCu + 1; cot = cotMoi; cot ) { if (banCo[dongMoi][cot] != 0) { tam = false;kt = tam; break; } else { tam = true;kt = tam;}}}} //Phao an if (banCo[dongMoi][cotMoi] > 0) { //phao di len va an if ((cotMoi == cotCu) && (dongMoi < dongCu)) Báo cáo tốt nghiệp 68 Xây dựng Cờ Tướng Server {//di len theo dong for (dong = dongCu - 1; dong > dongMoi; dong ) { if (banCo[dong][cotMoi] != 0) count++; if (count == 1) kt = true; else kt = false; } } //phao di xuong va an if (cotMoi == cotCu && dongMoi < dongCu)//di xuongtheo dong { for (dong = dongCu + 1; dong < dongMoi; dong++) { if (banCo[dong][cotMoi] != 0) count++; if (count == 1) kt = true; else kt = false; } } // phao sang phai va an if (dongMoi == dongCu && cotMoi > cotCu)// di sang phai { for (cot = cotCu + 1; cot < cotMoi; cot++) { if (banCo[dongMoi][cot] != 0) count++; if (count == 1) kt = true; else kt = false; } } //Phao sang trai va an if (dongMoi == dongCu && cotMoi < cotCu)// di sang trai { Báo cáo tốt nghiệp 69 Xây dựng Cờ Tướng Server for (cot = cotCu - 1; cot > cotMoi; cot ) { if (banCo[dongMoi][cot] != 0) count++; if (count == 1) kt = true; else kt = false; } } } break; case 6: //Ma_xanh if (banCo[dongMoi][cotMoi] = 0) { if (dongMoi == (dongCu - 2) && (cotMoi == (cotCu - 1)) && (banCo[dongCu 1][cotCu] == 0)) kt = true;//len trai dong if (dongMoi == (dongCu - 2) && (cotMoi == (cotCu + 1)) && (banCo[dongCu 1][cotCu] == 0)) kt = true;//len phai dong if (dongMoi == (dongCu - 1) && (cotMoi == (cotCu - 2)) && (banCo[dongCu][cotCu - 1] == 0)) kt = true;//len trai dong if (dongMoi == (dongCu - 1) && (cotMoi == (cotCu + 2)) && (banCo[dongCu][cotCu - 1] == 0)) kt = true;//len phai dong if (dongMoi == (dongCu + 2) && (cotMoi == (cotCu + 1)) && (banCo[dongCu + 1][cotCu] == 0)) kt = true;//xuong phai dong if (dongMoi == (dongCu + 2) && (cotMoi == (cotCu - 1)) && (banCo[dongCu + 1][cotCu] == 0)) kt = true;//xuong trai dong if (dongMoi == (dongCu + 1) && (cotMoi == (cotCu + 2)) && (banCo[dongCu][cotCu + 1] == 0)) Báo cáo tốt nghiệp 71 Xây dựng Cờ Tướng Server kt = true;//xuong phai dong if (dongMoi == (dongCu + 1) && (cotMoi == (cotCu - 2)) && (banCo[dongCu][cotCu + 1] == 0)) kt = true;//xuong trai dong } break; case 7://Tot_xanh if (banCo[dongMoi][cotMoi] 4) { if ((dongMoi == dongCu) && (cotMoi == (cotCu + 1))) kt = true;//sang phai if ((dongMoi == dongCu) && (cotMoi == (cotCu - 1))) kt = true;//sang trai if ((cotMoi == cotCu) && (dongMoi == (dongCu + 1))) kt = true;//di thang } else { if ((cotMoi == cotCu) && (dongMoi == (dongCu + 1))) kt = true;//di thang } } break; case -7://Tot_Do if (banCo[dongMoi][cotMoi] >= 0) { if (dongCu < 5) { if ((dongMoi == dongCu) && (cotMoi == (cotCu + 1))) Báo cáo tốt nghiệp 72 Xây dựng Cờ Tướng Server kt = true;//sang phai if ((dongMoi == dongCu) && (cotMoi == (cotCu - 1))) kt = true;//sang trai else if ((cotMoi == cotCu) && (dongMoi == (dongCu - 1))) kt = true;//dilen } else { if ((cotMoi == cotCu) && (dongMoi == (dongCu - 1))) kt = true;//di len }} break;} return kt; } Báo cáo tốt nghiệp 73 Xây dựng Cờ Tướng Server NhËn xÐt cña gi¸o viªn Báo cáo tốt nghiệp 74