You are on page 1of 26

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 Toà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 Xuân Hoà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 Toàn cũng như các bạn trong lớp, nhóm em đã cố gắng hoà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 hoà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.............................................................................19
3.3 Hướng phát triển............................................................................................19
Bảng Chia Công Việc..............................................................................................19
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 ô, quân 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 đoá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 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 vuông 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 hoàn toàn. bảy loại quân 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

Sĩ 2

Tượng 3

Xe 2

Pháo 2

2
Mã 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 ngoài “ Cung tức là hình vuông
3x3 được đánh dấu bởi lăng chéo hình chứ X

2 Sĩ Đ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 Mã Đ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 quân 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ó 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ó 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 toà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
toà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 toá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 toá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 toán tính nước đi trong quân 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à

6
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

7
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

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

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

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

10
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

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

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.

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

Hình 15 Quân tốt

Hình 16 Quân sĩ

13
Hình 17 Quân pháo

Hình 18 Quân xe

14
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

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
2.1.7 Chức năng Undo, Redo
2.1.7.1 Undo

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

17
2.1.6.2 Redo

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

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

Hình 23: 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 hoà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.

19
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

20
Bảng Chia Công Việc

Họ Tên MSSV Công Việc Phần Trăm


Công việc
Lê Hồng Công 1811063262
Trần Như Dũng 1811060113
Bùi Xuân Hoàng Hải 1811060199
Nguyễn Hoàng Anh 1811061573
Nguyễn Tiến Sỹ 1811062272
Nguyễn Quang Vinh 1811062570
Võ Thị Kim Hồng 1811060266

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

22

You might also like