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

Lập trình hướng Đối tượng tên Đề tài trò chơi cờ vua

15 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 15
Dung lượng 1,54 MB

Nội dung

Trò chơi cờ vua là một trò chơi chiến thuật cổ điển, trong đó hai người chơi thay phiên di chuyển các quân cờ trên một bảng ô vuông được chia thành 64 ô.. Điều này bao gồm kiểm tra xem q

Trang 1

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG THƯƠNG

KHOA CÔNG NGHỆ THÔNG TIN

-o0o LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

TÊN ĐỀ TÀI: TRÒ CHƠI CỜ VUA

NHÓM: Chess

Thành phố Hồ Chí Minh, 23 tháng 04 năm 2024

Trang 2

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG THƯƠNG

KHOA CÔNG NGHỆ THÔNG TIN

-o0o TÊN ĐỀ TÀI: TRÒ CHƠI CỜ VUA

Nhóm: Chess

Trưởng nhóm: Nguyễn PhúcVĩnh Nguyên

Thành viên:

Võ Nhật Ngân

Trần Huỳnh Phụng Quyên

Giảng viên hướng dẫn: Bùi Công Danh

Thành phố Hồ Chí Minh, 23 tháng 04 năm 2024

Trang 3

MỤC LỤC

PHẦN 1: MỞ ĐẦU

1 Tổng quan về đề tài 2

2 Phạm vi đồ án 2

PHẦN 2: NỘI DUNG

1 PHÂN TÍCH ĐỀ TÀI 2

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

1.2 Chức Năng 3

1.2.1 Chức Năng Đăng Nhập 3

1.2.2 Chức Năng Đăng Ký 3

1.2.3 Chương Trình Chính 4

1.2.4 Sự Kiện Nhập Thành 4

1.2.5 Sự kiện Phong Hiệu 4

1.2.6 Sự kiện bị chiếu hoặc hết nước đi 4

1.3 XÁC ĐỊNH ĐỐI TƯỢNG, LỚP 5

1.3.1 Đối tượng 5

1.3.2 Các lớp đối tượng 5

2 SƠ ĐỒ LỚP ĐỐI TƯỢNG 9

2.1 Sơ đồ 9

3 Các Nguyên Lý Hướng Đối Tượng 10

4 Các Cấu Trúc Dữ Liệu 10

5 Đọc, ghi đối tượng vào file Xml 11

PHẦN 3: KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN

1 Kết Luận 12

2 Định Hướng Phát Triển 12

PHẦN 4: TÀI LIỆU THAM KHẢO

Trang 4

PHẦN 1: MỞ ĐẦU

1 Tổng quan về đề tài

Trò chơi cờ vua đã trải qua sự phát triển và tiến hóa qua các thời kỳ và địa điểm khác nhau Quy tắc và kiểu quân cờ đã thay đổi và được điều chỉnh theo thời gian, tạo nên các biến thể cờ vua riêng biệt như chúng ta biết ngày nay Trò chơi cờ vua hiện đại đã được hình thành vào đầu thế kỷ

19, và từ đó trở thành một trong những trò chơi phổ biến nhất trên thế giới

Cờ vua đã trở thành một môn thể thao và một trò chơi có giá trị văn hóa sâu sắc Nó được chơi ở mọi quốc gia trên thế giới, với các giải đấu chuyên nghiệp và sự quan tâm rộng rãi từ cộng đồng chơi cờ Cờ vua cũng đã trở thành một môn học quan trọng trong lĩnh vực chiến thuật, suy luận và tư duy logic

Trò chơi cờ vua là một trò chơi chiến thuật cổ điển, trong đó hai người chơi thay phiên di chuyển các quân cờ trên một bảng ô vuông được chia thành 64 ô Mục tiêu của trò chơi là chiếu bí quân vua của đối phương

2 Phạm vi đồ án

Chương trình này được tạo ra nhằm mục đích cho người dùng có thể sử dụng để chơi cờ vua Với phần xử lý các nước đi đã hợp lệ với luật cờ vua

cơ bản hiện hành

PHẦN 2: NỘI DUNG

1 PHÂN TÍCH ĐỀ TÀI

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

Bảng cờ: Tạo ra một bảng ô vuông có kích thước 8x8 để đại diện cho bàn cờ Mỗi ô có thể chứa một quân cờ hoặc trống

Quân cờ: Xác định các loại quân cờ trong cờ vua như vua (King), hậu (Queen), xe (Rook), tượng (Bishop), mã (Knight) và tốt (Pawn) Mỗi quân

cờ có các quy tắc di chuyển và tấn công riêng

Người chơi: Sẽ có hai người chơi trắng và đen Khi tới lượt đi thì con trỏ chuyển về màu của người chơi và người chơi chọn vào quân cờ của mình

để di chuyển đến vị trí mới

2

Trang 5

Xác định tính hợp lệ của nước đi: Kiểm tra tính hợp lệ của nước đi dựa trên quy tắc di chuyển của từng quân cờ Điều này bao gồm kiểm tra xem quân cờ có thể di chuyển đến ô nào trong bàn và xem có bất kỳ sự cản trở của các quân cờ cùng màu, ăn quân các quân khác màu, che chắn cho tướng khi đang có nước chiếu của đối phương

Phong Hiệu: Là khi tốt tiến tới hàng vua của đối thủ thì sẽ xuất hiện bảng phong hiệu cho người chơi lựa chọn phong hiệu cho tốt thành hậu hoặc mã hoặc xe hoặc tượng

Nhập thành: Là sự kiện mà khi trên đường của vua tới xe trống và hai quân này chưa di chuyển bất kì lần nào thì sẽ thực hiện nhập thành Ở đây

sẽ có hai loại nhập thành là nhập thành bên vua và nhập thành bên hậu Chiếu: Kiểm tra xem quân vua có bị chiếu hay không sau mỗi nước đi Nếu quân vua bị chiếu, người chơi phải di chuyển vua đi một dị trí khác hoặc dùng các quân cờ khác cùng màu có trên bàn cờ để che chắn cho vua Chiếu bí và hòa: Xác định điều kiện chiếu bí và hòa trong trò chơi Chiếu bí là khi quân vua đang bị chiếu đồng thời các nước di chuyển đều không hợp lệ và các quân cùng màu không thể di chuyển che chắn được

Hoà là khi vua chưa bị chiếu nhưng đồng thời cũng không có nước di

chuyển hợp lệ nào được thực hiện

Giao diện người dùng: Giao diện này bao gồm hiển thị bàn cờ và các quân cờ có trên bàn, khi người chơi chọn vào thực hiện nước đi thì ô di chuyển hợp lệ sẽ hiện xanh Sau khi thực hiện di chuyển thì trỏ sẽ đổi màu

để đối thủ thực hiện di chuyển Đồng thời hiển thị các sự kiện như phong hậu cho tốt hoặc thắng hoặc hoà

1.2 Chức Năng

1.2.1 Chức Năng Đăng Nhập

Khi khởi chạy chương trình sẽ có một menu đăng nhập hiện lên để người dùng đăng nhập tài khoản cá nhân của mình vào (VD: Nguyen 12345678), hoặc sẽ đăng ký tài khoản mới ở ô đăng ký để có thể đăng nhập

1.2.2 Chức Năng Đăng Ký

Ở đây người dùng sẽ đăng ký cho mình một tài khoản mới với tên đăng nhập không được chừa trống và mật khẩu có ít nhất 8 ký tự Sau khi đăng

ký xong màn hình sẽ quay về Đăng Nhập để người dùng có thể đăng nhập

và xử dụng chương trình

Trang 6

1.2.3 Chương Trình Chính

Sau khi đăng nhập thành công thì chương trình sẽ mở ra giao diện bàn cờ cho người dùng xử dụng

Theo luật cờ vua thì bên trắng sẽ là bên quân cờ đi nước di chuyển đầu tiên, cho nên con trỏ chủ chương trình sẽ là trỏ trắng đầu tiên, sau khi thực hiện xong nước di chuyển thì con trỏ sẽ chuyển sang đen và cứ thế lập lại cho tới khi các sự kiện khác xuất hiện

1.2.4 Sự Kiện Nhập Thành

Sự kiện này sẽ sảy ra khi mà các ô ở giữa Vua (King) và Xe (Rook) không tồn tại các quân cờ khác và khi này của Vua và Xe đều chưa có bất

cứ nước di chuyển nào thì sẽ có sự kiện nhập thành khi chúng ta chọn vào Vua

Nhập thành ở đây chia thành 2 loại:

 Nhập Thành bên phía Vua: sự kiện này sảy ra khi bạn chọn vào nước di chuyển vua qua phía phải của bàn cờ mà đúng với điều kiện nhập thành thì vua và xe sẽ di chuyển vào vị trí nhập thành

 Nhập Thành bên phía Hậu: sự kiện này cũng giống như ở phía vua bên trên nhưng nó sẽ di chuyển về bên trái của bàn cờ

1.2.5 Sự kiện Phong Hiệu

Sự kiện này xảy ra khi mà quân tốt (Pawn) của di chuyển tới hàng cuối bàn cờ theo hướng di chuyển của nó Lúc này sẽ có một bảng chức năng hiện thị lên ở chương trình cho phép người chơi chọn quân hiệu cần phong cho tốt (ở đây có 4 lựa chọn lần lượt là Hậu (Queen), Mã (Knight), Xe (Rook), Tượng (Bishop)), sau khi thực hiện chọn quân hiệu thì tốt ở vị trí

đó sẽ được đổi thành quân hiệu đã chọn

1.2.6 Sự kiện bị chiếu hoặc hết nước đi

Sự kiện này sảy ra khi một trong hai bên bị chiếu bí quân Vua hoặc không có bất kì nước di chuyển nào hợp lệ được đưa ra nữa thì sẽ hiện lên màn hình bảng chứ năng thông báo là Hoà hay Thắng và lý do dẫn tới trường hợp đó là của bên cờ nào

Ở cuối bảng chức năng này có hai lựa chọn là chơi lại hoặc là thoát khỏi bàn cờ Khi chọn chơi lại thì bàn cờ sẽ được khởi động lại từ đầu để người

4

Trang 7

dùng chơi ván mới, nếu như lựa chọn là thoát khỏi thì chương trình sẽ kết thúc

Trang 8

1.3 XÁC ĐỊNH ĐỐI TƯỢNG, LỚP

1.3.1 Đối tượng

- Đầu tiên ta có đối tượng là người dùng với các thuộc tính: tên người dùng và mật khẩu

- Kế là bàn cờ

- Kế là các quân cờ cụ thể là: 1 vua trắng, 1 hậu trắng, 2 tượng trắng, 2 mã trắng, 2 xe trắng, 8 tốt trắng, 1 vua đen, 1 hậu đen, 2 tượng đen, 2 mã đen, 2 xe đen, 8 tốt đen

- Các hướng đi, các vị trí, các kiểu di chuyển bình thường và các kiểu di chuyển đặc biệt như phong hiệu, nhập thành

1.3.2 Các lớp đối tượng

o Lớp người dùng

 Tên Người Dùng

 Mật Khẩu

o Lớp Bàn cờ

 Mảng 2 chiều các quân cờ có trên bàn

 Các quân cờ

 Vị trí của quân cờ

 Phương thức:

 Thêm các quân cờ

 Kiểm tra chọn trong bàn

 Kiểm tra vị trí trống

 Kiểm vị trí của quân cờ

 Kiểm màu của quân cờ

 Sao chép lại bàn cờ

o Lớp Quân Cờ

 Kiểu quân cờ

 Màu quân cờ

 Đã di chuyên

 Phương thức

 Sao chép lại

 Lấy hướng di Chuyển

 Kiểm tra tìm hướng di chuyển

 Kiểm tra có đang bảo vệ Vua không

6

Trang 9

o Lớp Quân Hậu (con của lớp Quân Cờ)

 Kiểu quân cờ: Hậu

 Màu quân cờ

 Phương thức

 Sao chép lại

 Lấy hướng di Chuyển

o Lớp Quân Tượng (con của lớp Quân Cờ)

 Kiểu quân cờ: Tượng

 Màu quân cờ

 Phương thức

 Sao chép lại

 Lấy hướng di Chuyển

o Lớp Quân Xe (con của lớp Quân Cờ)

 Kiểu quân cờ: Xe

 Màu quân cờ

 Phương thức

 Sao chép lại

 Lấy hướng di Chuyển

o Lớp Quân Mã (con của lớp Quân Cờ)

 Kiểu quân cờ: Mã

 Màu quân cờ

 Phương thức

 Sao chép lại

 Lấy hướng di Chuyển

 Chuyển tới vị trí đặc biệt

 Vị trí di chuyển đặc trưng

o Lớp Quân Tốt (con của lớp Quân Cờ)

 Kiểu quân cờ: Tốt

 Màu quân cờ

 Phương thức

 Sao chép lại

 Lấy hướng di Chuyển

 Kiểm xem có bị cản

 Kiểm tra xem có quân để ăn

 Kiểm xem có phong hiệu

Trang 10

 Nước đi chéo ăn quân

o Lớp Quân Vua (con của lớp Quân Cờ)

 Kiểu quân cờ: Vua

 Màu quân cờ

 Phương thức

 Sao chép lại

 Lấy hướng di Chuyển

 Kiểm tra xem xe đã di chuyển chưa

 Kiểm tra xem có thể nhập thành bên Hậu

 Kiểm tra xem có thể nhập thành bên Vua

 Vị trí di chuyển tới

 Tránh các nước đang bị chiếu

o Lớp Hướng

 Thuộc tính

 Các biến tĩnh về 8 hướng Đông, Tây, Nam, Bắc, Đông Nam, Đông Bắc, Tây Nam, Tây Bắc

 Dòng

 Cột

o Lớp Vị Trí

 Thuộc tính

 Hàng

 Cột

 Phương thức

 Phần của màu quân

 So sánh

 Băm Hàng Cột

o Lớp ván cờ

 Thuộc tính

 Bàn cờ

 Người chơi

 Các sự kiện

 Phương thức

 Kiểm vị trí hợp lệ của quân cờ

 Tạo di chuyển

 Các nước có thể đi

8

Trang 11

 Kiểm xem có bị chiếu bí

o Lớp di chuyển

 Thuộc tính

 Kiểu di chuyển

 Vị trí ban đầu

 Vị trí cần đến

 Phương thức

 Thực hiện

 Hợp lệ

o Lớp di chuyển thường (con của lớp Di Chuyển)

 Thuộc tính

 Kiểu di chuyển: thường

 Vị trí ban đầu

 Vị trí cần đến

o Lớp di chuyển Nhập thành (con của lớp Di Chuyển)

 Thuộc tính

 Kiểu di chuyển: nhập thành

 Vị trí ban đầu

 Vị trí cần đến

 Hướng đi của vua

 Vị trí ban đầu của xe

 Vị trí cần đến của xe

 Phương thức

 Nhập Thành

o Lớp di chuyển Phong Hiệu (con của lớp Di Chuyển)

 Thuộc tính

 Kiểu di chuyển: phong hiệu

 Kiểu quân mới

 Vị trí ban đầu

 Vị trí cần đến

 Phương thức

 Phong Hiệu

 Tạo kiểu quân mới

Trang 12

2 SƠ ĐỒ LỚP ĐỐI TƯỢNG

2.1 Sơ đồ

3 Các Nguyên Lý Hướng Đối Tượng

- Đầu tiên ta thấy ở đây là sự kế thừa của các lớp Quân cờ cụ thể

kế thừa từ lớp quân cờ

10

Trang 13

- Tiếp là các lớp Di chuyển thường, Nhập thành, Phong hiệu kế thừa của lớp di chuyển

- Các phương thức đa hình ví dụ như IsLegal

- Các phương thức trừu tượng ví dụ như Copy(), GetMove() ở lớp Piece và Execute(), thuộc tính ToPos, FormPos ở lớp Move

4 Các Cấu Trúc Dữ Liệu

o enum:

- là một kiểu dữ liệu được định nghĩa bởi một tập hợp các hằng số được đặt tên Mỗi hằng số trong enum có một giá trị nguyên tương ứng, mặc định bắt đầu từ 0 và tăng lên mỗi lần thêm một hằng số mới

o readonly:

- sử dụng để chỉ định rằng một trường (field) trong một lớp (class) chỉ

có thể được gán giá trị một lần tại thời điểm khởi tạo hoặc trong constructor của lớp đó Một khi trường được gán giá trị, nó không thể được thay đổi lại

o yield return:

- yield được sử dụng để tạo ra một iterator Iterator là một đối tượng

có khả năng trả về một chuỗi các phần tử một cách tuần tự khi được yêu cầu

- Khi kết hợp với return, yield return cho phép bạn trả về một giá trị

từ một phương thức iterator, nhưng vẫn giữ lại trạng thái của phương thức đó Điều này cho phép bạn tiếp tục từ nơi mà phương thức đã dừng lại khi gặp lệnh yield return

o IEnumerable<>:

- Là một giao diện generic được sử dụng để đại diện cho một tập hợp các phần tử có thể lặp qua Đây là một cách tiêu biểu để biểu diễn một dãy các phần tử trong C#

- Khi sử dụng IEnumerable<>, bạn cần chỉ định kiểu dữ liệu của các phần tử trong tập hợp

o return < tên biến> switch {biếu thức lamba}; :

- trả kết quả của biểu thức lamba Tương tự như switch trước rồi return

Trang 14

o <Quyền truy cập> <tên class> operator <toán tử>(2 đối tượng của class):

- định nghĩa lại cho các lớp hoặc struct bằng cách sử dụng toán tử nạp chồng (operator overloading) Khi định nghĩa lại một toán tử như +,

có thể sử dụng toán tử đó để thực hiện các phép toán tùy chỉnh với các đối tượng của lớp hoặc struct

o partial:

- Sử dụng để cho phép một lớp, một struct hoặc một phương thức được phân tách thành nhiều phần, mỗi phần có thể được khai báo trong các tập tin hoặc nơi khác nhau Khi sử dụng từ khóa partial, các phần được chia thành sẽ được kết hợp lại thành một đối tượng duy nhất khi biên dịch

- Công dụng chính của partial là cho phép các thành phần của một lớp hoặc một struct được phát triển và duy trì dễ dàng hơn bằng cách phân tách chúng thành các phần nhỏ hơn Điều này có thể hữu ích trong các dự án lớn, khi nhiều người cùng làm việc trên cùng một lớp hoặc struct

5 Đọc, ghi đối tượng vào file Xml

Nhóm có sử dụng phần người dùng để tạo môt file XML dành cho các trang đăng nhập đăng ký, khi thực hiện đăng nhập sẽ duyệt trong file để kiểm tra và khi đăng ký sẽ thêm người dùng mới vào file

12

Trang 15

PHẦN 3: KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN

1 Kết Luận

Phần chương trình mà nhóm Ba Con Báo tìm hiểu và thực hiện đã hoàn thành được các yêu cầu đặt ra từ đầu của nhóm Sau khoảng thời gian tìm hiểu môn học cũng như là tìm hiểu đề tài theo đúng quy trình đặt ra với

2 tuần đầu để tìm hiểu về phần nội dung yêu cầu đề tài,

2 tuần tìm hiểu về các quy trình nghiệp vụ của đề tài cũng như tìm hiểu

về các đối tượng của đề tài,

2 tuần định hướng lại đầy đủ các nguyên lý của các lớp đối tượng có trong đề tài và thực hiện viết lên một phần nào của chương trình,

2 tuần hoàn thành việc viết lên chương trình hoàn chỉnh chạy chỉnh sửa tối ưu các chức năng để đạt đúng với yêu cầu đề ra

1 tuần cuối hoàn chỉnh lại báo cáo

Sau cả quá trình thì các thành viên nhóm thống nhất là về cả mặt chương trình cũng như là báo cáo đều đã hoàn thiện

2 Định Hướng Phát Triển

Với đề tài trên thì Cờ Vua là một trò chơi đã và đang được phổ biến qua từng ngày, với những gì mà nhóm đã đạt được là chưa đầy đủ hoàn toàn do luật cờ vua ban hành nên nhóm sẽ hoàn thành thêm một số sự kiện mới cũng như các luật chiếu hoà chiếu bí mới nhất Để sớm ngày có một sản phẩm hoàn toàn đáp ứng được nhu cầu của một bàn cờ cần có

PHẦN 4: TÀI LIỆU THAM KHẢO

https://luatminhkhue.vn/quyet-dinh-757-2004-qd-ubtdtt-tti-ban-hanh- luat-co-vua-do-bo-truong -chu-nhiem-uy-ban-the-duc-the-thao-ban-hanh.aspx

Ngày đăng: 03/12/2024, 16:17

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

TÀI LIỆU LIÊN QUAN

w