Tải bản đầy đủ (.pdf) (20 trang)

Tóm tắt Luận văn tốt nghiệp Xây dựng game cờ tướng

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 (1.39 MB, 20 trang )

MỤC LỤC
CHƢƠNG 1: MỞ ĐẦU

......................................................................................... 1

1.1.

Trò chơi cờ tƣớng ....................................................................................... 1

1.2.

Mục tiêu của đề tài ...................................................................................... 4

1.3.

Yêu cầu của đề tài ....................................................................................... 4

1.4.

Nội dung luận văn ....................................................................................... 5

CHƢƠNG 2: CƠ SỞ LÝ THUYẾT........................ Error! Bookmark not defined.
2.1.

Tìm hiểu Socket ........................................ Error! Bookmark not defined.

2.2.

Giao thức TCP/IP...................................... Error! Bookmark not defined.

2.2.1



Tầng ứng dụng (Application Layer) ... Error! Bookmark not defined.

2.2.2

Tầng giao vận (Transport Layer) ........ Error! Bookmark not defined.

2.2.3

Tầng liên mạng (Internet Layer) ......... Error! Bookmark not defined.

2.2.4

Tầng giao diện mạng (Network Interface Layer)Error! Bookmark not define

2.3.

Mơ hình Client – Server............................ Error! Bookmark not defined.

2.4.

Dạng trò chơi và cây trò chơi ................... Error! Bookmark not defined.

2.5.

Vét cạn ...................................................... Error! Bookmark not defined.

2.6.

Chiến lƣợc tìm kiếm trong trị chơi .......... Error! Bookmark not defined.


2.7.

Đánh giá một thế cờ .................................. Error! Bookmark not defined.

2.8.

Thủ tục MiniMax ...................................... Error! Bookmark not defined.

2.9.

Thủ tục AlphaBeta .................................... Error! Bookmark not defined.

CHƢƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNGError! Bookmark not defined.
3.1.

THIẾT KẾ HỆ THỐNG ........................... Error! Bookmark not defined.

3.1.1

Sơ đồ usecase ...................................... Error! Bookmark not defined.

3.1.2

Sơ đồ lớp ............................................. Error! Bookmark not defined.


3.2.

ĐẶC TẢ CHỨC NĂNG ........................... Error! Bookmark not defined.


3.2.1

Các yêu cầu chức năng cơ bản ............ Error! Bookmark not defined.

3.2.2

Yêu cầu phi chức năng ........................ Error! Bookmark not defined.

3.3.

ĐẶC TẢ KỸ THUẬT .............................. Error! Bookmark not defined.

3.3.1

Kho dữ liệu (Resource) ....................... Error! Bookmark not defined.

3.3.2

Các lớp quân cờ................................... Error! Bookmark not defined.

3.3.3

Lớp Luatchoi ....................................... Error! Bookmark not defined.

3.3.4

Lớp cothedi ......................................... Error! Bookmark not defined.

3.3.5


Lớp LoadResource .............................. Error! Bookmark not defined.

3.3.6

Lớp HienThiCT ................................... Error! Bookmark not defined.

3.3.7

Lớp ServerProgram ............................. Error! Bookmark not defined.

3.3.8

Lớp ClientProgram: ............................ Error! Bookmark not defined.

3.3.9

Lớp ChessEngine ................................ Error! Bookmark not defined.

CHƢƠNG 4: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ ........................................ 6
4.1.

Kết quả thực hiện các chức năng ................................................................ 6

4.1.1

Giao diện đăng nhập ............................................................................. 6

4.1.2


Menu game ............................................................................................ 7

4.1.3

Bàn cờ: .................................................................................................. 8

4.1.4

Nhấc quân cờ đánh dấu các vị trí có thể đi: .......................................... 9

4.1.5

Kiểm tra chiếu tƣớng: ......................................................................... 10

4.1.6

Kiểm tra thắng thua: ............................................................................ 11

4.1.7

Chức năng xin thua ............................................................................. 13

4.1.8

Chức năng cầu hòa: ............................................................................. 14

4.2.

Đánh giá và nhận xét ................................................................................ 15



DANH SÁCH HÌNH VẼ
Hình 1: Bàn cờ tƣớng..............................................................................................2
Hình 2: Mơ hình bốn tầng của giao thức TCP/IP . Error! Bookmark not defined.
Hình 3: Mơ hình Client – Server .......................... Error! Bookmark not defined.
Hình 4: Hình ảnh mơ phỏng cây chƣơng trình ..... Error! Bookmark not defined.
Hình 5: Thuật tốn Mimax ................................... Error! Bookmark not defined.
Hình 6: Minh họa chiến lƣợc chơi cờ của ngƣời và chƣơng trình máy tính Error!
Bookmark not defined.
Hình 7: Thuật tốn AlphaBeta .............................. Error! Bookmark not defined.
Hình 8: Usecase tổng quát .................................... Error! Bookmark not defined.
Hình 9: Usecase chức năng chơi mạng ................. Error! Bookmark not defined.
Hình 10: Usecase chức năng chơi với máy .......... Error! Bookmark not defined.
Hình 11: Sơ đồ lớp chức năng chơi qua mạng LANError!

Bookmark

not

defined.
Hình 12: Sơ đồ lớp chức năng đánh với máy ....... Error! Bookmark not defined.
Hình 13: Thƣ mục chứa dữ liệu ............................ Error! Bookmark not defined.
Hình 14: Mơ phỏng bàn cờ tƣớng với tọa độ ....... Error! Bookmark not defined.
Hình 15: Miền xem xét nằm giữa Alpha, Beta ..... Error! Bookmark not defined.
Hình 16 Cây trị chơi minh họa cho thuật toán AlphaBetaError! Bookmark not
defined.


DANH SÁCH BẢNG BIỂU
Bảng 1: Luật đi của mỗi quân cờ ............................................................................3

Bảng 2: Một số port phổ biến ............................... Error! Bookmark not defined.
Bảng 3: Giá trị của các quân cờ ............................ Error! Bookmark not defined.
Bảng 4: So sánh hai thuật toán MiniMax và AlphaBetaError! Bookmark not
defined.


Xây dựng game Cờ tướng

CHƢƠNG 1:

MỞ ĐẦU

 Nội dung chương 1 trình bày, giới thiệu về trị chơi cờ tướng, lịch sử ra
đời, luật chơi. Phần cuối chương sẽ trình bày mục tiêu và ý nghĩa của đề
tài.
1.1.

Trò chơi cờ tƣớng

Lịch sử:
Cờ tƣớng (chữ Hán gọi là 象棋, phiên âm Hán Việt là Tượng Kỳ tức "cờ hình
tƣợng", có ngƣời cho là "cờ voi" nhƣng chữ "tƣợng" nên hiểu theo nghĩa "phỏng
theo, bắt chƣớc" hợp lí hơn nghĩa "voi"), hay cịn gọi là cờ Trung Hoa (Tiếng Anh:
Chinese Chess) vì nó đƣợc phổ biến ra thế giới từ Trung Quốc và cũng đƣợc coi là
"quốc hồn quốc túy" của nƣớc này (nhƣng theo phƣơng Tây thì nó có nguồn gốc
từ Ấn Độ), là một trị chơi trí tuệ dành cho hai ngƣời, là loại cờ đƣợc chơi phổ biến
nhất thế giới cùng với cờ vua
Cờ Tƣớng là một trong những trị chơi có thâm niên lâu đời và tồn tại bất biến
với thời gian. Đây không phải là môn giải trí đơn thuần nhƣ bao trị chơi khác, mà
nó cịn rèn luyện cho con ngƣời trí thơng minh và khả năng phán đốn. Trong cờ

Tƣớng, có những quy luật và nguyên tắc đƣợc quy định chặt chẽ, buộc ngƣời chơi
phải tuân theo để làm nên thành công của ván cờ. Trong cờ Tƣớng, ngƣời chơi phải
biết “điều binh khiển Tƣớng” và phải biết giá trị của các quân cờ để có những chiến
lƣợc phù hợp.
Bàn cờ:
Bàn cờ là một hình chữ nhật do 9 đƣờng dọc và 10 đƣờng ngang cắt nhau vng
góc tại 90 điểm hợp thành. Một khoảng trống gọi là sông (hay hà) nằm ngang giữa
bàn cờ, chia bàn cờ thành hai phần đối xứng bằng nhau. Mỗi bên có một cung
Tƣớng hình vng (Cửu cung) do 4 ô hợp thành tại các đƣờng dọc 4, 5, 6 kể từ
đƣờng ngang cuối của mỗi bên, trong 4 ô này có vẽ hai đƣờng chéo xuyên qua.
Theo quy ƣớc, khi bàn cờ đƣợc quan sát chính diện, phía dƣới sẽ là quân Trắng
(hoặc Đỏ), phía trên sẽ là quân Đen. Các đƣờng dọc bên Trắng (Đỏ) đƣợc đánh số


Xây dựng game Cờ tướng
từ 1 đến 9 từ phải qua trái. Các đƣờng dọc bên Đen đƣợc đánh số từ 9 tới 1 từ phải
qua trái.

Hình 1: Bàn cờ tƣớng

Luật chơi:
Ván cờ đƣợc tiến hành giữa hai ngƣời, một ngƣời cầm quân Trắng (hay Đỏ), một
ngƣời cầm quân Đen (hay Xanh lá cây). Mục đích của mỗi ngƣời là tìm mọi cách đi
quân trên bàn cờ theo đúng luật để chiếu bí Tƣớng (hay Sối, hoặc S) của đối
phƣơng và giành thắng lợi. Quân cờ đƣợc di chuyển theo luật sau:
Stt
1

Đối tƣợng
Tƣớng


Luật đi
Đi từng ô một, đi ngang hoặc dọc. Tƣớng luôn luôn phải
ở trong phạm vi cung và khơng đƣợc ra ngồi. “Cung”
tức là hình vng 3×3 đƣợc đánh dấu bởi lằng chéo
hình chử X.


Xây dựng game Cờ tướng
2



3

Tƣợng

4

Xe

5



6

Pháo

7


Tốt

Đi xéo 1 ô mỗi nƣớc. Sĩ luôn luôn phải ở trong cung
nhƣ con Tƣớng.
Đi chéo 2 ô (ngang 2 và dọc 2) cho mỗi nƣớc đi. Tƣợng
chỉ đƣợc phép ở một bên của bàn cờ, không đƣợc di
chuyển sang nữa bàn cờ của đối phƣơng. Nƣớc đi của
tƣợng sẽ khơng hợp lệ khi có một quân cờ nằm chặn
giữa đƣờng đi.
Đi ngang hay dọc trên bàn cờ miễn là đừng bị quân
khác cản đƣờng từ điểm đi đến điểm đến.
Đi ngang 2 ô và dọc 1 ô (hay dọc 2 ô và ngang 1 ô) cho
mỗi nƣớc đi. Nếu có quân nằm ngay bên cạnh mã và
cản đƣờng ngang 2 (hay đƣờng dọc 2), mã bị cản khơng
đƣợc đi đƣờng đó.
Đi ngang và dọc giống nhƣ xe. Điểm khác biệt là nếu
pháo muốn ăn quân, pháo phải nhảy qua đúng 1 qn
nào đó. Khi khơng ăn quân, tất cả những điểm từ chổ đi
đến chổ đến phải khơng có qn cản.
(hay Binh) đi một ơ mỗi nƣớc. Nếu chốt chƣa vƣợt qua
sơng, nó chỉ có thể đi thẳng tiến. Khi đã vƣợt sơng rồi,
chốt có thể đi ngang 1 nƣớc hay đi thẳng tiến 1 bƣớc
mỗi nƣớc.
Bảng 1: Luật đi của mỗi quân cờ

-

Ăn quân: Khi quân di chuyển đến một vị trí giử bởi quân đối phƣơng,
quân đối phƣơng bị ăn và bị lấy ra khỏi bàn cờ.


-

Chống tƣớng: Hai con tƣớng trên bàn khơng đƣợc nằm trên cùng 1 cột dọc
mà khơng có quân cản nào ở giữa. Nƣớc đi để 2 con tƣớng trong vị trí
chống tƣớng là khơng hợp lệ.

-

An tồn của tƣớng: Sau một nƣớc đi, tƣớng của bên đã đi không đƣợc để
quân đối phƣơng ăn ngay trong nƣớc tiếp. Những nƣớc để tƣớng khơng an
tồn là khơng hợp lệ.Thông thƣờng bị xử lý lổi kỹ thuật,nếu một ván cờ bị
phạm 3 lổi thì sẽ thua.

Ván cờ kết thúc khi một trong những tình huống sau:
-

Chiếu bí: Nếu một bên chiếu (bắt tƣớng), và đối thủ khơng có khả năng
đở, bên chiếu tƣớng thắng.

-

Hết nƣớc đi: Nếu bên tới phiên đi nhƣng khơng có nƣớc hợp lệ để đi, bên
đó sẽ bị thua.

-

Khi một hoặc hai bên bị phạm lỗi.



Xây dựng game Cờ tướng
1.2.

Mục tiêu của đề tài

Đề tài: “Xây dựng game cờ tƣớng ”.
Để làm đề tài này, ta cần:
-

Hiểu ngun lý hoạt động của mơ hình Client – Server trong lập trình
mạng.

-

Hiểu đƣợc kỹ thuật Socket trong Java. Cách áp dụng nó để xây dựng ứng
dụng.

-

Biết kết hợp Socket trong Java và mơ hình Client – Server để xây dựng
một ứng dụng chạy trên mơi trƣờng mạng.

-

Tìm hiểu cách một chƣơng trình máy tính có thể chơi đƣợc các trị chơi
đấu trí nhƣ cờ tƣớng, cờ vua, … Tìm hiểu về cây trị chơi và vét cạn

-

Tìm hiểu về chiến lƣợc tìm kiếm trong thể loại trị chơi đối kháng nhƣ cờ

tƣớng, cờ vua, … từ đó xây dựng và viết chƣơng trình cho thủ tục
MiniMax.

-

Cải tiến thuật toán MiniMax bằng việc xây dựng thủ tục AlphaBeta, giảm
thời gian tìm kiếm nƣớc đi của chƣơng trình.

-

Xây dựng chƣơng trình với giao diện dễ nhìn, thân thiện với ngƣời chơi và
dễ sử dụng.

1.3.

Yêu cầu của đề tài

Để triển khai xây dựng đề tài hoàn chỉnh ta phải am hiểu tổng quan, sơ lƣợc về
các mơ hình hoạt động trong môi trƣờng mạng thông dụng hiện nay cùng các cơ chế
hỗ trợ cho mơ hình đó và ngơn ngữ lập trình mạng thích hợp. Cụ thể trong đề tài đã
lựa chọn cần tìm hiểu kỹ các phần sau:
-

Tìm hiểu mơ hình Client – Server.

-

Tìm hiểu cơ chế Socket

-


Tìm hiểu kỹ thuật Socket trong Java

-

Tìm hiểu cây trị chơi, chiến lƣợc tìm kiếm trên cây.

-

Xây dựng hàm MiniMax

-

Cải thiện thủ tục MiniMax với AlphaBeta


Xây dựng game Cờ tướng
1.4.

Nội dung luận văn

Luận văn bao gồm 4 chƣơng:
Chƣơng 1: Giới thiệu tổng quan về trò chơi cờ tƣớng, mục tiêu của đề tài và yêu
cầu của đề tài.
Chƣơng 2: Trình bày, giới thiệu về mơ hình Client – Server, các giao thức và lý
thuyết trị chơi.
Chƣơng 3: Trình bày các kiến trúc trong game và giải pháp để xây dựng game.
Chƣơng 4: Kết luận và hƣớng phát triển



Xây dựng game Cờ tướng

TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
 Nội dung chương này trình bày các kết quả đạt được trong quá trình thực
hiện luận văn và hướng phát triển của đề tài.
1.5.

Kết quả thực hiện các chức năng

1.5.1 Giao diện đăng nhập


Xây dựng game Cờ tướng
1.5.2 Menu game


Xây dựng game Cờ tướng
1.5.3 Bàn cờ:
Bàn cờ ngƣời chơi:

Sau khi đăng nhập thành cơng, giao diện chính của chƣơng trình sẽ hiện lên giúp
ngƣời chơi tiếp cận với ván cờ. Ngƣời chơi nào đăng nhập trƣớc sẽ đƣợc đi trƣớc.
Tên ngƣời chơi lúc đăng nhập đƣợc hiển thị ở khung tên.


Xây dựng game Cờ tướng
1.5.4 Nhấc quân cờ đánh dấu các vị trí có thể đi:

Khi ngƣời chơi nhấc qn lên để thực hiện nƣớc, chƣơng trình sẽ hiển thị các vị
trí trên bàn cờ mà qn cờ có thể đi đƣợc, quân cờ nhấc lên sẽ đƣợc đánh dấu.



Xây dựng game Cờ tướng
1.5.5 Kiểm tra chiếu tƣớng:

Chƣơng trình sẽ kiểm tra chiếu tƣớng sau mỗi nƣớc đi, nếu có chiếu tƣớng,
chƣơng trình đƣa ra thơng báo cho cả hai ngƣời chơi. Thông báo chiếu tƣớng chỉ
hiển thị trong 2s rồi tắt để ngƣời chơi tiếp tục ván cờ.


Xây dựng game Cờ tướng
1.5.6 Kiểm tra thắng thua:
Ngƣời chơi:

Chƣơng trình sẽ kiểm tra thắng sau mỗi nƣớc đi, nếu ngƣời chơi ăn đƣợc tƣớng
của đối phƣơng sẽ thắng, chƣơng trình đƣa ra thơng báo thắng, ván cờ kết thúc.


Xây dựng game Cờ tướng

Đối phƣơng:

Chƣơng trình chỉ kiểm tra thắng nên khơi đối phƣơng thắng thì đồng thời chƣơng
trình cũng hiển thị thông báo thua đối với ngƣời chơi, ván cờ kết thúc.


Xây dựng game Cờ tướng
1.5.7 Chức năng xin thua

Khi thấy thế cờ đã thua, ngƣời chơi có thể nhấn nút xin thua, chƣơng trình đƣa ra

thơng báo thua, ván cờ kết thúc.


Xây dựng game Cờ tướng
1.5.8 Chức năng cầu hòa:
Khi đối phƣơng nhấp vào nút cầu hòa:

Khi nhận thấy ván cờ vào thế hịa, ngƣời chơi có thể nhấn nút cầu hòa để kết thúc
ván cờ với kết quả hòa. Khi nhấn nút, chƣơng trình hiển thị u cầu cầu hịa đến đối
phƣơng.


Xây dựng game Cờ tướng
Nếu ngƣời chơi chấp nhận:

Nếu ngƣời chơi chấp nhận, ván cờ kết thúc với kết quả hịa, chƣơng trình hiển thị
thơng báo hịa cho cả hai ngƣời chơi. Nếu ngƣời chơi từ chối, ván cờ sẽ tiếp tục.
1.6.

Đánh giá và nhận xét

Chƣơng trình đƣợc xây dựng tƣơng đối hoàn thiện, đáp ứng đầy đủ các yêu cầu
của đồ án, tuy chƣa thể phát triển thành một trị chơi online hồn thiện song đồ án
đã giúp củng cố và hoàn thiện kiến thức.


Xây dựng game Cờ tướng
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN

Các kết quả đạt đƣợc:

 Tìm hiểu kiến thức về lập trình mạng, mơ hình Client – Server, lý thuyết
trị chơi, kỹ thuật lập trình game2D.
 Đề tài “Xây dựng game Cờ tƣớng” đƣợc hoàn thành đúng yêu cầu và thời
gian quy định.
 Chƣơng trình đƣợc xây dựng đủ chức năng cơ bản của một game cờ tƣớng
đánh qua mạng LAN đồng thời giúp ngƣời chơi luyện tập với chƣơng
trình máy tính.
Các kết quả chƣa đạt đƣợc:
 Một số chức năng vẫn chƣa thật hoàn thiện, ở một số trƣờng hợp đặc biệt
chƣơng trình vẫn chƣa xử lý đƣợc.
 Chƣa tạo đƣợc phịng cho ngƣời chơi lựa chọn.
 Tốc độ tìm nƣớc đi của chƣơng trình máy tính chƣa đƣợc tốt.
Hƣớng phát triển:
 Tối ƣu chƣơng trình máy tính đánh cờ.
 Xây dựng phòng chơi, thêm một số chức năng trong game nhƣ hỗn nƣớc,
tính thời gian.
 Phát triển thành game Online.



×