Đề tài Trình thiết kế và xây dựng phần mềm hướng dẫn chơi cờ vua

Tài liệu Đề tài Trình thiết kế và xây dựng phần mềm hướng dẫn chơi cờ vua: LỜ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à khi chơ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àm mộ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úp ngườ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ện tậ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ách chơ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ế...

doc31 trang | Chia sẻ: hunglv | Lượt xem: 1427 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Trình thiết kế và xây dựng phần mềm hướng dẫn chơi cờ vua, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
LỜ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à khi chơ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àm mộ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úp ngườ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ện tậ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ách chơ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ác thế 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òn vớ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ận dụ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 được thê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ể thao trí 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 em trong 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 đạt cho 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ân thành cảm ơn! PHẦ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ủa mì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 có ích. Đây là phần mềm trợ giúp người mới chơi cờ vua cho nên nó cần phải có chức năng chính đó là làm sao giúp cho những người từ chưa biết gì về cờ vua có thể học được và chơi được cờ vua. Vì vậy bài toán đặt ra là phải xây dựng được 1 phần mềm để giải quyết được các vấn đề cơ bản sau đây: thứ nhất đó là giúp người mới chơi nhận biết được quân cờ và biết cách đi của từng quân cờ, thứ hai đó là giúp người chơi học và hiểu được luật chơi, thứ ba là biết cách xếp bàn cờ lúc ban đầu. 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ếp lạ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ác phươ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ương trì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ình giú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ờ vua thậ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àm cho một người chưa biết gì về cờ vua cũng có thể đọc và hiểu được một cách nhanh 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ả, sao cho 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 giả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 xoay quanh 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ó kinh nghiệm chơi luyện tập suy nghĩ nhanh. VI, Mục tiêu của chương trình Giúp người mới chơi nhận diện quân cờ. Giúp người mới chơi học cách đi của từng quân cờ. Giúp người mới chơi học luật chơi cờ vua. Giúp người mới chơi biết cách xếp bàn cờ (lúc ban đầu). PHẦN 2, PHÂN TÍCH CHƯƠNG TRÌNH I, Sơ đồ chức năng Phần mềm giúp người chơi cờ vua Lý thuyết Bài tập Trợ giúp 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ác phâ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. Lý thuyết Nhận biết quân cờ Cách đi từng quân cờ Luật chơi Giới thiệu bàn cờ 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ơi như 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ầu chọ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ác phươ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ờ. Liệt kê cách chơi của quân cờ. Bài tập Xem tên đoán hình Xem hình đoán tên Tập xếp bàn cờ Liệt kê cá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: Cách sử dụng phần mềm. Giới thiệu về phần mềm. Trợ giúp Cách sử dụng phần mềm Giới thiệu về phần mềm III, Phân rã các chức năng 1, Phần lý thuyết: a, Nhận biết quân cờ: Đối với một người mới chơi thì việc đầu tiên họ cần làm đó là xem cách nhận biết quân cờ. Trong phần nhận biết này sẽ có đầy đủ các quân cờ có trên một bàn cờ vua và tên đầy đủ của nó để người chơi có thể nhớ và nhận biết được một cách chính xác nhất. Sẽ có 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 được cá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 được hướ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. c, Giới thiệu bàn cờ: Ở 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ể cho riê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ủa quố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ủa mộ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ách xem 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ận sớ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ình xem đã 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ờ đó. Sau khi 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áo cho 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ầu ngườ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ếp lạ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 đúng khô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ới ngườ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ập xế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 xem bà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ười chơ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ác phươ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ấu cá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ình kiể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ông bá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 tra trí 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ờ. IV, 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ác quâ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ỗi khi 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. Form nà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ếu quâ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ều phầ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 tin tiế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ều khiển WebBrowser, điều này có nghĩa là luật chơi sẽ được thể hiện trên một trang web nhỏ, 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ười chơ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 file Text để 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ác Picture 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 Command Button. Khi người chơi click vào các Command Button này, tức là khi người chơi đã chọn mộ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 ô để đặt quâ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ện này của Picture Box sẽ có sự kiểm tra xem có chọn đúng quân cờ có thể đặt vào ô đó hay khô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 đó Picture Box 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 ra tươ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ương trì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ỗi form 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ẽ được thô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ơi khô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âu tiếp theo” để người chơi click vào và chuyển sang câu tiếp theo. 5, 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 nhau bở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ệc chuẩ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ấu cá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ắt chuỗ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ếu phươ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”. PHẦ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âu hỏ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 a, Tên tệp : Ảnh Mô tả : Dùng để lưu tên ảnh và đường dẫn của ảnh. Hợp thành : Mã ảnh Tên ảnh Đường dẫn 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 b, b, 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ờ. c, 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ờ. d, 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ờ. e, e, 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ờ. f, f, 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ờ. II, Mô hình thực thể liên kết 1, Các thực thể có trong hệ thống - Ảnh - Câu hỏi cách đi - Câu hỏi đoán tên - Câu hỏi đoán hình - Cách đi của quân cờ - Loại quân cờ. 2, Mô hình thực thể liên kết 1..* 1 1 1 1 1 1 1 1 1..* 1 Cách đi của quân cờ Ảnh Câu hỏi cách đi Câu hỏi đoán hình Câu hỏi đoán tên Loại quân cờ Sở hữu Thuộc Thuộc Thuộc Thuộc III, Mô hình quan hệ PK_MaAnh TenAnh DuongDan Ảnh FK_MaAnh NoiDung Dapan Câu hỏi cách đi PK_ID FK_MaLoai NoiDung FK_MaAnh Cách đi của quân cờ PK_MaLoai TenChiTiet Loại quân cờ PK_ID NoiDung FK_MaAnh Dapan1 Dapan2 Dapan3 Dapan4 TraLoi Câu hỏi tên PK_ID NoiDung Anh1 Anh2 Anh3 Anh4 Dapan Câu hỏi hình IV, Các bảng dữ liệu 1, Bảng câu hỏi xem hình đoán tên (tblcauhoiten): Tên trường Kiểu dữ liệu Mô tả PK_ID Autonumber Mã ID NoiDung Text Nội dung câu hỏi FK_MaAnh Text Mã ảnh của câu hỏi Dapan1 Text Đáp án 1 Dapan2 Text Đáp án 2 Dapan3 Text Đáp án 3 Dapan4 Text Đáp án 4 Traloi Text Trả lời 2, Bảng câu hỏi xem tên đoán hình (tblcauhoihinh): Tên trường Kiểu dữ liệu Mô tả PK_ID Autonumber Mã ID NoiDung Text Nội dung câu hỏi Anh1 Text Đường dẫn ảnh 1 lấy từ tblanh Anh2 Text Đường dẫn ảnh 2 lấy từ tblanh Anh3 Text Đường dẫn ảnh 3 lấy từ tblanh Anh4 Text Đường dẫn ảnh 4 lấy từ tblanh Traloi Text Trả lời 3, Bảng cách đi (tblcachdi): Tên trường Kiểu dữ liệu Mô tả PK_ID Autonumber Mã ID FK_MaLoai Text Mã loại quân cờ NoiDung Text Nội dung cách đi FK_MaAnh Text Mã ảnh 4, Bảng câu hỏi liệt kê cách đi (tblcauhoicachchoi): Tên trường Kiểu dữ liệu Mô tả PK_ID Autonumber Mã ID NoiDung Text Nội dung câu hỏi FK_MaAnh Text Mã ảnh Dapan Text Đáp án 5, Bảng loại quân cờ (tblloaiquanco): Tên trường Kiểu dữ liệu Mô tả PK_MaLoai Autonumber Mã ID TenChiTiet Text Tên chi tiết PHẦN 4, THIẾT KẾ GIAO DIỆN II, Thiết kế menu chức năng: Phần mềm giúp người mới chơi cờ vua Lý thuyết Trợ giúp Thoát Nhận biết quân cờ Học cách đi Giới thiệu bàn cờ Luật chơi Bài tập Xem hình đoán tên Xem tên đoán hình Tập xếp bàn cờ Liệt kê các phương án đi của quân cờ Cách sử dụng phần mềm Giới thiệu về phần mềm 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. Lý thuyết Bài tập Trợ giúp Thoát Phần mềm giúp người chơi cờ vua X _ 2, Cửa sổ nhận biết quân cờ Các điều khiển trên form là CommandButton, Image, Label. Nhận biết quân cờ X Ảnh quân tốt Quân tốt Ảnh quân xe Quân xe Ảnh quân mã Quân mã Ảnh quân tượng Quân tượng Ảnh quân hậu Quân hậu Ảnh quân vua Quân vua Xem cách đi Quân trắng Quân đen Đóng 3, Cửa sổ học cách đi: Form này dùng 1 điều khiển duy nhất đó là CommandButton. Học cách đi X Xem cách đi quân tốt Xem cách đi quân xe Xem cách đi quân mã Xem cách đi quân tượng Xem cách đi quân hậu Xem cách đi quân vua Đóng Khi chọn xem cách đi của 1 quân bất kì sẽ hiện ra 1 cửa sổ khác để cho người chơi xem cách đi của quân cờ đó. Form này gồm có Label, Image, CommandButton. X Nội dung cách chơi Hình ảnh minh họa Quay lại Xem tiếp Đóng Cửa sổ xem cách đi chi tiết 4, Cửa sổ xem luật chơi: Phần nội dung luật chơi được trình bày bằng 1 trang web và để lấy vào form thì ta dùng điều khiển WebBrowser. X Luật chơi Nội dung luật 5, Cửa sổ làm bài tập xem tên đoán hình: Form này gồm các điều khiển OptionButton, Label, Image, CommandButton. Xem hình đoán tên X Nội dung câu hỏi. Ảnh 1 Ảnh 2 Ảnh 3 Ảnh 4 Kiểm tra Câu tiếp theo Dừng 6, Cửa sổ làm bài tập xem hình đoán tên: Form này gồm các điều khiển OptionButton, Label, CommandButton, Image. X Nội dung câu hỏi. Đáp án 1 Đáp án 2 Đáp án 3 Đáp án 4 Kiểm tra Câu tiếp theo Dừng Xem hình đoán tên Ảnh quân cờ 7, Cửa sổ tập xếp bàn cờ: Các ô cờ là các điều khiển PictureBox, còn lại là các CommandButton. Tập xếp bàn cờ X Nút chọn quân mã đen Nút chọn quân tốt đen Nút chọn quân xe đen Nút chọn quân vua đen Nút chọn quân hậu đen Nút chọn quân tượng đen Nút chọn quân mã trắng Nút chọn quân tốt trắng Nút chọn quân xe trắng Nút chọn quân tượng trắng Nút chọn quân hậu trắng Nút chọn quân vua trắng Xếp lại bàn cờ Kiểm tra Đóng 8, Cửa sổ liệt kê các phương án đi của quân cờ: Cửa sổ này gồm có các điều khiển Image, Label, TextBox, CommandButton. Tìm các phương án đi của quân cờ Ảnh để đặt câu hỏi. Nội dung câu hỏi. Phần nhập text để trả lời… Kiểm tra Dừng Câu tiếp Làm lại X PHẦN 5, LỰA CHỌN CÔNG CỤ THIẾT KẾ VÀ MỘT SỐ GIẢI PHÁP CHO VẤN ĐỀ KỸ THUẬT KHÓ I, Lựa chọn ngôn ngữ: Đối với đề tài là “Lập trình giúp người mới học chơi cờ vua nhận biết quân cờ, cách đi của từng quân cờ.” thì ta có thể lựa chọn một trong các ngôn ngữ sau đây: Java, Visual C++, Visual Basic. Java là một ngôn ngữ hướng đối tượng, nó thường được dùng để lập trình game và lập trình phần mềm cho các thiết bị cầm tay. Cũng giống C/C++ Java cũng là một ngôn ngữ mạnh về hướng đối tượng. Tuy nhiên để có thể làm tốt bằng ngôn ngữ này cũng đòi hỏi ta phải có sự chuyên sâu và nắm vững ngôn ngữ này thì mới có thể làm được bởi vì để làm được một phần mềm nó đòi hỏi ta phải làm việc rất nhiều. Đối với chương trình của đề tài này thì giao diện chủ yếu là các dialog mà nếu ta làm bằng Java ta sẽ phải xử lý rất nhiều ví dụ như khai báo cửa sổ, khai báo các điều khiển trên cửa sổ, khai báo và viết các hàm lắng nghe và xử lý sự kiện… nói chung là tất cả đều phải viết bằng code vì vậy đòi hỏi ta phải làm việc với Java thành thạo rồi. Visual C++ cũng là một ngôn ngữ hướng đối tượng, ngôn ngữ này cũng rất mạnh bởi nó có khả năng xử lý được rất nhiều thứ thậm chí can thiệp với hệ thống máy tính. Ngôn ngữ này cũng có mấy điểm chung giống Java đó là muốn làm việc được với nó đòi hỏi phải có sự chuyên sâu và quen thuộc với nó rồi thì mới có thể vận dụng được một cách dễ dàng và đầy đủ tính ưu việt của nó. Visual C++ cũng phải khai báo tất cả những gì mà có trong chương trình, khai báo cửa sổ, khai báo các điều khiển, khai báo các hàm lắng nghe và xử lý sự kiện. Và đương nhiên tất cả đều phải tạo dựng từ những dòng code đầu tiên, vì vậy đòi hỏi ta phải thành thạo với Visual C++ thì mới có thể thực hiện tốt được. Cuối cùng đó là Visual Basic, đây là một ngôn ngữ hướng sự kiện. Ai đã từng được học Visual Basic thì cũng đều cảm thấy nó rất dễ viết và nó có chế độ Design cho phép bạn có thể thiết kể các form hay cửa sổ của chương trình một cách tiện lợi và dễ dàng nhất. “Những gì bạn nhìn thầy là những gì bạn có được” với Visual Basic thì đúng là như vậy. Đặc biết là Visual Basic lại hướng sự kiện rất tốt và chính vì vậy nó làm cho người viết rất dễ hình dung về chương trình và họ có thể dễ dàng làm những gì mà họ muốn để xử lý các sự kiện xảa do thao tác của người dùng và chương trình. Qua phân tích về các ngôn ngữ như trên em đã quyết định chọn ngôn ngữ Visual Basic, với đặc trưng dễ viết và khả năng hướng sự kiện tốt của nó. Và hơn thế nữa là do em đã làm việc quen với Visual Basic và cảm thấy khi dùng nó để thực hiện xây dựng chương trình em cảm thấy rất tự tin và có thể làm những gì mình muốn để xây dựng chương trình và hoàn thiện chương trình một cách tốt nhất.. II, Một số vấn đề kỹ thuật trong lâp trình: 1, Vấn đề thứ nhất đó là viết tiếng việt trong Visual Basic: Trong phần mềm của em có sử dụng tiếng việt cho các phần nội dung dùng để giảng dạy cho người chơi. Thì để thực hiện được điều này thì em đã dùng 1 phần mềm hỗ trợ tiếng việt tốt cho VB đó là Việt Key. Khi dùng phần mềm này thì phần nội dung của chương trình sẽ được việt hóa hoàn toàn. Tuy nhiên chỉ có một hạn chế nhỏ đó là em chưa tích hợp được bộ gõ hỗ trợ tiếng việt vào trong chương trình chính vì thế khi cài đặt vào một máy tính khác nếu không cài Việt Key thì sẽ không thể đọc được tiếng việt, vì vậy bắt buộc người sử dụng phải cái Việt Key mới có thể đọc được tiếng việt. Nhưng dù sao em cũng đã đưa được tiếng việt vào trong chương trình và khiến cho chương trình thận thiện với người dùng hơn, bởi chúng ta là người Việt Nam thì các phần mềm của người Việt nên dùng tiếng Việt, cho nên em đã có gắng để có thể đưa tiếng Việt vào chương trình một cách tốt nhất có thể. 2, Xử lý hiển thị bàn cờ: Để xử lý phần này thì em có 2 phương án đó là hiện ảnh bàn cờ hoặc là dùng các điều khiển PictureBox để làm các ô của bàn cờ. Đối với phương án hiện ảnh bàn cờ thì em thấy có ưu điểm là tiện lợi và nhanh chóng, nhưng lại có nhược điểm đó là khó có thể xác định được vị trí các ô cờ trên bàn cờ. Và điều này sẽ gây khó khăn cho ta trong phần làm bài tập xếp bàn cờ. Việc hiện ảnh bàn cờ chỉ tiện với các phần lý thuyết bởi nó chỉ là ảnh tĩnh nên ta có thể dùng ảnh để giúp cho việc thực hiện chương trình nhanh hơn và không tốn công sức. Chỉ có phần làm bài tập xếp bàn cờ nếu hiện ảnh sẽ rất khó khăn để có thể kiểm soát được các ô cờ trên bàn cờ. Vì vậy không thể chọn phương án này. Phương án thứ 2 đó là dùng các điều khiển PictureBox để làm các ô cờ của bàn cờ. Phương án này có một điểm lợi rất quan trong đó là ta có thể kiểm soát được chặt chẽ các ô cờ của bàn cờ bởi vì mỗi ô cờ là một PictureBox cho nên ta chỉ cần đặt tên cho nó là a1, b2, c3… và đồng thời ta cũng có thể dễ dàng để xác định vị trí của nó trên bàn cờ. Chính vì vậy đây là phương án khả thi và hiệu quả nhất để có thể dùng cho việc hiện bàn cờ trong phần làm bài tập hiện bàn cờ. Vì vậy em sẽ chọn phương án này. 3, Sử dụng trang HTML cho phần trợ giúp và phần lý thuyết. Phần trợ giúp và phần lý thuyết tương đối giống nhau vì nó đều có các mục các phần và ứng với mỗi mục mỗi phần đó là các nội dung chi tiết. Để thực hiện phần này thì em cũng đã có 2 phương án đó là dùng văn bản hoặc dùng 1 trang HTML để thể hiện. Đối với việc dùng văn bản thì nó ta sẽ phải viết tất cả các nội dung cần thiết ra một file word sau đó nhúng vào trong chương trình. Làm cách này có 1 điểm bất tiện đó là mội khi người sử dụng muốn xem nội dung thì sẽ phải xem từ đầu cho đến cuối hoặc nếu không thì dùng thanh cuộn để kéo và tìm phần muốn đọc, như thế sẽ rất bất tiện và không nhanh chóng. Vì vậy cách này em không chọn. Còn đối với phương án dùng trang HTML thì ta phải làm như sau, ta sẽ thiết kế một trang HTML đơn giản với nội dung cần thiết và phải có thêm 1 phần đó là mục lục, phần này là phần quan trọng nhất bởi nó chình là công cụ giúp người sử dụng có thể tìm đến nội dung mong muốn 1 cách nhanh nhất chỉ bằng 1 cú click đơn giản vào link tức là vào 1 mục nào đó nó sẽ đưa người sử dụng đến phần nội dung của mục đó, sau khi đọc xong người sử dụng sẽ ấn vào link “về đầu trang” trang web này sẽ trở lại từ đầu để người sử dụng lại có thể tìm đến các mục khác cần đọc. Trang web này sẽ được nhúng vào trong chương trình. Với cách bố trí như vậy sẽ mang đến sự tiện lợi và nhanh chóng cho người sử dụng giúp họ có thể nắm bắt thông tin 1 cách nhanh nhất. Vì vậy em sẽ chọn cách này. 4, Liên hệ giữa VB và gói ứng dụng trình duyệt web Gói ứng dụng trình duyệt web hay WebBrowser là một gói ứng dụng được tích hợp sẵn trong Visual Basic. Nó được dùng để mở một trang web ngay trong 1 ứng dụng Visual Basic. Gói ứng dụng này thường được dùng để tạo ra các trình duyệt web. Em có ý định dùng điều khiển WebBrowser để thực hiện các chức năng trợ giúp và các chức năng trong phần lý thuyết. PHỤ LỤC Các cửa sổ giao diện của chương trình 1, Cửa sổ chính 2, Cửa sổ nhận biết quân cờ 3, Cửa sổ học cách đi của quân cờ Cửa sổ xem cách đi chi tiết 4, Cửa sổ học luật chơi 5, Cửa sổ xem hình đoán tên 6, Cửa sổ xem tên đoán hình 7, Cửa sổ liệt kê cách đi của quân cờ 8, Cửa sổ tập xếp bàn cờ KẾT LUẬN Qua các bước phân tích và thiết kế để đi đến hoàn thiện chương trình, cuối cũng chương trinh cũng đã thành sản phẩm. Phần mềm được ra đời với mục đích là trợ giúp người mới học chơi cờ vua. Phần mềm sẽ cung cấp các kiến thức cần thiết chơ người mới chơi đê họ có thể học 1 cách nhanh nhất cách chơi của môn thể thao trí tuệ này. Các kiến thức bao gồm nhận biết quân cờ, học cách đi của từng quân cờ, nhận biết bàn cờ, và học luật chơi của một ván cờ vua. Sau khi đã học xong về lý thuyết chương trình cũng có những bài tập nhỏ nhằm kiểm tra lại những kiến thức mà người chơi đã nắm bắt được. Ví dụ như là xem hình ảnh quân cờ đoán tên quân cờ, xem tên quân cờ đoán hình ảnh quân cờ đó, tập xếp bàn cờ lúc đầu ván, liệt kê các phương án đi mà quân cờ có thể đi từ thế cờ đã cho. Với các bài tập đơn giản và dễ thực hiện sẽ giúp cho người chơi nhanh chóng nắm bắt được cách chơi của môn cờ vua. Với mong muốn trợ giúp cho người mới chơi cờ vua, em đã cố gắng bằng tất cả kiến thức của mình để có thể xây dựng được một chương trình trợ giúp người chơi cờ vua hiệu quả nhất. Tuy nhiên do kiến thức có hạn và hạn chế về kinh nghiệm nên em không thể tránh được những thiếu sót, vì vậy em mong nhận được sự giúp đỡ và đóng góp ý kiến của các thầy. Để chương trình của em có thể hoàn thiện hơn. Xin cảm ơn! MỤC LỤC Lời nói đầu ……………………………..…………………………………………...2 Phần 1, Tổng quan về chương trình…………………………………………………3 I, Nêu bài toán………………………………………………………………..3 II, yêu cầu của bài toán………………………………………………………3 III, Các vấn đề cần giải quyết…...…………………………………………...3 IV, Phạm vi giải quyết……………………………………………………….4 V, Mục đích của chương trình……..………………………………………...4 VI, Mục tiêu của chương trình…..…………………………………………...4 Phần 2, Phân tích chương trình……………………………………………………...5 I, Sơ đồ chức năng…………………………………………………………...5 II, Các chức năng chính……………………………………………………...5 III, Phân rã chức năng..………………………………………………………6 IV, Phân tích cách làm một số chức năng……………………………………8 Phần 3, Thiết kế cơ sở dữ liệu..……………………………………………………..10 I, Từ điển kho dữ liệu……………………………………………………….10 II, Mô hình thực thể liên kết………………………………………………...11 III, Mô hình quan hệ…………………….…………………………………..13 IV, Các bảng dữ liệu………………………………………………………...14 Phần 4, Thiết kế chương trình……………………………………………………….16 I, Thiết kế menu chức năng..………………………………………………..16 II, Thiết kế giao diện………...……………………………………………....16 Phần 5, Lựa chọn công cụ thiết kế và giải pháp cho một số vấn đề kỹ thuật khó …..22 I, Lựa chọn ngôn ngữ………………………………………………………. 22 II, Một số vấn đề kỹ thuật trong lập trình…………………………………. 22 Phụ lục……………………………………………………………………………. . 24 Kết luận……………………………………………………………………...............27 TÀI LIỆU THAM KHẢO 1, Sách Lập trình Visual Basic 6.0. Nhà xuất bản trẻ. 2, Tài liệu tìm kiếm trên mạng Internet.

Các file đính kèm theo tài liệu này:

  • doc80917.DOC