Tìm hiểu công nghệ là hành trang tốt nhất để chuẩn bị kiến thức cho em sau khi ra trường. Silverlight là một công nghệ mới kết hợp nhiều công nghệ vào một nền tảng phát triển, nó cho phép lựa chọn nhiều công cụ và ngôn ngữ lập trình thích hợp để giải quyết bài toán. Silverlight ra đời đã giải quyết vấn đề thường gặp của các ứng dụng web về khả năng tương thích với trình duyệt và hệ điều hành. Silverlight cung cấp một mô hình lập trình lập trình mềm dẻo và đồng nhất. Ứng dụng nó tạo ra giao diện thân thiện, hiệu ứng đẹp cho các phần mềm các trang web. Hiện nay cờ caro là một trò chơi rất phổ biến trong giới học đường. Từ nhu cầu giải trí đó, đã có rất nhiều hãng đã sản xuất trò chơi caro trên máy tính, giúp cho việc chơi cờ caro được dễ dàng hơn, và bạn có thể đánh cờ với máy mà không cần một người bạn thực sự. Trên cùng mục đích muốn đem trò chơi cờ caro đến với mọi người, làm cho việc chơi cờ trở nên dễ dàng hơn, có thể hỗ trợ cho bạn chơi với bạn bè, nhóm em đã chọn đề tài là: “Tìm hiểu silverlight và lập trình game cờ caro”.
1 TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN *** LUẬN VĂN TỐT NGHIỆP ĐỀ TÀI: TÌM HIỂU VỀ SILVERLIGHT VÀ ỨNG DỤNG LẬP TRÌNH GAME CỜ CARO Sinh viên: Mã sinh viên: Lớp: Hà Nội, 2022 MỤC LỤC LỜI NÓI ĐẦU Lý chọn đề tài 5 Đối tượng nghiên cứu Giới hạn phạm vi nghiên cứu Mục đích nghiên cứu 5 Nhiệm vụ nghiên cứu 6 Phương pháp nghiên cứu Ý nghĩa lý luận thực tiễn đề tài Chương CƠ SỞ LÝ LUẬN 1.1 Silverlight gì? 1.1.1 Đặc điểm 1.1.2 Kiến trúc thành phần 1.1.3 Mơ hình lập trình 1.1.4 Công nghệ công cụ liên quan Silverlight 1.2 Layout silverlight 10 1.2.1.Canvas 11 1.2.2 StackPanel 1.2.3 Grid 12 13 1.3 Các control 14 1.3.1 Border 14 1.3.2 Button 14 1.3.3 Calendar 15 1.3.4 CheckBox 15 10 1.3.5 ComboBox 16 1.3.6 ContentControl 1.3.7 DatePicker 17 1.3.8 GridSpliter 18 1.3.9 HyperlinkButton 16 19 1.3.10 Image 20 1.3.11 InkPresenter 20 1.3.12 ListBox 21 1.3.13 MediaElement 22 1.3.14 MultiSaleImage 22 1.3.15 PasswordBox 23 1.3.16 Popup 23 1.3.17 ProgressBar 23 1.3.18 RadioButton 24 1.3.19 RepeatButton 1.3.20 ScrollBar 25 25 1.3.21 Scrollviewer 26 1.3.22 Slider 26 1.3.23 TabControl 27 1.3.24 TextBox 28 1.3.25 TextBlock 28 1.3.26 ToolTip 29 1.3.27 DataGrid 29 1.4 Xử lý đồ họa Silverlight 1.4.1 Giới thiệu 30 30 1.4.2 Shapes Drawing 30 1.4.3 Geometries(Hình học) 37 1.4.4 Bushes 39 1.5 Animation Media 45 1.5.1 Animation 45 1.5.2 Media 50 1.6 Expression Blend 51 1.6.1 Ví dụ tạo hiệu ứng di chuyển ảnh 51 1.6.2 Hiệu ứng Button chương trình 53 1.6.3 Hiệu ứng cờ chiến thắng 55 Chương THỰC TRẠNG 57 2.1 Giới thiệu sơ lược trò chơi caro 57 2.2 Giới thiệu sơ lược đề tài 57 Chương GIẢI PHÁP 58 3.1 Giải thuật chương trình 58 3.1.1 Giải thuật xác định thắng thua cho ván cờ 58 3.1.2 Giải thuật tìm nước cho máy tính 3.1.3 Kỹ thuật sinh nước 58 62 3.2 Thiết kế chương trình hàm chương trình 3.2.1 Thiết kế chương trình 3.2.2 Giao diện 66 66 66 3.2.3 Các hàm chương trình 69 KẾT LUẬN TÀI LIỆU THAM KHẢO 81 82 LỜI NÓI ĐẦU Lý chọn đề tài Tìm hiểu cơng nghệ hành trang tốt để chuẩn bị kiến thức cho em sau trường Silverlight công nghệ kết hợp nhiều công nghệ vào tảng phát triển, cho phép lựa chọn nhiều cơng cụ ngơn ngữ lập trình thích hợp để giải tốn Silverlight đời giải vấn đề thường gặp ứng dụng web khả tương thích với trình duyệt hệ điều hành Silverlight cung cấp mơ hình lập trình lập trình mềm dẻo đồng Ứng dụng tạo giao diện thân thiện, hiệu ứng đẹp cho phần mềm trang web Hiện cờ caro trò chơi phổ biến giới học đường Từ nhu cầu giải trí đó, có nhiều hãng sản xuất trị chơi caro máy tính, giúp cho việc chơi cờ caro dễ dàng hơn, bạn đánh cờ với máy mà không cần người bạn thực Trên mục đích muốn đem trị chơi cờ caro đến với người, làm cho việc chơi cờ trở nên dễ dàng hơn, hỗ trợ cho bạn chơi với bạn bè, nhóm em chọn đề tài là: “Tìm hiểu silverlight lập trình game cờ caro” Qua q trình tìm hiểu em hồn thành báo cáo với nội dung sau: Chương Cơ sở lý luận Chương Thực trạng Chương Giải pháp Đối tượng nghiên cứu Công nghệ Silverlight, xaml Chương trình chơi game caro Cơng cụ xây dựng phần mềm: Visual Studio 2010, Microsoft Expression Blend Giới hạn phạm vi nghiên cứu Tìm hiểu cơng nghệ Silverlight lập trình game caro Mục đích nghiên cứu Xây dựng tài liệu giúp tìm hiểu công nghệ Silverlight Xây dựng chương trình chơi game caro có sử dụng cơng nghệ Silverlight Nhiệm vụ nghiên cứu Tìm hiểu cơng nghệ Silverlight ngơn ngữ XAML Tìm hiều kiến thức công nghệ Silverlight để áp dụng vào xây dựng chương trình game caro Phương pháp nghiên cứu Tìm hiểu hết tổng hợp kiến thức chung Silverlight, sau sâu vào kiến thức cụ thể để xây dựng giao diện ứng dụng cờ caro Nghiên cứu công cụ Microsoft Expression Blend để dựa vào thiết kế giao diện cho trang web ứng dụng Ý nghĩa lý luận thực tiễn đề tài Qua việc tìm hiểu giúp em biết thêm kiến thức công nghệ với nhiều tính trội so với cơng nghệ có Microsoft Cơng nghệ Silverlight cho ta nhìn tổng quan thiết kế giao diện đẹp bóng bảy mà khơng địi hỏi phải sử dụng nhiều công nghệ lúc tạo được, điều tạo nên sức mạnh Silverlight Chương CƠ SỞ LÝ LUẬN 1.1 Silverlight gì? a) Lý đời Silverlight Các ứng dụng viết cho web thường gặp vấn đề khả tương thích với trình duyệt hệ điều hành Các công nghệ plug-in web trước khơng cho phép truyền tải liệu hình ảnh chất lượng cao 720p HDTV b) Silverlight gì? Silverlight dạng plug-in dựa cơng nghệ Microsoft Net Nó độc lập với đa tảng đa trình duyệt Nó cho phép phát triển ứng dụng đa phương tiện đặc biệt ứng dụng web Silverlight cung cấp mơ hình lập trình lập trình mềm dẻo đồng nhất, hỗ trợ Ajax, Python, Ruby ngơn ngữ lập trình Net Visual basic, C# 1.1.1 Đặc điểm Silverlight kết hợp nhiều công nghệ vào tảng phát triển, cho phép bạn lựa chọn nhiều cơng cụ ngơn ngữ lập trình thích hợp để giải toán bạn Silverlight cung cấp tính sau: Sự kết hợp WPF XAML Mở rộng cho ngôn ngữ kịch Sự tích hợp với ứng dụng có Sử dụng mơ hình ngơn ngữ lập trình tảng Net Framework công cụ để kết hợp Hỗ trợ mạng Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ) 1.1.2 Kiến trúc thành phần Về Silverlight tảng thống nhiều thành phần khác Dưới bảng thành phần silverlight Dưới hình ảnh mơ tả thành phần kiến trúc Silverlight với thành phần dịch vụ liên quan khác Core Presentation Components: (các thành phần chính) 10 Các lập trình viên tương tác với thành phần tảng trình bày sở cách sử dụng XAML để đặc tả XAML yếu tố quan trọng việc tương tác Net Framwork kiểu trình bày Layout, ngồi lập trình viên sử dụng chế quản lý code bên để thao tác với lớp trình bày Net Frame work for Silverlight: 1.1.3 Mơ hình lập trình Javascript API Managed API 1.1.4 Công nghệ công cụ liên quan Silverlight Microsoft Expression Blend: Sử dụng công cụ bạn bạn tạo thay đổi cách xắp xếp trình bày Layer ứng dụng cách thao tác đến canvas control XAML, làm việc với chức đồ họa, Lập trình với ngơn ngữ Javascript Visual Studio 2008: Visual Studio cung cấp công cụ hiệu cho việc phát triển ứng dụng có hỗ trợ thao tác code bên tron Tất phiên có Visual Studio có khả hỗ trợ Silverlight,Tuy nhiên phiên 84 kính so với lựa nước thoả mãn thang đo ( mode offensive sinh nước gây đường đe doạ ngược lại mode defensive tìm nước có triển vọng đối phương mà đánh ), đó, số lượng nước thoả mãn tiêu chuẩn không nhiều (tức độ phân nhánh thấp) mà chất lượng nước nâng cao, ta cịn gia tăng độ sâu (cố định lẫn tĩnh) lên thêm vài bậc 3.2 Thiết kế chương trình hàm chương trình 3.2.1 Thiết kế chương trình 3.2.2 Giao diện - Website chơi cờ caro xây dựng công nghệ Silverlight kết hợp ngôn ngữ XAML ngôn ngữ C# code-behide Sau phần minh họa giao diện chương trình chơi cờ 85 Hình 3.1: Giao diện Trong đó: Nút lựa chọn kiểu chơi Khi click vào nút bảng Select Model cho phép người chơi chọn kiểu chơi Bàn cờ Bảng lựa chọn kiểu chơi Nút Player vs Player Khi click vào nút chơi cờ người với Chọn người chơi với máy tính, người trước Máy tính chơi với người Máy tính nước Lưu điểm người chơi thứ Lưu điểm người chơi Là hình ảnh tre chuyển động có gió thổi 86 3.2.2.1 Giao diện bàn cờ chơi Hình 3.2: Khi chơi cờ 3.2.2.2 Giao diện bàn cờ người chơi thắng - Khi người chơi thắng xuất thơng báo người thắng cộng điểm vào bảng ghi điểm người - Đồng thời cờ thẳng hàng đổi màu liên tục từ màu trắng sang màu đỏ từ màu đỏ sang màu trắng - Khi người chơi Click vào nút Reset bắt đầu ván 87 Hình 3.3: Khi người chơi thắng 88 - Khi người chơi tiếp tục thắng điểm tăng lên Trong ví dụ người chơi trắng thắng người chơi đen với tỉ số 2:0 3.2.3 Các hàm chương trình 3.2.3.1 Mơ hình PureMVC Kiến trúc Model-View-Controller(MVC) gì? Kiến trúc MVC việc chia tất mục ứng dụng làm ba thành phần (component) khác Model, View Controller Các thành phần kiến trúc MVC trách nhiệm không phụ thuộc vào thành phần khác Những thay đổi thành phần khơng có có ảnh hưởng đến thành phần khác Các trách nhiệm thành phần là: 89 - Model: Model giao nhiệm vụ cung cấp liệu cho sở liệu lưu liệu vào kho chứa liệu Tất nghiệp vụ logic thực thi Model Dữ liệu vào từ người dùng thông qua View kiểm tra Model trước lưu vào sở liệu Việc truy xuất, xác nhận, lưu liệu phần Model - View: View hiển thị thông tin cho người dùng ứng dụng giao nhiệm vụ cho việc nhận liệu vào từ người dùng, gửi yêu cầu đến điều khiển, sau nhận lại phản hồi từ điều khiển hiển kết cho người dùng Các trang HTML, JSP, thư viện thể file nguồn phần thành phần View - Controller: Controller tầng trung gian Model View Controller giao nhiệm vụ nhận yêu cầu từ phía máy khách Một yêu cầu nhận từ máy khách thực chức logic thích hợp từ thành phần Model sau sinh kết cho người dùng thành phần View hiển thị Trong MVC nguyên tắc làm việc phần (Model, Controller View) có mối liên hệ chặt chẽ hình minh họa: 90 Cách có vài nhược điểm thành phần phải tạo liên kết tới nhau, thay đổi thành phần có nguy MVC bị lỗi PureMVC khắc phục vấn đề Thực chất PureMVC tạo thêm lớp trung gian Model View Controller, để người dùng thay đổi Model, View Controller dễ dàng Do PureMVC có thêm phần gồm có : Proxy, Commandvà Mediator Trong framework, phần thiết lập để cách liên lạc với rồi, phần phần trung gian Model, View, Controler Proxy lo cho Model, Command lo cho Controller, Mediator lo cho View Sau hình minh họa PureMVC: 91 Theo hình trên, ngồi ba phần Model, View Control cịn có phần Facade Nhờ có phần mà ba phần PureMVC làm việc với Facade tạo ba phần làm trung gian phần Do framework PureMVC giúp cho người dùng thay đổi UI hay Data Object cách dễ dàng mà không sợ làm ảnh hưởng tới phần khác 3.2.3.2 Một số lớp chương trình 1) Hàm MainPage.cs: ApplicationFacade.Instance.Startup(this); 2) ApplicationFacadate.cs: 92 protected override void InitializeController() { base.InitializeController(); RegisterCommand(Thongbao.khoidong, typeof(Khoidong)); RegisterCommand(Thongbao.khoidonglai, typeof(Restart)); RegisterCommand(Thongbao.batdaugame, typeof(Batdaugame)); RegisterCommand(Thongbao.chonchedo, typeof(Chonchedo)); } 3) Controller: Khoidong.cs: var applicationProxy = Facade.RetrieveProxy(Thaotacvoiform.ten) as Thaotacvoiform; var pieceboardProxy = Facade.RetrieveProxy(Kiemtrabanco.ten) as Kiemtrabanco; var pieceboardMediator Facade.RetrieveMediator(PieceboardMediator.NAME) = as PieceboardMediator; var applicationMediator Facade.RetrieveMediator(ApplicationMediator.NAME) ApplicationMediator; 4) Model (Thaotacvoiform.cs): public void Capnhattyso(Kieuquan kieu) { if (kieu == Kieuquan.QuanX) = as 93 thongke["QuanXthang"]++; if (kieu == Kieuquan.QuanO) thongke["QuanOthang"]++; } public void Lammoityso() { thongke["Xthang"] = 0; thongke["QuanOthang"] = 0; } public int BlackWinsCount { get { return thongke["QuanXthang"]; } } public int WhiteWinsCount { get { return thongke["QuanOthang"]; } 94 KẾT LUẬN Kết đạt Qua trình tìm hiểu nhóm em nắm số kiến thức công nghệ Silverlight áp dụng vào xây dựng chương trình chơi cờ caro với giao diện sinh động, đơn giản mà hấp dẫn Sau thời gian thực đề tài, chương trình hồn thành đạt số kết sau: Website chơi cờ caro có giao diện dễ nhìn, dễ sử dụng Trị chơi chơi người với người chơi với máy Hạn chế đề tài Website chưa xây dựng chưa có nhiều chức lưu lại ván cờ để lần sau chơi tiếp, hay vừa chơi vừa nghe nhạc web, thay đổi giao diện Hướng phát triển đề tài Với cố gắng, lỗ lực nhóm em cố gắng hoàn thành yêu cầu đề tài Do thời gian lực có hạn nên website đáp ứng chơi cờ caro bình thường mà chưa có chức tiện ích khác Hướng phát triển Website trở thành chương trình chơi cờ với đầy đủ chức có giao diện bắt mắt, dễ sử dụng Đề nghị ý kiến Trong thời gian thực đề tài nhóm đề tài khơng thể tránh khỏi thiếu sót, em mong nhận ý kiến đóng góp từ phía q Thầy Cơ bạn để nhóm hồn thiện 95 TÀI LIỆU THAM KHẢO http://en.wikipedia.org/wiki/Minimax http:// en.wikipedia.org/wiki/Alpa-beta pruning Bài giảng Microsoft Silverlight Trịnh Minh Cường – Phan Vĩnh Long ... cứu Tìm hiểu cơng nghệ Silverlight lập trình game caro Mục đích nghiên cứu Xây dựng tài liệu giúp tìm hiểu cơng nghệ Silverlight Xây dựng chương trình chơi game caro có sử dụng cơng nghệ Silverlight. .. chơi cờ caro đến với người, làm cho việc chơi cờ trở nên dễ dàng hơn, hỗ trợ cho bạn chơi với bạn bè, nhóm em chọn đề tài là: ? ?Tìm hiểu silverlight lập trình game cờ caro? ?? Qua trình tìm hiểu. .. nghiên cứu Tìm hiểu cơng nghệ Silverlight ngơn ngữ XAML Tìm hiều kiến thức cơng nghệ Silverlight để áp dụng vào xây dựng chương trình game caro Phương pháp nghiên cứu Tìm hiểu hết tổng