Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
2,46 MB
Nội dung
MỤC LỤC Lời nói đầu .4 Chương Kỹ thuật xây dựng trò chơi Phân loại trò chơi 1.1 Trò chơi đối xứng bất đối xứng 1.2 Trò chơi tổng không trò chơi tổng khác không 1.3 Trò chơi đồng thời trò chơi .6 1.4 Trò chơi thông tin hoàn hảo trò chơi thông tin không hoàn hảo 1.5 Trò chơi dài vô tận Trí tuệ nhân tạo trò chơi Các kỹ thuật tìm kiếm 3.1 Tìm kiếm thông tin 3.1.1 Tìm kiếm danh sách 3.1.2 Tìm kiếm 10 3.1.3 Tìm kiếm đồ thị .10 3.2 Tìm kiếm có thông tin 11 3.2.1 Tìm kiếm Heuristic 12 3.2.2 Phương pháp tìm kiếm leo đồi 13 3.2.3 Phương pháp tìm kiếm tốt - 16 3.3 Tìm kiếm đối kháng 18 3.3.1 Cây trò chơi vấn đề tìm kiếm trò chơi 18 3.3.2 Chiến lược Minimax .21 3.3.3 Phương pháp cắt cụt alpha – beta 24 3.4 Tìm kiếm thỏa mãn buộc .30 Chương Trò chơi cờ vua ngôn ngữ lập trình C# 31 1.Trò chơi cờ vua 31 1.1 Giới thiệu cờ vua 31 1.2 Nguyên lý chơi cờ vua 31 1.3 Chiến lược chiến thuật 34 1.4 Xây dựng trò chơi cờ vua 41 1.4.1 Người với máy 41 1.4.2 Người với người .47 1.4.2.1 Hai người chơi Offline máy 47 1.4.2.2 Hai người chơi Online qua mạng LAN .56 Ngôn ngữ lập trình C# 61 2.1 Lịch sử ngôn ngữ C# 61 2.2 Những mạnh ngôn ngữ C# 62 2.3 Các bước chuẩn bị cho chương trình .64 Chương Cài đặt chương trình 66 1.Giao diện chương trình 66 2.Một số chức chương trình 67 2.1 Tạo Game .67 2.2 Lưu Game 67 2.3 Mở Game 68 2.4 Chức Lùi Lại 69 2.5 Chức xem quân bị ăn 69 2.6 Chức Người với Người .70 2.7 Chức Người với Máy 70 2.8 Chức Chơi Qua Mạng 71 2.9 Chức phong cấp cho Tốt .71 Kết luận 72 Tài liệu tham khảo 74 Phụ lục .75 Lời nói đầu Ngày nay, nhu cầu đời sống người ngày nâng cao, nhu cầu giải trí người quan tâm đến nhiều Việc giải trí Game máy tính ngày phát triển nhanh lan rộng lôi mạnh mẽ Hầu sử dụng máy tính giải trí số game máy tính Có thể nói Game thể loại phong phú tất chương trình máy tính Các loại hình Game đa dạng từ Game hành động, Game trí tuệ, Game chiến lược,… Cờ vua Game trí tuệ phổ biến giới; nói đến không trò chơi mà nghệ thuật, khoa học thể thao Cờ vua nhìn nhận trò chơi chiến tranh trừu tượng, "các đấu trí tuệ", việc chơi cờ vua coi cách để rèn luyện tư lĩnh Cờ vua chơi để tiêu khiển để thi đấu câu lạc cờ vua, giải đấu, chơi trực tuyến Mặc dù chương trình Game nhiều, để viết chương trình Game hay chơi đáp ứng yêu thích người chơi điều không dễ Tuy vậy, với niềm đam mê Game máy tính, em lựa chọn đề tài: KỸ THUẬT XÂY DỰNG TRÒ CHƠI, ỨNG DỤNG XÂY DỰNG TRÒ CHƠI CỜ VUA ĐỐI KHÁNG Vì thời gian thực đề tài có hạn nên chương trình có nhiều thiếu sót Kính mong thầy cô bạn góp ý để Đề Tài em hoàn thiện Chương Kỹ thuật xây dựng trò chơi Phân loại trò chơi 1.1 Trò chơi đối xứng bất đối xứng Trò chơi đối xứng trò chơi mà phần lợi cho việc chơi chiến thuật phụ thuộc vào chiến thuật sử dụng, không phụ thuộc vào người chơi Nếu tính danh người chơi thay đổi mà không làm thay đổi phần lợi chiến thuật chơi, trò chơi đối xứng Nhiều trò chơi 2×2 thường nghiên cứu đối xứng Những biểu diễn chuẩn trò chơi gà, song đề tù nhân, săn nai trò chơi đối xứng Đa số trò chơi bất đối xứng nghiên cứu trò chơi mà tập hợp chiến thuật khác sử dụng hai người chơi Chẳng hạn, trò chơi tối hậu thư tương tự trò nhà độc tài có chiến thuật khác cho người chơi Tuy vậy, xảy trường hợp trò chơi có chiến thuật giống cho hai người chơi, bất đối xứng Chẳng hạn, trò chơi minh họa bất đối xứng mặc có tập chiến thuật cho người chơi E F E 1, 0, F 0, 1, Hình 1.1.1 Một trò chơi bất đối xứng 1.2 Trò chơi tổng không trò chơi tổng khác không Trong trò chơi tổng không, với tổ hợp chiến lược chơi, tổng điểm tất người chơi ván chơi Nói cách không thức, đấu thủ hưởng lợi thiệt hại đấu thủ khác Ví dụ trò Poker, người thắng số điểm số điểm mà người thua Các loại cờ cổ điển cờ vây, cờ vua cờ tướng trò chơi tổng không Nhiều trò chơi mà nhà lý thuyết trò chơi nghiên cứu, có song đề tù nhân tiếng, trò chơi tổng khác không, có số kết cục có tổng kết lớn nhỏ không Nói cách không thức, trò chơi tổng khác không, thu hoạch đấu thủ không thiết tương ứng với thiệt hại đấu thủ khác Có thể biến đổi trò chơi thành trò chơi tổng không cách bổ sung đấu thủ "bù nhìn" cho thiệt hại đấu thủ bù lại tổng thu hoạch đấu thủ khác A B A 2, -2 -1, B -1, 3, -3 Hình 1.2.1 Một trò chơi tổng 1.3 Trò chơi đồng thời trò chơi Trong trò chơi đồng thời (Simultaneous game), hai đấu thủ thực nước cách đồng thời, không đấu thủ hành động trước đối thủ khác (và tạo "hiệu ứng" đồng thời) Trong trò chơi (Sequential game), người sau có biết số (nhưng không thiết toàn bộ) thông tin nước trước 1.4 Trò chơi thông tin hoàn hảo trò chơi thông tin không hoàn hảo Các trò chơi thông tin hoàn hảo (Games of perfect information) lập thành tập quan trọng trò chơi Một trò chơi gọi có thông tin hoàn hảo đấu thủ biết tất nước mà tất đấu thủ khác thực Do có trò chơi trò chơi thông tin hoàn hảo Hầu hết trò chơi nghiên cứu lý thuyết trò chơi trò chơi thông tin không hoàn hảo, số trò chơi hay cờ vây, cờ vua lại trò chơi thông tin hoàn hảo Tính chất thông tin hoàn hảo thường bị nhầm lẫn với khái niệm thông tin đầy đủ Tính chất thông tin đầy đủ đòi hỏi người chơi biết chiến lược thành thu người chơi khác, không thiết biết hành động họ 1.5 Trò chơi dài vô tận Bởi lý hiển nhiên, trò chơi nghiên cứu kinh tế gia người chơi giới thực, nhìn chung kết thúc trò chơi hữu hạn bước Các nhà toán học lý thuyết không bị cản trở điều đó, lý thuyết gia tập hợp đặc biệt nghiên cứu trò chơi kết thúc sau vô hạn bước đi, người thắng (hay phần lợi) sau bước hoàn thành Sự ý thường nhiều cách tốt để chơi trò chơi, mà đơn giản phụ thuộc vào người chơi hay người có hay không chiến thuật chiến thắng (có thể chứng minh rằng, sử dụng tiên đề chọn lựa, có trò chơi với đầy đủ thông tin hoàn toàn, có kết "thắng" hay "thua" không người chơi có chiến thuật để chiến thắng) Sự tồn chiến thuật vậy, cho trò chơi thiết kế cách thông minh, có kết quan trọng lý thuyết miêu tả tập hợp Trí tuệ nhân tạo trò chơi Trí tuệ nhân tạo (Artificial Intelligence - AI) Có thể định nghĩa ngành khoa học máy tính liên quan đến việc tự động hóa hành vi thông minh Trí tuệ nhân tạo phận khoa học máy tính phải đặt nguyên lý, lý thuyết vững chắc, có khả ứng dụng lĩnh vực Những nguyên lý bao gồm cấu trúc liệu dùng cho biểu diễn tri thức, thuật toán cần thiết để áp dụng tri thức đó, ngôn ngữ kỹ thuật lập trình dùng cho việc cài đặt chúng Hai mối quan tâm tảng nhà nghiên cứu Trí tuệ nhân tạo biểu diễn tri thức (Knowledge representation) tìm kiếm (Search) Ở xét đến mối quan tâm thứ hai tìm kiếm Đối với Game thuộc dạng bảng cờ vua, cờ tướng, cờ caro,… Thì việc tìm kiếm bước tốt để chiến thắng vấn đề mấu chốt, tìm kiếm kỹ thuật giải vấn đề theo cách khảo sát có hệ thống không gian trạng thái toán (Problem state), tức giai đoạn có chọn lựa trình giải vấn đề Ngay từ thời kỳ đầu việc nghiên cứu vấn đề tìm kiếm không gian trạng thái, người ta tiến hành nhiều thử nghiệm cách sử dụng trò chơi thông dụng có bàn cờ cờ đam (Checker), cờ vua trò đố 15 ô (15 Puzzule) Hầu hết trò chơi sử dụng tập hợp luật chơi xác định rõ ràng Điều làm cho việc phát sinh không gian tìm kiếm trở nên dễ dàng giải phóng nhiều nghiên cứu khỏi mơ hồ phức tạp vốn có toán cấu trúc Hình dạng bàn cờ sử dụng trò chơi dễ dàng biểu diễn vào máy tính, không đòi hỏi hình thức khó hiểu cần thiết để nắm bắt tinh tế ngữ nghĩa lĩnh vực toán phức tạp Các kỹ thuật tìm kiếm 3.1 Tìm kiếm thông tin Giải thuật tìm kiếm thông tin giải thuật không tính đến chất cụ thể toán Khi đó, giải thuật dạng cài đặt tổng quát, cài đặt sử dụng diện rộng toán (do sử dụng trừu tượng hóa) Nhược điểm giải thuật phần lớn không gian tìm kiếm có kích thước lớn, trình tìm kiếm (đặc biệt tìm kiếm theo cây) cần khoảng thời gian đáng kể cho ví dụ nhỏ Do đó, để tăng tốc độ trình tìm kiếm, dùng giải thuật tìm kiếm có thông tin 3.1.1 Tìm kiếm danh sách Có lẽ giải thuật tìm kiếm danh sách loại giải thuật tìm kiếm Mục đích tìm tập hợp phần tử chứa khóa Thuật toán đơn giản tìm kiếm tuyến tính Thuật toán kiểm tra phần tử danh sách theo thứ tự danh sách Nó có thời gian chạy lớn O(n), n số phần tử danh sách, sử dụng thẳng cho danh sách mà không cần tiền xử lý Tìm kiếm nhị phân thuật toán cao cấp với thời gian chạy O(log n) Đối với danh sách lớn, thuật toán tốt hẳn tìm kiếm tuyến tính, đòi hỏi danh sách phải xếp từ trước đòi hỏi khả truy nhập ngẫu nhiên (Random access) Tìm kiếm nội suy (Interpolation search) tốt tìm kiếm nhị phân danh sách lớn với phân bố gần Giải thuật Grover thuật toán lượng tử cho phép tăng tốc độ gấp lần so với tìm kiếm tuyến tính truyền thống danh sách chưa xếp Bảng băm (Hash table) dùng cho tìm kiếm danh sách Nó đòi hỏi thời gian số trường hợp trung bình, lại cần nhiều phụ phí không gian nhớ thời gian chạy O(n) cho trường hợp xấu Một phương pháp tìm kiếm khác dựa cấu trúc liệu chuyên biệt sử dụng tìm kiếm nhị phân cân (Self-balancing binary search tree) đòi hỏi thời gian chạy O(log n), giải thuật loại coi mở rộng tư tưởng tìm kiếm nhị phân phép chèn xóa nhanh Đa số giải thuật tìm kiếm danh sách, chẳng hạn tìm kiếm tuyến tính, tìm kiếm nhị phân, tìm kiếm nhị phân cân bằng, mở rộng với chút chi phí bổ sung để tìm tất giá trị nhỏ lớn khóa cho trước - phép toán gọi tìm kiếm khoảng (Range search) 3.1.2 Tìm kiếm Tìm kiếm trung tâm kỹ thuật tìm kiếm Các thuật toán tìm kiếm gồm nút, tường minh xây dựng dần trình tìm kiếm Nguyên lý tìm kiếm là: Một nút lấy từ cấu trúc liệu, nút xem xét bổ sung vào cấu trúc liệu Bằng cách thao tác cấu trúc liệu này, tìm kiếm duyệt theo thứ tự khác nhau, chẳng hạn theo mức (tìm kiếm theo chiều rộng) tới nút trước quay lui (tìm kiếm theo chiều sâu) Các ví dụ khác tìm kiếm bao gồm: Tìm kiếm lặp sâu dần, tìm kiếm chiều sâu giới hạn, tìm kiếm hai chiều tìm kiếm chi phí 3.1.3 Tìm kiếm đồ thị Nhiều toán lý thuyết đồ thị giải thuật toán tìm kiếm, chẳng hạn thuật toán Dijkstra, thuật toán Kruskal, giải thuật Láng giềng gần giải thuật Prim Các thuật toán coi mở rộng thuật toán tìm kiếm 10 Thiết kế chu đáo C# cho phép bạn với tư cách người phát triển tập trung vào tác vụ xây dựng ứng dụng theo nhu cầu công việc vào kỹ thuật lắt léo ngôn ngữ lập trình 2.2 Những mạnh ngôn ngữ C# Nhiều người tin không cần thiết có ngôn ngữ lập trình Java, C++, Perl, Microsoft Visual Basic, ngôn ngữ khác nghĩ cung cấp tất chức cần thiết Ngôn ngữ C# ngôn ngữ dẫn xuất từ C C++, tạo từ tảng phát triển Microsoft bắt đầu với công việc C C++ thêm vào đặc tính để làm cho ngôn ngữ dễ sử dụng Trong số đặc tính giống với đặc tính có ngôn ngữ Java Không dừng lại đó, Microsoft đưa số mục đích xây dựng ngôn ngữ Những mục đích được tóm tắt sau: C# ngôn ngữ đơn giản C# loại bỏ vài phức tạp rối rắm ngôn ngữ Java C++, bao gồm việc loại bỏ macro, template, đa kế thừa, lớp sở ảo (virtual base class) Chúng nguyên nhân gây nhầm lẫn hay dẫn đến vấn đề cho người phát triển C++ Ngôn ngữ C# đơn giản dựa tảng C C++ Nếu thân thiện với C C++ chí Java, thấy C# giống diện mạo, cú pháp, biểu thức, toán tử chức khác lấy trực tiếp từ ngôn ngữ C C++, cải tiến để làm cho ngôn ngữ đơn giản Một vài cải tiến loại bỏ dư thừa, thêm vào cú pháp thay đổi Trong C#, chúng thay với toán tử gọi (dot) Đối với người học điều việc cải tiến khác làm bớt nhầm lẫn đơn giản 62 C# ngôn ngữ đại Điều làm cho ngôn ngữ đại? Những đặc tính xử lý ngoại lệ, thu gom nhớ tự động, kiểu liệu mở rộng, bảo mật mã nguồn đặc tính mong đợi ngôn ngữ đại C# chứa tất đặc tính Nếu người học lập trình cảm thấy đặc tính phức tạp khó hiểu Con trỏ tích hợp vào ngôn ngữ C++ Chúng nguyên nhân gây rắc rối ngôn ngữ C# loại bỏ phức tạp rắc rối phát sinh trỏ.Trong C#, thu gom nhớ tự động kiểu liệu an toàn tích hợp vào ngôn ngữ, loại bỏ vấn đề rắc rối C++ C# ngôn ngữ hướng đối tượng Những đặc điểm ngôn ngữ hướng đối tượng (Object-oriented language) đóng gói (encapsulation), kế thừa (inheritance), đa hình (polymorphism) C# hỗ trợ tất đặc tính C# ngôn ngữ mạnh mẽ mềm dẻo Như đề cập trước, với ngôn ngữ C# bị giới hạn thân trí tưởng tượng Ngôn ngữ không đặt ràng buộc lên việc làm C# sử dụng cho nhiều dự án khác tạo ứng dụng xử lý văn bản, ứng dụng đồ họa, tính, hay trình biên dịch cho ngôn ngữ khác C# ngôn ngữ từ khóa C# ngôn ngữ sử dụng giới hạn từ khóa Phần lớn từ khóa sử dụng để mô tả thông tin Chúng ta nghĩ ngôn ngữ có nhiều từ khóa mạnh Điều thật, trường hợp ngôn ngữ C#, tìm thấy ngôn ngữ sử dụng để làm nhiệm vụ 63 C# ngôn ngữ hướng module Mã nguồn C# viết phần gọi lớp, lớp chứa phương thức thành viên Những lớp phương thức sử dụng lại ứng dụng hay chương trình khác Bằng cách truyền mẫu thông tin đến lớp hay phương thức tạo mã nguồn dùng lại có hiệu C# ngôn ngữ phổ biến C# ngôn ngữ lập trình Nhưng ngôn ngữ có số lý để trở thành ngôn ngữ phổ biến Một lý Microsoft cam kết NET Microsoft muốn ngôn ngữ C# trở nên phổ biến Mặc dù công ty làm sản phẩm trở nên phổ biến, hỗ trợ Cách không lâu, Microsoft gặp thất bại hệ điều hành Microsoft Bob Mặc dù Microsoft muốn Bob trở nên phổ biến thất bại C# thay tốt để đem đến thành công so với Bob Thật người công ty Microsoft sử dụng Bob công việc ngày họ Tuy nhên,với C# khác, sử dụng Microsoft Nhiều sản phẩm công ty chuyển đổi viết lại C# Bằng cách sử dụng ngôn ngữ Microsoft xác nhận khả C# cần thiết cho người lập trình 2.3 Các bước chuẩn bị cho chương trình Thông thường, việc phát triển phần mềm, người phát triển phải tuân thủ theo quy trình phát triển phần mềm cách nghiêm ngặt quy trình chuẩn hóa Tuy nhiên phạm vi tìm hiểu ngôn ngữ viết chương trình nhỏ không đòi hỏi khắt khe việc thực theo quy trình Khi tạo chương trình ứng dụng C# hay ngôn ngữ nào, nên theo bước sau: 64 Xác định mục tiêu chương trình Xác định phương pháp giải vấn đề Tạo chương trình để giải vấn đề Thực thi chương trình để xem kết C# ngôn ngữ đại, C# có đặc tính xử lý ngoại lệ, thu gom nhớ động, kiểu liệu mở rộng, cách quản lý đối tượng lớp thông minh, tính bảo mật mã nguồn đặc tính mong đợi ngôn ngữ đại Với đặc điểm C# em định chọn ngôn ngữ C# để thực đề tài 65 Chương Cài đặt chương trình 1.Giao diện chương trình Hình 1.1 Giao diện chương trình Đây giao diện chương trình Tại người chơi lựa chọn chức phần quản lý trò chơi, loại trò chơi thông tin Các chức phần quản lý trò chơi: Chức Tạo Game Chức Mở Game Chức Lưu Game Chức Lùi Lại Chức Xem quân bị ăn hai bên 66 Các chức phần loại trò chơi: Chức Người với Người Chức Người với Máy Chức Chơi Qua Mạng Các chức phần thông tin: Chức Giúp đỡ Chức Tác Giả 2.Một số chức chương trình 2.1 Tạo Game Khi người chơi lựa chọn chức này, chương trình đưa bàn cờ trở dạng mặc định hình 1.1 Từ giao diện người chơi lựa chọn loại trò chơi: Người với Người, Người với Máy, Chơi Qua Mạng để bắt đầu trò chơi 2.2 Lưu Game Chức áp dụng cho chế độ chơi người với máy Chức dùng để lưu lại thông tin ván đấu (vị trí quân bàn cờ, số quân mà bên ăn, lượt đi,…) File lưu dạng file *.xml 67 Hình 2.2.1 Lưu Game 2.3 Mở Game Chức áp dụng cho chế độ chơi người với máy Chức sử dụng để mở file lưu chức Lưu Game Khi cửa sổ Open xuất người chơi chọn file *.xml mà lưu lại 68 Hình 2.3.1 Mở Game 2.4 Chức Lùi Lại Chức áp dụng cho chế độ chơi người với máy chế độ chơi hai người máy Cho phép quay lại số bước mà hai bên 2.5 Chức xem quân bị ăn Chức áp dụng cho tất chế độ chơi Tại giao diện chương trình, trình chơi, người chơi xem quân cờ ăn đối phương quân cờ mà 69 Xem quân Trắng bị ăn: Hình 2.5.1 Quân Trắng bị ăn Xem quân Đen bị ăn: Hình 2.5.2 Quân Đen bị ăn 2.6 Chức Người với Người Chức cho phép hai người chơi máy tính 2.7 Chức Người với Máy Chức cho phép Người chơi với Máy Máy tính toán để đưa nước cho 70 2.8 Chức Chơi Qua Mạng Chức cho phép hai người chơi với qua mạng LAN, sử dụng socket để truyền liệu Chức chơi qua mạng có thêm phần chat hai đối thủ trình đánh 2.9 Chức phong cấp cho Tốt Khi quân Tốt di chuyển đến hàng cuối người chơi chọn lựa quân như: quân Hậu, quân Mã, quân Xe, quân Tượng để phong cấp cho quân Tốt Hình 2.9.1 Phong cấp cho Tốt 71 Kết luận Do thời gian có hạn nên đề tài em không tránh khỏi thiếu sót Sau kết mà em đạt em hoàn thiện đề tài tốt thời gian tới Ưu điểm Đã tìm hiểu nghiên cứu số kỹ thuật xây dựng trò chơi dạng game bảng Chương trình có chế độ chơi với máy Chơi hai người với (trên máy), chơi mạng LAN hai người Chức Chat hai máy socket trình đánh qua mạng LAN Có thể thông tin nước đi, quân bị ăn hai người chơi Có xử lý nước cờ Vua: Phong tước: Khi tốt tới hàng cuối đối phương Nhập thành: Nhập thành xa, nhập thành gần Quân Tốt bắt đầu đi, ô theo quy định luật cờ Vua 72 Hạn chế Do thời gian hạn chế, chương trình chưa hoàn toàn tốt Một số lỗi chương trình chưa xử lý Hướng phát triển Trong thời gian tới em tiếp tục xây dựng, phát triển trò chơi cờ Vua: Trau chuốt giao diện Tăng mức độ AI máy, để máy chơi tốt Tạo thêm chức năng: Giao diện tùy biến màu sắc Chức thay đổi skin quân cờ bàn cờ Tạo WebService, cho phép người đăng ký, đăng nhập chơi với mạng Internet 73 Tài liệu tham khảo [1] Đỗ Đức Giáo, Toán rời rạc, NXB Đại học Quốc Gia Hà Nội, 2000 [2] Bùi Xuân Toại – Trương Gia Việt (Biên dịch) – Trí tuệ nhân tạo – Các cấu trúc chiến lược giải vấn đề - NXB Thống kê [3] Wikipedia – Bách khoa toàn thư mở [4] Avơbách - Kỹ thuật cờ tàn - Hội cờ Việt Nam - 1986 [5] Koplentz Cờ Vua: Chiến thuật - chiến lược học - Liên đoàn Cờ TP Hồ Chí Minh 1993 [6] Vontroc - Cờ Vua - Chiến thật - Chiến lược - NXB TP Hồ Chí Minh 1994 [7] Báck khoa toàn thư Wikipedia http://www.wikipedia.org [8] Network programming in NET with C# and Visual Basic.NET- Fiach Reid – Elsevier Digital Press [9] Nguyễn Đình Thúc - Trí tuệ nhân tạo lập trình tiến hóa – NXB Giáo Dục, 11/2002 74 Phụ lục Chương Kỹ thuật xây dựng trò chơi Hình 1.1.1 Một trò chơi bất đối xứng .7 Hình 1.2.1 Một trò chơi tổng .8 Hình 3.2.2.1 Đồ thị không gian trạng thái .16 Hình 3.2.2.2 Cây tìm kiếm Leo đồi 17 Hình 3.2.3.1 Cây tìm kiếm tốt - 19 Hình 3.3.1.1 Trò chơi Dodgem .22 Hình 3.3.1.2 Cây trò chơi Dodgem với quân Đen trước 23 Hình 3.3.2.1 Gán giá trị cho đỉnh trò chơi 24 Hình 3.3.3.1 Cắt bỏ gốc a, eval(u) > eval(v) 27 Hình 3.3.3.2 Thực giải thuật cắt tỉa alpha - beta 29 Hình 3.3.3.3 Hai biến alpha beta thu hẹp miền xem xét Lượng cắt bỏ phụ thuộc nhiều vào tốc độ thu hẹp – thu hẹp nhanh cắt bỏ nhiều 31 Chương Trò chơi cờ vua ngôn ngữ lập trình C# 33 Hình 1.4.2.1 Bàn cờ .49 Hình 1.4.2.2.1 Các loại Socket 61 Hình 1.4.2.2.2 Mô hình kết nối máy khách máy chủ .62 Hình 1.4.2.2.3 Máy chủ (Server) .63 Hình 1.4.2.2.4 Máy trạm (Client) 63 Chương Cài đặt chương trình 68 Hình 1.1 Giao diện chương trình .68 Hình 2.2.1 Lưu Game 70 75 Hình 2.3.1 Mở Game 71 Hình 2.5.1 Quân Trắng bị ăn .72 Hình 2.5.2 Quân Đen bị ăn 72 Hình 2.9.1 Phong cấp cho Tốt 73 76