Professional Documents
Culture Documents
Ta thấy rõ, trên bàn cờ, quân đen là quân đi trước, các nước đi theo thứ tự được
đánh dấu như trên.
Do thông thường quân đen được đi trước nên người chơi thấy rõ quân đen có lợi
thế hơn hẳn quân trắng. Victor Allis đã chứng minh được rằng quân đen hoàn toàn
có thể chiến thắng được dễ dàng. Và vì vậy có một số phiên bản khác nhau của trò
chơi cùng với sự thay đổi nho nhỏ trong luật chơi để nhằm giảm lợi thế của quân
đen đi. Trong đó ở Việt Nam, trò chơi cờ caro là một phiên bản như vậy với sự
tăng thêm trong luật chơi là người thắng phải có 5 quân liền nhau và không bị
chặn ở 2 đầu. Luật chơi làm cho trò chơi Gomoku trở nên phức tạp hơn và tăng
thêm sức mạnh cho quân trắng có thể dành chiến thắng.
3. Lý do chọn đề tài:
Như đã giới thiệu ở trên, Cờ caro là một trò chơi có từ lâu đời nay, hiện nay nó 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è, bọn em đã
chọn chương trình chơi cờ caro làm đề tài thực tập của mình.
Phần 2: Ngôn ngữ và cách thức sử dụng.
Các chức năng của Visual C++ như tô sáng cú pháp, IntelliSense (chức năng về tự
động hoàn thành việc viết mã) và các chức năng gỡ lỗi tiên tiến.
Ví dụ, nó cho phép gỡ lỗi từ xa sử dụng một máy tính khác và cho phép gỡ lỗi
bằng cách duyệt qua từng dòng lệnh tại một thời điểm. Chức năng "biên tập và
tiếp tục" cho phép thay đổi mã nguồn và dịch lại chương trình trong quá trình gỡ
lỗi, mà không cần phải khởi động lại chương trình đang được gỡ lỗi.
Đặc trưng biên dịch và xây dựng hệ thống, tính năng tiền biên dịch các tập tin đầu
đề (header files) và liên kết tịnh tiến (incremental link) - chỉ liên kết những phần bị
thay đổi trong quá trình xây dựng phần mềm mà không làm lại từ đầu: Những đặc
trưng về tính năng này thuyên giảm tổng thời gian biên tập, biên dịch và liên kết
chương trình phần mềm, đặc biệt đối với những đề án phần mềm lớn.
Lịch sử
Phiên bản trước của Visual C Professional Edition được gọi là Microsoft C/C++
Professional Development System. Phiên bản tương đương với Phiên bản Tiêu
chuẩn (Standard Edition) ngày nay được gọi là Microsoft QuickC.
• Visual C++ 1.0, có MFC 2.0, là phiên bản đầu tiên của Visual C++, ra đời
năm 1992, hỗ trợ cả 16-bit và 32-bit, mặc dù đây là phiên bản tiếp sau của
C/C++ 7.0.
• Visual C++ 1.5, có MFC 2.5, hỗ trợ thêm OLE 2.0 và ODBC cho MFC. Nó
nguyên chỉ là một phiên bản dùng 16-bit mà thôi và là phiên bản đầu tiên
của Visual C++ được in ấn trên CD-ROM. Phiên bản này cũng quan trọng
như phiên bản trước với hỗ trợ cho việc xây dựng phần mềm 16-bit.
• Visual C++ 2.0, có MFC 3.0, là phiên bản đầu tiên chỉ dành riêng cho 32-
bit, mặc dù vào thời điểm đó cũng có Visual C++ 1.51 (một bản cập nhật
của Visual C++ 1.5) ra đời. Các phiên bản cập nhật cho phiên bản này gồm
có: Visual C++ 2.1, ra đời cùng lúc với Visual C++ 1.52, là một bản cập
nhật khác cho Visual C++ 1.5, và 2.2.
• Visual C++ 4.0, hỗ trợ MFC 4.0, được thiết kế cho Windows 95, cũng như
Windows NT. Phiên bản cập nhật cho nó gồm có Visual C++ 4.1 và Visual
C++ 4.2, không hỗ trợ Win32s.
• Visual C++ 5.0, hỗ trợ MFC 4.21, là một bản cập nhật chính từ 4.2.
• Visual C++ 6.0, MFC 6.0, ra đời 1998, đã và đang được sử dụng rộng rãi
cho các project lớn và nhỏ.
• Visual C++ .NET 2002 (còn được gọi là Visual C++ 7.0), hỗ trợ MFC 7.0,
ra đời năm 2002, hỗ trợ kiến tạo mã trong khi liên kết (link time code
generation) và kiểm lỗi những duyệt thảo trong quá trình thi hành
(debugging runtime checks). Phiên bản này còn bao gồm các phần mở rộng
sang ngôn ngữ C++, cùng đồng thời kèm theo một giao diện người dùng
mới (phân hưởng cùng với Visual Basic và Visual C#). Đây cũng chính là
nguyên nhân tại sao Visual C++ 6.0 hiện vẫn còn được sử dụng rộng rãi.
• Visual C++ .NET 2003 (còn được gọi là Visual C++ 7.1), bao gồm MFC
7.1, đã được xuất bản trong năm 2003 và là một phiên bản nâng cấp chất
lượng lớn đối với Visual C++ .NET 2002.
• Visual C++ 2005 (Visual C++ 8.0), MFC 8.0, ra đời tháng 11 năm 2005.
Hỗ trợ C++/CLI và OpenMP. Đây là phiên bản mới nhất.
Do chương trình được xây dựng trên ngôn ngữ Visual C++ 2005 nên sau đây em
xin trình bày chi tiết về ngôn ngữ này với nền Visual C++ 2005.
The Microsoft Foundation Class Library là một nền ứng dụng để lập trình trong
Microsoft Windows. Được viết trong C++, MFC cung cấp nhiều mã cần thiết cho
việc quản lý các cửa sổ, menu, và các hộp hội thoại, biểu diễn hầu hết những chức
năng nhập vào và ra đơn giản, lưu trữ một tập các đối tượng dữ liệu ... Tất cả
những gì bạn phải làm là thêm vào ứng dụng của mình những đoạn mã đặc trưng
vào nền đó. Và được cung cấp kĩ thuật lập trình lớp C++, nên rất dễ dàng để có thể
mở rộng hoặc kế thừa những chức năng cơ bản mà nền MFC cung cấp.
Nền MFC là một bước tiến mạnh mẽ cho phép bạn có thể xây dựng dựa trên công
việc của các chuyên gia lập trình Windows. MFC giúp rút ngắn thời gian lập trình,
làm mã trở nên dễ dàng chuyển đổi hơn, cung cấp hỗ trợ vô cũng lớn mà không
làm giảm tính linh hoạt và tự do của chương trình và cung cấp truy xuất dễ dàng
cho các thành phần và công nghệ thuộc giao diện khó lập trình như công nghệ
Active, OLE, và lập trình Internet. Ngoài ra, MFC đơn giản hoá lập trình cơ sở dữ
liệu thông qua Access Objects (DAO) và Open Database Connectivity (ODBC),
lập trình mạng thông qua Windows Sockets. MFC làm cho các tính năng lập trình
như các thanh thuộc tính, xem trước khi in, thanh công cụ có thể thay đổi…trở nên
dễ dàng.
3. Phần 3: Thiết kế chương trình và giải thuật
1.1 Giải thuật xác định thắng thua cho một ván cờ:
Giải thuật được dựa trên của chương trình cờ caro cổ điển với luật chơi là xác định
một người thắng khi người đó có 5 con liên tiếp nằm trên cùng một hàng ngang,
hàng dọc hoặc đường chéo.
Ta sử dụng các giải thuật như sau để xác định:
* 5 con liên tiếp trên một hàng