Phân tích và thiết kế phần mềm chơi game cờ vua
Trang 1LỜI NÓI ĐẦU
Cờ vua là một môn thể thao trí tuệ giúp cho người chơi phát triển trí óc và khả năng
xử lý tình hình Mỗi ván cờ là một tình huống khác nhau và đòi hỏi người chơi phải có sựsuy nghĩ nhanh nhạy và biết cách xử lý tình huống thật sáng suốt Chính vì vậy mà khichơi cờ vua người ta vừa được tập luyện sự tập trung suy nghĩ vừa được học hỏi thêm vềcách xử lý đối phó với các tình huống trong ván cờ cũng như trong cuộc sống
Chính vì những lợi ích về nhiều mặt của việc chơi cờ vua mà em đã quyết định làmmột chương trình trợ giúp và hướng dẫn người mới chơi cờ vua Với mục đích là giúpngười mới chơi tiếp cận với môn thể thao trí tuệ mới và người có kinh nghiệm chơi luyệntập suy nghĩ nhanh Để giúp người mới chơi tiếp cận với cờ vua thì trước tiên đó là dạy cho
họ nhận biết quân cờ, cách chơi và luật chơi, để cho họ có thể thuộc được quân cờ và cáchchơi Sau đó là kiểm tra trí nhớ của họ bằng cách đưa tên quân cờ rồi yêu cầu chọn hình,đưa hình quân cờ yêu cầu chọn tên, xếp bàn cờ lúc ban đầu và cuối cùng đó là đưa ra cácthế cờ và yêu cầu họ tìm tất cả các phương án đi cho 1 quân cờ được chỉ định nào đó Cònvới người đã có kinh nghiệm chơi thì sẽ chỉ đưa ra cho họ các thế cờ và để họ suy nghĩnước đi cho 1 quân cờ nào đó
Tóm lại với mục đích trợ giúp và hướng dẫn cho người chơi cờ vua, em sẽ vậndụng tất cả các kiến thức về lập trình và cờ vua hiện có cộng với những gì học hỏi đượcthêm để có thể tạo ra được phần mềm trợ giúp tốt nhất cho những người yêu môn thể thaotrí tuệ này
Tuy nhiên, em vẫn không thể tránh được những sai sót trong quá trình thiết kế vàxây dựng phần mềm, vì vậy em rất mong nhận được sự đóng góp ý kiến từ phía thầy giáo
và các bạn Em xin chân thành cảm ơn Thầy Trương Tiến Tùng đã trực tiếp hướng dẫn emtrong thời gian làm bài tập tốt nghiệp Em cũng xin cám ơn các thầy cô giáo đã truyền đạtcho em các kiến thức cần thiết để em có thể hoàn thành tốt bài tập tốt nghiệp Em xin chânthành cảm ơn!
Trang 2PHẦN 1, TỔNG QUAN VỀ CHƯƠNG TRÌNH
I, Nêu bài toán
Cờ vua là một môn thể thao trí tuệ và giúp cho người chơi phát triển được trí óc củamình Tuy nhiên, không phải ai cũng đều biết chơi ngay được mà cần phải có sự dạy vàhọc Nhưng có thể học ai đây nếu xung quanh không có ai biết chơi cờ vua Những lúc nhưthế một phần mềm trợ giúp dạy cách chơi cờ vua sẽ rất hữu ích với những ai yêu thích môn
cờ vua, muốn tìm hiểu môn cờ vua mà không có điều kiện để học hỏi tiếp cận Vì vậy một
ý tưởng xây dựng phần mềm giúp người mới chơi cờ vua là một ý tưởng không tồi và rất
II, Yêu cầu của bài toán
Nhận diện quân cờ: Cho hiện ảnh quân cờ và tên Kiểm tra trí nhớ bằng cách hiệnảnh, chọn tên Hiện tên chọn ảnh
Giới thiệu cách bố trí các quân cờ (đầu ván) Kiểm tra lại bằng cách xóa đi bắt xếplại
Cho giới thiệu nước đi của các quân cờ Cho quân cờ bất kỳ yêu cầu viết tất cả cácphương án mà quân cờ có thể đi
III, Các vấn đề cần giải quyết
Để xây dựng phần mềm giúp người mới chơi cờ vua cần giải quyết các vấn đề sauđây:
- Giao diện thân thiện dễ sử dụng Để giải quyết vấn đề này ta cần phải có con
mắt thẩm mỹ và kinh nghiệm về cách bố trí cách chức năng của một chươngtrình để có thể thiết kế một cách tiện lợi nhất các chức năng của chương trìnhgiúp người chơi có thể tiếp cận với chương trình một cách dễ dàng nhất
- Cách hướng dẫn chơi đơn gian dễ hiểu, có hình ảnh minh họa Để giải quyết
vấn đề này thì ta cần tìm kiếm các thông tin về hướng dẫn cách chơi của cờ vuathật đơn giản và dễ hiểu đặc biệt là phải có hình minh họa sao cho có thể làmcho một người chưa biết gì về cờ vua cũng có thể đọc và hiểu được một cáchnhanh nhất
- Các thông tin đưa ra phải chính xác và đầy đủ Việc tìm kiếm thông tin hướng
dẫn về cách chơi cũng cần phải đạt được các tiêu chuẩn về độ chính xác cao Vìvậy ta cần phải tổng hợp từ nhiều hướng dẫn để tìm ra cái chính xác hơn cả, saocho các thông tin mang đến người chơi là đảm bảo và giúp cho họ hiểu đúng vềcách chơi của cờ vua
- Các bài tập để kiểm tra sự hiểu biết của người chơi đối với cờ vua gần gũi và thiết thực Để giải quyết vấn đề này các bài tập đưa ra cho người chơi phải được
rút ra từ những gì mà người chơi đã nắm bắt được, các bài tập đều phải đơn
Trang 3giản dễ hiểu nhưng hiệu quả của nó phải thiết thực phải giúp được người chơi
tự kiểm tra được kiến thức của mình sau khi đã xem kĩ các phần lý thuyết, từ đó
mà người chơi sẽ nắm vững hơn cách chơi của môn cờ vua
IV, Phạm vi giải quyêt
Các vấn đề nêu trên được giải quyết trong phạm vi của chương trình và đếu xoayquanh mục đích là giúp người mới chơi tiếp cận với cờ vua
V, Mục đích của chương trình
Giúp người mới chơi tiếp cận với môn thể thao trí tuệ mới Người đã có kinhnghiệm chơi luyện tập suy nghĩ nhanh
VI, Mục tiêu của chương trình
1 Giúp người mới chơi nhận diện quân cờ
2 Giúp người mới chơi học cách đi của từng quân cờ
3 Giúp người mới chơi học luật chơi cờ vua
4 Giúp người mới chơi biết cách xếp bàn cờ (lúc ban đầu)
Trang 4PHẦN 2, PHÂN TÍCH CHƯƠNG TRÌNH
I, Sơ đồ chức năng
II, Các chức năng chính
1, Lý thuyết: Chức năng này nhằm thực hiện việc giảng dạy cách chơi và luật chơi cho
người chơi, đồng thời cũng giúp người chơi nhận biết các quân cờ Chức năng này có cácphân hệ sau:
Nhận biết quân cờ
Cách đi của từng quân cờ
Giới thiệu bàn cờ
Luật chơi
2, Bài tập: Chức năng này nhằm kiểm tra kiến thức mà người chơi đã thu nhận được sau
khi xem xong phần lý thuyết Chức năng này sẽ có các bài kiểm tra trí nhớ của người chơinhư là cho hình ảnh quân cờ và yêu cầu chọn tên, và ngược lại cho tên quân cờ yêu cầuchọn hình Xếp bàn cờ lúc ban đầu Cho các thế cờ và yêu cầu người chơi tìm ra tất cả cácphương án đi cho một quân cờ chỉ định nào đó Chức năng này gồm các phân hệ sau:
Xem hình đoán tên
Xem tên đoán hình
Xếp bàn cờ
Phần mềm giúp người chơi cờ vua
Lý thuyết
Nhận biết quân
cờ
Cách đi từng quân cờ
Luật chơiGiới thiệu bàn
cờ
Trang 5 Liệt kê cách chơi của quân cờ.
3, Trợ giúp: Chức năng này nhằm trợ giúp người dùng cách sử dụng phần mềm và các
thông tin liên quan đến phần mềm Chức năng này gồm các phân hệ sau:
2 màu quân cờ để người chơi có thể nhận biết một cách đầy đủ đó là màu đen và trắng
b, Cách chơi của từng quân cờ:
Sau khi nhận biết được một cách đầy đủ và chính xác các quân cờ, người chơi sẽtiến sang bước tiếp theo đó là xem cách chơi của từng quân cờ Ở phần này họ sẽ học đượccách chơi từng quân cơ và họ sẽ thấy được các điểm mạnh và điểm yếu của từng quân cờ,biết được quân cờ nào là quân cờ quan trọng nhất trong cả bàn cờ Mỗi quân cờ khi đượchướng dẫn về cách chơi đều có hình ảnh minh họa đi kèm, như thế sẽ giúp cho người chơi
dễ hình dung và tiếp thu một cách nhanh nhất
Tập xếp bàn cờ Liệt kê cách đi của
quân cờ
Trợ giúp
Cách sử dụng phần mềm
Giới thiệu về phần mềm
Trang 6Ở phần này người chơi sẽ được làm quen với bàn cờ Người chơi sẽ hiểu được quyước của bàn cờ, cách bố chí ô cờ Qua đó người chơi sẽ có được khái niệm của thể choriêng mình về bàn cờ để có thể thực hiện được các câu hỏi trong phần bài tập.
c, Luật chơi:
Tiếp theo người chơi sẽ được giới thiệu về luật chơi của cờ vua, luật này là luật củaquốc tế (bản gốc là bằng tiếng Anh) Luật chơi sẽ có đầy đủ cả cách chơi và luật chơi củamột ván cờ với tiêu chuẩn quốc tế Luật chơi được giới thiệu một cách rất đầy đủ và cáchxem cũng rất tiện lợi do có mục lục và người chơi chỉ cần kích vào mục cần xem là sẽđược đưa đến phần chi tiết của mục đó, với cách bố trí như vậy giúp cho người chơi có thểnắm bắt nhanh và chính xác được với luật cờ vua của quốc tế Người chơi sẽ được tiếp cậnsớm với luật quốc tế để có đủ tiền đề tham gia các giải thi đấu cờ trong nước và quốc tế khi
đã chơi thành thạo
2, Phần bài tập:
a, Xem hình đoán tên và xem tên đoán hình:
Sau khi xem phần lý thuyết xong người chơi muốn kiểm tra lại kiến thức của mìnhxem đã nắm được bao nhiêu thì người chơi sẽ thử kiểm tra trí nhớ bằng các bài kiểm trađơn giản về nhận biết quân cờ Trước tiên đó là đoán tên quân cờ Sẽ có một hình ảnh quân
cờ được hiện ra và người chơi sẽ chọn tên sao cho phù hợp với hình ảnh quân cờ đó Saukhi chọn xong phần mềm sẽ kiểm tra xem người chơi có chọn đúng không và thông báocho người chơi Cũng tương tự như vậy nhưng mà là cho tên quân cờ trước và yêu cầungười chơi chọn hình ảnh của quân cờ đó
b, Tập xếp bàn cờ:
Bài tập tiếp theo đó là xếp bàn cờ lúc ban đầu Khi chọn phần này người chơi sẽđược xem qua bàn cờ đã được xếp sẵn, sau đó người chơi kiểm tra trí nhớ bằng cách xếplại Các thao tác điều khiển quân cờ để xếp rất đơn giản và dễ sử dụng chỉ có một yêu cầuđặt ra đối với người chơi đó là sắp xếp các quân cờ trên bàn cơ sao cho đúng với chuẩn.Khi xếp xong phần mềm sẽ yêu cầu chương trình kiểm tra xem người chơi có xếp đúngkhông bằng cách ấn vào nút kiểm tra, nếu không đúng thì chương trình sẽ thông báo vớingười chơi rằng quân cờ nào đã xếp sai, nếu đúng thì cũng thông báo là đúng Với cách tậpxếp bàn cờ người chơi sẽ dễ dàng nhớ cách xếp bàn cờ và lần sau có thể không cần xembàn cờ đã xếp mà vẫn có thể xếp lại một cách chính xác
c, Liệt kê các phương án đi của quân cờ:
Bài tập tiếp theo đó là kiểm tra trí nhớ của người chơi về cách đi của các quân cờ.Chương trình sẽ đưa ra một quân cờ bất kì trong các tình huống cũng bất kì và hỏi ngườichơi hãy liệt kê tất cả các phương án mà quân cờ đó có thể đi trong thế cờ đó Tất cả cácphương án phải được liệt kê một cách chính xác cách nhau bới dấu phẩy và không có dấucách Sau khi liệt kê xong đáp án người chơi sẽ ấn nút kiểm tra để yêu cầu chương trìnhkiểm tra câu trả lời của người chơi Chương trình sẽ thực hiện việc chuẩn hóa chuỗi trả lời
mà người chơi đã nhập vào để loại bỏ dấu cách và dấu phẩy thừa sau đó sẽ thực hiện việc
so sánh với đáp án chuẩn trong cơ sở dữ liệu, nếu câu trả lời là đúng chương trình sẽ thôngbáo với người chơi là đúng, còn nếu sai chương trình sẽ thông báo là sai Với cách kiểm tratrí nhớ như vậy sẽ giúp người chơi thuộc hơn cách đi của từng quân cờ và sẽ dễ vận dụngđược vào trong từng ván cờ
Trang 7IV, Phân tích cách làm một số chức năng:
1, Chức năng xem cách đi từng quân cờ:
Để thực hiện chức năng này, em đã xây dựng một form đầu tiên để liệt kê tất cả cácquân cờ, và khi người chơi muốn xem quân cờ nào thì sẽ click và quân cờ đó để xem Mỗikhi click vào một quân cờ, một form mới nói về cách chơi của quân cờ đó sẽ hiện ra Formnày sẽ liên kết với cơ sở dữ liệu để lấy ra các thông tin về cách chơi của quân cờ đó Nếuquân cờ có nhiều thông tin về cách chơi và hình minh họa đi kèm thì em sẽ chia làm nhiềuphần ứng với số thông tin đó Và để chuyển tiếp từ thông tin này sang thông tin khác em sẽthêm vào form đó một nút “xem tiếp” để cho người chơi có thể chuyển tiếp sang thông tintiếp theo
2, Chức năng xem luật chơi:
Để thực hiện chức năng này, em đã xây dựng một form và trên form sử dụng điềukhiển WebBrowser, điều này có nghĩa là luật chơi sẽ được thể hiện trên một trang webnhỏ, trang web này sẽ được nạp vào điều khiển WebBrowser của chương trình Sở dĩ em
đã sử dụng WebBrowser để hiện luật chơi từ một trang web là vì trên trang web này sẽgiúp cho người chơi có thể tìm hiểu về luật chơi một cách tiện lợi, do có mục lục và ngườichơi thích xem mục nào thì chọn mục đó để xem sẽ rất thuận tiện, hơn là cách hiện một fileText để người chơi kéo từ đầu đến cuối Khi xem trang web thì cũng có hình ảnh minh họađầy đủ Nói chung là dùng WebBrowser sẽ tạo sự tiện lợi cho người chơi khi tìm hiểu vềluật chơi
3, Chức năng tập xếp bàn cờ:
Để thực hiện chức năng này em đã thực hiện như sau: Bàn cờ được cấu tạo từ cácPicture Box hình vuông, mỗi Picture Box sẽ được đặt tên theo ô mà nó thể hiên ví dụ a1,b2, c3 … Các quân cờ được đặt sẵn ở ngoài và được dùng làm ảnh cho các CommandButton Khi người chơi click vào các Command Button này, tức là khi người chơi đã chọnmột quân cờ sẽ có một biến dùng để đánh dấu rằng người chơi đã chọn quân cờ đó Và khi
đã chọn được quân cờ muốn xếp, việc tiếp theo mà người chơi phải làm đó là chọn ô để đặtquân cờ đó Khi đã chọn được ô để đặt quân cờ vào, người chơi chỉ việc click vào ô đó.Khi người chơi click vào ô đó tức là xảy ra sự kiện click của Picture Box, trong sự kiệnnày của Picture Box sẽ có sự kiểm tra xem có chọn đúng quân cờ có thể đặt vào ô đó haykhông, nếu không đúng thì thông báo là không thể đặt vào và thông báo cả quân cờ nào cóthể được đặt vào đó, nếu đúng thì quân cờ vừa chọn sẽ được đặt vào ô, tức là khi đó PictureBox sẽ Load ảnh vào để thể hiện lên form Việc chọn và xếp các quân cờ khác cũng diễn ratương tự như vậy Sau khi đã thực hiện xong việc xếp bàn cờ người chơi sẽ ấn vào nút
“kiểm tra”, chương trình sẽ kiểm tra từng ô một tại các vị trí cần xếp, nếu có thiếu quân cờnào thì chương trình sẽ thông báo là ô nào thiếu quân nào Ngược lại nếu đã xếp đủ chươngtrình sẽ thông báo là bạn sẽ xếp đúng
4, Chức năng làm bài tập xem hình đoán tên và xem tên đoán hình:
Hai chức năng này tương tự nhau Em đã làm hai form cho hai loại chức năng Mỗiform sẽ hiện ra câu hỏi với các nút option để chọn đáp án Các câu hỏi đều được lấy ra từ
cơ sở dữ liệu Các câu hỏi này đều thuộc dạng câu hỏi trắc nghiệm Sẽ có các phương ánđược đưa ra sẵn để người chơi chọn Khi người chơi đã chọn xong đáp án thì người chơi sẽ
ấn nút “kiểm tra” để xem rằng đáp án mình chọn có chính xác không nếu đúng thì sẽ đượcthông báo là chọn đúng và chương trình sẽ chuyển sang câu hỏi tiếp theo Nếu người chơikhông thể trả lời được câu hỏi hoặc muốn chuyển sang câu hỏi khác, sẽ có một nút “câutiếp theo” để người chơi click vào và chuyển sang câu tiếp theo
Trang 85, Chức năng làm bài tập liệt kê các phương án đi của quân cờ:
Để thực hiện chức năng này, em đã xây dựng một form trên đó hiện câu hỏi và hìnhảnh dùng để hỏi Sẽ có một TextBox để cho người chơi có thể nhập tất cả các phương án
mà người chơi nghĩ ra được từ thế cờ đã cho Các phương án đó được thể hiện là tên các ô
mà quân cờ đã cho có thể đi tới, ví dụ: a1, b2, c3 … Các phương án được liệt kê cách nhaubởi dấu phẩy và không có dấu cách Khi đã nhập xong các phương án mà quân cờ đó cóthể đi, người chơi sẽ ấn nút “kiểm tra” Trước tiên chương trình sẽ thực hiện công việcchuẩn hóa chuỗi do người chơi nhập vào TextBox, tức là bỏ đi các dấu phẩy thừa và dấucách có trong phần trả lời của người chơi, tiếp đó chương trình sẽ thực hiện công việc cắtchuỗi đã được chuẩn hóa rồi đem so sánh với đáp án có trong cơ sở dữ liệu Nếu thiếuphương án chương trình sẽ thông báo người chơi làm thiếu phương án Nếu thừa phương
án chương trình cũng sẽ báo là thừa phương án Nếu sai chương trình sẽ thông báo là đáp
án sai Người chơi sẽ sửa lại và lại ấn nút “kiểm tra” một lần nữa nếu các phương án đưa ra
là đúng rồi chương trình sẽ thông báo là “bạn đã làm đúng”
Trang 9PHẦN 3, THIẾT KẾ CƠ SỞ DỮ LIỆU
Cơ sở dữ liệu của chương trình gồm có các phần sau: đường dẫn ảnh, nội dung câuhỏi, nội dung bài giảng Nên từ đó ta thiết kế cơ sở dữ liệu như sau:
I, Từ điển kho dữ liệu
Tổ chức : Tuần tự theo mã ảnh
Các xử lý liên quan : Lấy ảnh đưa vào câu hỏi và bài giảng
Tên tệp : Câu hỏi cách đi
Mô tả : Dùng để lưu các câu hỏi tìm các phương án đi của
quân cờ Hợp thành : ID
Nội dung Đường dẫn ảnh minh họa Đáp án
Tổ chức : Tuần tự theo ID
Các xử lý liên quan : Cung cấp câu hỏi cho chức năng làm bài tập tìm
phương án đi của quân cờ
Tên tệp : Câu hỏi đoán tên
Mô tả : Dùng để lưu các câu hỏi xem hình ảnh quân cờ và
đoán tên của quân cờ đó.
Hợp thành : ID
Nội dung Đường dẫn ảnh minh họa Đáp án 1
Đáp án 2 Đáp án 3 Đáp án 4 Trả lời
Tổ chức : Tuần tự theo ID
Các xử lý liên quan : Cung cấp câu hỏi cho chức năng làm bài tập xem
hình ảnh quân cờ và đoán tên quân cờ
Trang 10- Câu hỏi cách đi
- Câu hỏi đoán tên
- Câu hỏi đoán hình
Tên tệp : Câu hỏi đoán hình
Mô tả : Dùng để lưu các câu hỏi xem tên quân cờ và đoán
hình ảnh của quân cờ đó.
Hợp thành : ID
Nội dung Ảnh 1 Ảnh 2 Ảnh 3 Ảnh 4 Trả lời
Tổ chức : Tuần tự theo ID
Các xử lý liên quan : Cung cấp câu hỏi cho chức năng làm bài tập xem
tên quân cờ và đoán hình ảnh quân cờ
Tên tệp : Cách đi của quân cờ
Mô tả : Dùng để lưu các bài giảng dạy cách đi của quân cờ
Hợp thành : ID
Mã loại quân cờ Nội dung Đường dẫn ảnh minh họa
Tổ chức : Tuần tự theo ID
Các xử lý liên quan : Cung cấp các bài giảng dạy cách đi của quân cờ
cho chức năng xem cách đi của từng quân cờ
Tên tệp : Loại quân cờ
Mô tả : Dùng để lưu mã loại và tên của quân cờ
Hợp thành : Mã loại quân cờ
Tên quân cờ
Tổ chức : Tuần tự theo ID
Các xử lý liên quan : Cung cấp mã loại quân cờ và tên quân cờ cho tệp
cách đi của quân cờ
Trang 11- Cách đi của quân cờ
1
11
11 *
Câu hỏi đoán tên
Thuộc
ThuộcThuộc
Trang 12III, Mô hình quan hệ
PK_MaAnhTenAnhDuongDanẢnh
PK_IDNoiDungAnh1Anh2Anh3Anh4DapanCâu hỏi hình
Trang 13IV, Các bảng dữ liệu
1, Bảng câu hỏi xem hình đoán tên (tblcauhoiten):
2, Bảng câu hỏi xem tên đoán hình (tblcauhoihinh):
Trang 143, Bảng cách đi (tblcachdi):
4, Bảng câu hỏi liệt kê cách đi (tblcauhoicachchoi):
5, Bảng loại quân cờ (tblloaiquanco):
Trang 15PHẦN 4, THIẾT KẾ GIAO DIỆN
II, Thiết kế menu chức năng:
III, Thiết kế giao diện:
1, Cửa sổ chính của chương trình
Cửa sổ chính của chương trình sẽ là kiểu MDIForm, và sẽ có các menu
Phần mềm giúp người mới chơi cờ vua
án đi của quân cờ
Cách sử dụng phần mềmGiới thiệu về phần mềm
Lý thuyết Bài tập Trợ giúp Thoát