Tải bản đầy đủ (.doc) (30 trang)

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ờ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (526.36 KB, 30 trang )

CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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!

-1-



CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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

-2-



CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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
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).

-3-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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ờ

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ơ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.

-4-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688



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ờ:

-5-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

Ở 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ờ.

-6-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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.


-7-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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”.

-8-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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
Mô tả
Hợp thành
Tổ chức
Các xử lý liên quan
b,

: Ảnh
: Dùng để lưu tên ảnh và đường dẫn của ảnh.
: Mã ảnh
Tên ảnh
Đường dẫn
: Tuần tự theo mã ảnh
: Lấy ảnh đưa vào câu hỏi và bài giảng

b,
Tên tệp
Mô tả
Hợp thành
c,
Tổ chức
Các xử lý liên quan

: Câu hỏi cách đi
: Dùng để lưu các câu hỏi tìm các phương án đi của
quân cờ .
: ID
Nội dung
Đường dẫn ảnh minh họa

Đáp án
: Tuần tự theo ID
: 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,
Tên tệp
Mô tả
Hợp thành

Tổ chức
Các xử lý liên quan

: Câu hỏi đoán tên
: 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ờ đó.
: 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
: Tuần tự theo ID
: 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ờ.

-9-



CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

d,
Tên tệp
Mô tả
Hợp thành

Tổ chức
Các xử lý liên quan
e,

: Câu hỏi đoán hình
: 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ờ đó.
: ID
Nội dung
Ảnh 1
Ảnh 2
Ảnh 3
Ảnh 4
Trả lời
: Tuần tự theo ID
: 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,
Tên tệp
Mô tả
Hợp thành


Tổ chức
f,Các xử lý liên quan

: Cách đi của quân cờ
: Dùng để lưu các bài giảng dạy cách đi của quân cờ.
: ID
Mã loại quân cờ
Nội dung
Đường dẫn ảnh minh họa
: Tuần tự theo ID
: 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,
Tên tệp
Mô tả
Hợp thành
Tổ chức
Các xử lý liên quan

: Loại quân cờ
: Dùng để lưu mã loại và tên của quân cờ.
: Mã loại quân cờ
Tên quân cờ
: Tuần tự theo ID
: 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
-10-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

- Cách đi của quân cờ
- Loại quân cờ.
2, Mô hình thực thể liên kết
Cách đi của
quân cờ

1

1..*

Sở
hữu
1
1
Loại quân
cờ

Câu hỏi
cách đi


Câu hỏi
đoán hình

Thuộ
c

1
Ảnh

1..*
Thuộ
c
1
1

1
Thuộ
c

1

Thuộ
c

-11-

1
Câu hỏi
đoán tên



CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

III, Mô hình quan hệ

Câu hỏi cách đi

Câu hỏi tên

FK_MaAnh
NoiDung
Dapan

PK_ID
NoiDung
FK_MaAnh
Dapan1
Dapan2
Dapan3
Dapan4
TraLoi
Ảnh
PK_MaAnh
TenAnh
DuongDan

Cách đi của quân cờ
Câu hỏi hình

PK_ID

FK_MaLoai
NoiDung
FK_MaAnh

PK_ID
NoiDung
Anh1
Anh2
Anh3
Anh4
Dapan

Loại quân cờ
PK_MaLoai
TenChiTiet

-12-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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

-13-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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

-14-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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

Bài tập

Trợ giúp

Thoát

Nhận biết quân cờ

Xem hình đoán tên

Cách sử dụng phần mềm


Học cách đi

Xem tên đoán hình

Giới thiệu về phần mềm

Giới thiệu bàn cờ

Tập xếp bàn cờ

Luật chơi

Liệt kê các phương
án đi của quân cờ

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 chơi cờ vua
Lý thuyết

Bài tập

Trợ giúp

_
Thoát

-15-


X


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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

Ảnh quân xe

Ảnh quân mã

Quân tốt

Quân xe

Quân mã

Ảnh quân
tượng

Ảnh quân
hậu


Ảnh quân
vua

Quân tượng

Quân hậu

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

-16-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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.
Cửa sổ xem cách đi chi tiết
Nội dung cách chơi

Quay lại

X
Hình ảnh minh họa


Xem tiếp

Đóng

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.
Luật chơi

X

Nội dung luật

-17-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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.
Xem hình đoán tên

X
Ảnh quân cờ

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


-18-

Dừng


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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ếp lại bàn
cờ

X

Kiểm tra

Đóng

-19-

Nút chọn
quân mã
đen

Nút chọn
quân tốt
đen


Nút chọn
quân tượng
đen

Nút chọn
quân xe đen

Nút chọn
quân hậu
đen

Nút chọn
quân vua
đen

Nút chọn
quân hậu
trắng

Nút chọn
quân vua
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 mã
trắng

Nút chọn
quân tốt
trắng


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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ờ

X

Ảnh để đặt câu hỏi.

Nội dung câu hỏi.

Phần nhập text để trả lời…

Kiểm tra

Làm lại

Câu tiếp


-20-

Dừng


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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..

-21-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688


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.

-22-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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.


-23-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

PHỤ LỤC
Các cửa sổ giao diện của chương trình
1, Cửa sổ chính

-24-


CH sè 11 - B1 - §H KTQD Chuyªn Photocopy - §¸nh m¸y - In LuËn v¨n, TiÓu luËn : 6.280.688

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

-25-


×