1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo đồ án xây dựng game cờ tướng

23 237 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 2,7 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nói đến cơng nghệ thơng tin hình dung đến môi trường phát triển động vào bậc giới Nó áp dụng vào mặt đời sống, xã hội người, từ công việc việc giải trí Cùng với phát triển vượt bậc ngành công nghệ thông tin, người làm nên 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 có nhiều chương trình game đời mang tính chất giải trí mạnh mẽ thú vị, nhiên chương trình mang tính trí tuệ chưa chiếm phần lĩnh vực này.Một chương trình phải nói đến chương trình chơi cờ, đại diện “Trò chơi cờ tướng” Một loại cờ nhiều người u thích đơn giản, thú vị Chương trình viết ngơn ngữ Web API ASP.NET, ngơn ngữ có tính tượng tác mạnh với 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 thuận lợi

Trang 1

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

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

Trang 2

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ểnnă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ênnhữ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ườiyê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ìnhcủ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ànthà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

Trang 3

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

Trang 4

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 ănquâ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ànhhai 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:

Trang 6

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

Trang 7

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ênchiế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 đó

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

Trang 8

- 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

Trang 9

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

Trang 10

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

Trang 11

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

Trang 12

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

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

Trang 13

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

Trang 14

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

Trang 15

Hình 15 Quân tốt

Hình 16 Quân sĩ

Trang 16

Hình 17 Quân pháo

Hình 18 Quân xe

Trang 18

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

Trang 19

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

Trang 20

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ưathể 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

 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

Trang 21

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

Trang 22

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

Trang 23

https://dotnet.microsoft.com/apps/aspnet/apis

https://www.tutorialsteacher.com/mvc/asp.net-mvc-tutorials

2sy-book/nm-http-web.html

https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/https/configuration/12-2sy/https-12-https://nodejs.org/en/

Ngày đăng: 16/12/2021, 21:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w