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

Báo cáo đồ án 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 (2.7 MB, 23 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HỒ CHÍ MINH

BÁO CÁO ĐỒ ÁN
XÂY DỰNG GAME CỜ TƯỚNG
Ngành: Công Nghệ Thông Tin

Giảng viên hướng dẫn: Nguyễn Công Tồn
Sinh viên thực hiện:

MSSV:

Lớp:

Lê Hồng Cơng

1811063262

18DTHC2

Trần Như Dũng

1811060113

18DTHC2

Bùi Xn Hồng Hải

1811060199

18DTHC2



Nguyễn Hoàng Anh

1811061573

18DTHC2

Nguyễn Tiến Sỹ

1811062272

18DTHC2

Nguyễn Quang Vinh

1811062570

18DHTC2

Võ Kim Hồng

1811060266

18DTHC2

TP. Hồ Chí Minh, năm 2021


LỜI NĨI ĐẦU
Nói đến cơng nghệ thơng tin chúng ta hình dung ngay đến một mơi trường phát triển

năng động vào bậc nhất trên thế giới hiện nay. Nó được áp dụng vào mọi mặt đời sống,
xã hội của con người, từ cơng việc cho đến việc giải trí.
Cùng với sự phát triển vượt bậc của ngành công nghệ thông tin, con người đã làm nên
những sản phẩm hữu ích để phục vụ cho đời sống tiêu biểu phải nói đến ngành giải trí.
Hiện nay có rất nhiều chương trình game ra đời mang tính chất giải trí mạnh mẽ và thú
vị, tuy nhiên những chương trình mang tính trí tuệ vẫn chưa chiếm một phần nào đó
trong lĩnh vực này.Một trong những chương trình đó phải nói đến các chương trình chơi
cờ, đại diện đây là “Trị chơi cờ tướng”. Một trong những loại cờ được khá nhiều người
yêu thích vì đơn giản, thú vị. Chương trình được viết bằng ngôn ngữ Web API và
ASP.NET, là một trong những ngơn ngữ có tính tượng tác mạnh với những cơng cụ hỗ
trọ sẵn giúp lập trình viên phát triển ứng dụng dễ dàng nhanh chóng và thuận lợi.
Nhóm chúng em là một sinh viên với kinh nghiệm lập trình chưa có nhiều kinh nghiệm,
kiến thức cịn hạn hẹn, kỹ năng còn nhiều hạn chế nhưng nhận được sự giúp đỡ tận tình
của thầy Nguyễn Cơng Tồn cũng như các bạn trong lớp, nhóm em đã cố gắng hồn
thành đồ án. Tuy cịn nhiều thiếu xót và lỗi rất mong nhận được sự góp ý của thầy để
nhóm em hồn tiện tốt hơn nữa.
Nhóm em xin chân thành cảm ơn!

Tp. Hồ Chí Minh, Ngày 27 tháng 7 năm 2021


Mục lục
CHƯƠNG 1: TỔNG QUAN VẤN ĐỀ NGHIÊN CỨU...........................................1
1.1

Trò Chơi cờ tướng........................................................................................1

1.2

Mục tiêu chọn đề tài......................................................................................4


1.3

Yêu cầu của đồ án.........................................................................................5

CHƯƠNG 2: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ........................................5
2.1 Kết quả các chức năng.....................................................................................5
2.1.1 Giao diện chức năng ban đầu khi chạy dự án............................................5
2.1.2 Chức năng tạo phòng chơi.........................................................................6
2.1.3 Hiển thị bàn cờ và các quân cờ trên bàn cờ...............................................8
2.1.4 Hiển thị đánh cờ giữa hai người chơi khác nhau.......................................9
2.1.5 Thuật toán của các quân cờ......................................................................12
2.1.6 Chức năng chat.........................................................................................15
2.1.7 Chức năng Undo, Redo............................................................................17
2.1.8 Chức năng lưu bàn cờ..............................................................................19
2.1.9 Chức năng người đánh với máy...............................................................19
CHƯƠNG 3 : KẾT LUẬN VÀ HƯỚNG ĐI PHÁT TRIỂN.................................19
3.1 Các kết quả đạt được......................................................................................19
3.2 Các kết quả chưa đạt được.............................................................................20
3.3 Hướng phát triển............................................................................................20
DANH SÁCH HÌNH ANH…………………………………………………… ....21
TÀI LIỆU THAM KHẢO………………………………………………………...22


CHƯƠNG 1: TỔNG QUAN VẤN ĐỀ NGHIÊN CỨU
Nội dung chương 1trình bày, giới thiệu về trị chơi cường 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 (Tiếng Trung: 象棋), hay còn gọi là cờ Trung Hoa (Tiếng Trung: 中國象棋),
là một trị chơi trí tuệ dành cho hai người. Đây là loại cờ phổ biến nhất tại các nước
như Trung Quốc, Việt Nam, Đài Loan và Singapore và nằm trong cùng một thể loại cờ
với cờ vua, shogi, janggi.
Trò chơi này mô phỏng cuộc chiến giữa hai quốc gia, với mục tiêu là bắt được Tướng của
đối phương. Các đặc điểm khác biệt của cờ tướng so với các trò chơi cùng họ là: các
quân đặt ở giao điểm các đường thay vì đặt vào ơ, qn Pháo phải nhảy qua 1 quân khi ăn
quân, các khái niệm sông và cung nhằm giới hạn các quân Tướng, Sĩ và Tượng.
Cờ tướng là một trị những trị chơi có thâm niên lâu đời nhất và tồn tại bền vững theo
thời gian. Đây khơng phải khơng là mơn giải trí đơn thuần như bao trị chơi khác , mà nó
cịn trèn luyện cho người chơi trí thơng minh và khả năng phán đốn. Trong cờ Tướng,
có những quy luật và ngun tắc được quy định chặt chẽ buộc người chơi phải thuâ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 kiển
tướng” và phải biết giá trị của các quân cờ khác đễ có những chiến lược phù hợp.
Bàn cờ.
Bàn cờ là hình chữ nhật do 9 đường dọc và 10 đường ngang cắt nhau vuông góc tại 90
điểm hợp thành. Một khoảng trống gọi là sông 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 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.
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 (hoặc Xanh). Các đường dọc bên Trắng (Đỏ) được đánh số
từ 1 đến 9 từ phải qua trái. Các đường dọc bên Đen (Xanh) được đánh số từ 9 tới 1 từ
phải qua trái.
Mỗi ván cờ lúc bắt đầu phải có 32 quân cờ chia đều cho mỗi bên gồm 16 quân Trắng
(Đỏ) và 16 quân Đen (Xanh), gồm bảy loại quân. Tuy tên quân cờ của mỗi bên có thể
viết khác nhau (ký hiệu theo chữ Hán) nhưng giá trị và cách đi quân của chúng lại giống
nhau hồn tồn. bảy loại qn có ký hiệu và số lượng cho mỗi bên như sau:

1



Hình 1: Bàn cờ tướng
Ký hiệu các quân cờ:

Quân

Ký Hiệu

Số lượng

Tướng

1



2

Tượng

3

Xe

2

Pháo

2


2




2

Tốt

5

Bảng 1: Ký hiệu các quân cờ

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 đen ( 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à cờ theo đúng luật để chiếu bí Tướng ( hay Soái, hoặc Súy) của đối phương và giành
thắng lợi. Quân cờ được di chuyển theo luật sau:

STT

Đối tượng

Luật đi

1

Tướng


Đi từng ô một, đ ingang hoặc dọc. Tướn 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
3x3 được đánh dấu bởi lăng chéo hình chứ X

2



Đi xéo 1 ơ mỗi nước. Sĩ luôn luôn phải ở trong cung như tướng.

3

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

4

Xe

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

5




Đ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
3


6

Pháo

Đ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
qn, tất cả những điểm từ chổ đi đến chổ đến phải khơng có quân
cản

7

Tốt

Đi một ô mỗi nước. Nếu chuột chưa vượt qua sơng, nó chỉ có thể
đi thẳng tiến. Khi đã vượt sơng rồi, chuột có thể đi ngang 1 nước
hay đi thẳng tiến 1 bước mỗi nước.

Bảng 2: 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ữa 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 cờ không được nằm trên cùng 1 cột dọc
mà khơng có qn 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 anq ngay trong nước tiếp theo. Những nước để tướng khơng an
tồn là khơng hợp lệ. Thơng thương sẽ bị sử lý lỗi kỹ thuật, nếu một ván cờ bị
phạm 3 lỗi là thua.

Ván cờ kết thúc khi một trong những trường hợp 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ẽ thua.

-

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

1.2 Mục tiêu chọn đề tài
Đề tài “ Xây dựng game cờ tướng”
Để làm đề tài này, ta cần:

-

Hiểu nguyên lý hoạt động của mơ hình Client – Sever.

-

Hiểu được kỹ thuật ASP.NET và WEB API.

-

Biết kết hợp ứng dụng Jira, gitthub để đưa vào quản lý dự án một cách tối ưu
hiệu quả nhất.

-

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ề thuật tốn của API trong việc áp dụng
nước đi.

-

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 và cờ vua,…. Từ đó xây dựng ra một chương trình tính tốn các nước ăn
và chặn trên bàn cờ.
4


-

Xây dựng chương trình với giao diện dễ nhìn, than thiện vơi người dung và dễ

sử dụng.

1.3 Yêu cầu của đồ án
Để triển khai xây dựng đồ án 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 ASP.NET MVC thơng dụng hiện nay và cũng
như cơ chế hỗ trợ WEB API và ngơn ngữ lâp trình mạng tích hợ.Cụ thể trong đề tài
này đã lựa chọn cần tìm hiểu về các kỹ thuật sau:
-

Tìm hiểu về mơ hình hoạt động Client – Sever

-

Tìm hiểu về kỹ thuật lập trình trên ASP.NET MVC5

-

Tìm hiểu cơng nghệ hỗ trợ như : HTML, CSS, JS, JSON, Ajax, Web API,….

-

Các điều kiển dữ liệu ( controller).

-

Tìm hiểu các thuật tốn tính nước đi trong qn cờ.

-

Triển khai và áp dụng AI vào đánh cờ.


-

Tìm hiểu và làm Undo, Redo trong dự án

-

Cách thức load bàn cờ lên trên web và triển khai lưu bàn cờ.

-

Thực hiện chức năng chat giữa hai người cùng chơi.

-

Tạo ra những phòng chơi.

CHƯƠNG 2: 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 đồ án và
hướng phát triển của đồ án.

2.1 Kết quả các chức năng
2.1.1 Giao diện chức năng ban đầu khi chạy dự án

5


Hình 2: Giao diện ban đầu của bàn cờ
Sau khi khởi động xong CSDL và chạy Index trong view bảng tạo phịng chơi cho người
chơi có thể tạo phịng hoặc có thể xem danh sách các phịng chơi để tham gia vào trực

tiếp.
2.1.2 Chức năng tạo phòng chơi
Một trong những chức năng mà

Hình 3. Chức năng tạo phịng chơi

Hình 4. Giao diện các phòng chơi khi bấm vào button tạo phòng
6


Hình 5. Tạo classroom để hiển thị danh sách phịng chơi
2.1.3 Hiển thị bàn cờ và các quân cờ trên bàn cờ
Bàn cờ người chơi:

Hình 6. Hiển thị bàn cờ trên web
7


Sau khi tạo bàn cờ xong thì tên người chơi sẽ hiển thị bên góc trái màn hình.Giao diện
này giúp người chơi dễ phân biệt được khi đánh cơ, và tiếp cận dễ dàng hơn với bàn
cờ.Người chơi nào đăng nhập trước thì sẽ đi trước trong nước đi, Tên người chơi lúc
đăng nhập được hiển thị ở trên khung.
2.1.4 Hiển thị đánh cờ giữa hai người chơi khác nhau.

Hình 7. Người chơi cờ 1
Người chơi 1 có mã người chơi là IP8Q9UKN đăng nhập trước gửi đường link cho một
bạn khác qua link để người chơi 2 là 1OL91TC1 có thể chơi cùng trên 1 Sever. Và hiển
thị được những bước đi mà hai người cùng đánh.

8



Hình 8. Người chơi 2

Hình 9. Người chơi 1 đi nước cờ đầu tiên

9


Như đã nói từ đầu thì người chơi 1 đăng nhập trước đo đó đi trước quân. Người chơi 1 sẽ
điều kiển quân đen và di chuyển quân mã đầu tiên lên 1 ô. Sau khi kết thúc lượt đi của
mình thì nước đi của người chơi 1 sẽ hiển thị nước đi bên người chơi 2.

Hình 10. Người chơi 2 đã nhận được nước đi của người chơi 1

Hình 11. Người chơi 2 di chuyển nước đi

10


Hình 13. Nước đi của người chơi 2 hiển thị trên bàn cờ máy người chơi 1

2.1.5 Thuật toán của các quân cờ.
Để hiển thị được nước đi của các quân cờ trên bàn thì phần code của những quân cờ là
phần thiết yếu để hiển thị được các nước đi để khi người chơi tác động trực tiếp vào.

Hình 14 Quân chủ Tướng

11



Hình 15 Quân tốt

Hình 16 Quân sĩ

12


Hình 17 Quân pháo

Hình 18 Quân xe

13


Hình 19 Quân mã
2.1.6 Chức năng chat

Hình 20 Người chơi 1 gửi thông tin chat cho người chơi máy 2
14


Hình 21 Người chơi 2 nhận được thơng tin và phản hồi lại cho người chơi 1
2.1.7 Chức năng Undo, Redo
2.1.7.1 Undo

15


Hình 22 Hình ảnh nước đi của quân pháo trước và sau khi undo

2.1.6.2 Redo

Hình 23: Hình ảnh nước đi quân tốt trước và sau khi redo
16


2.1.8 Chức năng lưu bàn cờ

Hình 24: Hình ảnh bàn cờ được lưu lại
2.1.9 Chức năng người đánh với máy
2.2 Đánh giá và nhận xét
Chương trình được xây dựng tương đối hoàn, đáp ứng được nhu 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 nhưng kiến thức.

CHƯƠNG 3 : KẾT LUẬN VÀ HƯỚNG ĐI PHÁT TRIỂN
3.1 Các kết quả đạt được


Tìm hiểu về kiến thức lập trình vơi mơ hình MVC, API và thuật toán Json trong
việc xây dựng đường đi cho quân cờ.
 Đề tài “ Xây dựng game cờ tướng” được hoàn thành đúng thời gian tiến độ yêu
cầu thời gian quy định.
 Chương trình được Xây dựng gần như đủ chức năng của một game cờ tướng đánh
cờ qua giữ Client và Sever, đồng thời giúp người chơi luyện tập được cách chơi cờ
bằng bằng AI chơi cờ.
 Học được cách quản lý dự án qua Jira phân công việc cụ thể trên Github và tiếp
thu được nhiều công nghệ mới từ môn học quản lý dự án công nghệ thông tin.

17



3.2 Các kết quả chưa đạt được
 Một số chức năng vẫn chưa 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.
 Tốc độ tìm kiếm nước đi của máy chưa được nhanh

3.3 Hướng phát triển
 Tối ưu hóa nước đi của quân cờ
 Thêm một số chức năng mới hỗ trợ trò chơi
 Xây dựng thành một game online hoàn chỉnh

18


DANH MỤC HÌNH ẢNH
Hình 1: Bàn cờ tướng……….. ………………………………………………………….2
Hình 2: Giao diện ban đầu của bàn cờ………………………………………………….6
Hình 3. Chức năng tạo phịng chơi………………………………………………….......7
Hình 4. Giao diện các phịng chơi khi bấm vào button tạo phịng……………………7
Hình 5. Tạo classroom để hiển thị danh sách phịng chơi……………………………..8
Hình 6. Hiển thị bàn cờ trên web………………………………………………………8
Hình 7. Người chơi cờ 1…………………………………………………………………9
Hình 8. Người chơi 2…………………………………………………………………...10
Hình 9. Người chơi 1 đi nước cờ đầu tiên…………………………………………......10
Hình 10. Người chơi 2 đã nhận được nước đi của người chơi……………………….11
Hình 11. Người chơi 2 di chuyển nước đi…………………………………………......12
Hình 13. Nước đi của người chơi 2 hiển thị trên bàn cờ máy người chơi 1………....12
Hình 14. Quân chủ Tướng……………………………………………...……………...13
Hình 15. Quân tốt………………………………………………………..……………..13

Hình 16. Quân sĩ………………………………………………………..………………13
Hình 17. Quân pháo……………………………………………………..……………..14
Hình 18. Quân xe ………………………………………………………...…………….14
Hình 19. Quân mã……………………………………………………………..……….15
Hình 20. Người chơi 1 gửi thơng tin chat cho người chơi máy 2………………..…..15
Hình 21. Người chơi 2 nhận được thông tin và phản hồi lại cho người chơi 1……...16
Hình 22. Hình ảnh nước đi của quân xe trước và sau khi undo……………..……..17
Hình 23. Hình ảnh nước đi quân tốt trước và sau khi redo…………………..……18
Hình 24. Hình ảnh bàn cờ được lưu lại………………………………………..d…….19

TÀI LIỆU THAM KHẢO
.
19


/> /> /> /> />
20



×