30/09/2018, 16:09

Đồ án cờ vua, LẬP TRÌNH OOP

Mình đang có một đồ án lập môn lập trình hướng đối tượng, viết chương trình cờ vua trên giao diện Console, 2 người chơi với nhau. Ai có kinh nghiệm có thể cho mình ý tưởng tạo các quân cờ như thế nào không?

Nguyễn Minh Dũng viết 18:21 ngày 30/09/2018

viết chương trình cờ vua trên giao diện Console

Eo, hôm trước có thấy bạn nào vẽ trái tim bằng dấu * trên console đó. Mà @Dung_Kon nói rõ hơn về cái yêu câu xem. Console thì hiển thị không tốt lắm đâu. Chắc phải sử dụng thư viện của Microsoft để làm.

Dũng Kon viết 18:09 ngày 30/09/2018

trên giao diện console thôi anh đạt ơi, cái thư viện của Microsoft em đã học đâu, vấn đề ở đây là em chưa có ý tưởng thể hiện các quân cờ bằng hướng đối tượng. Chưa xét đến cái giao diện, em chỉ cần xác định được quân cờ nào đi như thế nào thôi.

Nguyễn Minh Dũng viết 18:21 ngày 30/09/2018

Anh nghĩ bài này em dùng kế thừa đơn giản thôi. Em tạo đối tượng cờ. trong đó có các thuộc tính

  • loại cờ
  • vị trí trên bàn cờ
  • trạng thái sống chết

Các phương thức

  • di chuyển
  • ăn quân và bị ăn

Sau đó em kế thừa lại và mỗi loại cờ có cách di chuyển khác nhau. phần giao diện có thể làm sau cùng.

Dũng Kon viết 18:17 ngày 30/09/2018

Anh thấy mô tả dưới như thế nào ạ, nguồn copy trên mạng
Một bàn cờ cấu trúc từ nhiều ô Cell.
Thông tin về một Cell bao gồm :
1.Tọa độ Cell.
2.Màu nền Cell đó (trắng hay đen) Black - or - White
3.Status hiện tại của Cell là trống hay có một quân cờ.
1.Nếu có một quân cờ thì cần một đối tượng quân cờ để biểu diễn là quân cờ gì , màu là thuộc quân đen hay quân trắng.

Do đó lại phải mô tả quân cờ ChessMan. Thông tin về một quân cờ gồm :
1.Quân cờ loại gì :
Tốt (Pawn), Mã (Knight) , Tượng (Bishop) , Xe (Rook) , Tướng (King) , Hậu (Queen).
2.Màu quân cờ là gì:
White or Black.
3.Điểm số mặc định (Độ quan trọng của quân cờ - Cái này dùng để đánh giá cho một thế cờ sau này) là bao nhiêu (quy định do người thiết kế giải thuật)
Point

Kết luận 1 câu là chỉ để mô tả bàn cờ bạn cần 3 lớp
1.Lớp Chessman mô tả quân cờ với các thông tin trên
2.Lớp Cell mô một ô trên bàn cờ
3.Lớp Board mô tả cả bàn cờ là một mảng 2 chiều 8*8 của các Cell.

Nguyễn Minh Dũng viết 18:10 ngày 30/09/2018

Cũng ổn, bài này mục đích để làm quen với kế thừa thôi. Em cứ làm thử. Nếu cảm thấy khó quá thì tạo một vài tính năng cơ bản thôi, không cần phải thể hiện hết. Sau này khi cần, em lại thêm tiếp cho đầy đủ cái miêu tả này.

Dũng Kon viết 18:09 ngày 30/09/2018

Nhìn thì khó vô chắc gì đã khó, hôm trước 2 ngày còn làm xong đồ án hợp ngữ hơn 800 dòng code nữa là @@

Nguyễn Minh Dũng viết 18:17 ngày 30/09/2018

hôm trước 2 ngày còn làm xong đồ án hợp ngữ hơn 800 dòng code nữa là

Khoe trá hình, vote ban

Tran Huan viết 18:23 ngày 30/09/2018

hehe quá dữ. Em code có vài dòng mà fix bug hoài không hết

Dũng Kon viết 18:16 ngày 30/09/2018

khoảng 3 ngày nữa mình sẽ post toàn bộ source code cờ vua của mình làm theo lập trình hướng đối tượng, bạn nào cần có thể tham khảo. Mục đích chính là mình cần sự góp ý của mọi người về game do mình viết. nhớ cho nhận xét nha anh @ltd

Phạm Hoàng Tuấn viết 18:17 ngày 30/09/2018

nếu dc bạn post luôn cái video bạn chơi thử lên youtube, rồi copy link vào luôn, giống như làm trailer trong phim ấy bạn.

Dũng Kon viết 18:16 ngày 30/09/2018

Mình sẽ làm một cái video, nhưng mạng lag quá chưa down được phần mềm nào ra hồn. Lưu ý là game của mình chơi trên giao diện Console thôi, chủ yếu là giúp hiểu được OOP sâu sắc hơn

TTmagic viết 18:23 ngày 30/09/2018

Dùng FSCapture 6.9 nhé file cài nhẹ + video xuất ra cũng nhẹ + chất lượng cũng ngon nữa

GodOfGod viết 18:13 ngày 30/09/2018

Hóng thớt, em thì dùng BBflash

Tom Nguyen viết 18:23 ngày 30/09/2018

Nếu bạn tổ chức code theo OOP thuần kế thừa (inheritance) thì sẽ dễ bị hỗn loạn code.

Bạn có thể tách các behaviors của object ra khỏi đối tượng (sử dụng strategy pattern).

Và tách các properties của object ra khỏi đối tượng (sử dụng bridge design pattern):
inheritance:

               ----Shape---
              /            \
     Rectangle              Circle
    /         \            /      \

BlueRectangle RedRectangle BlueCircle RedCircle

Refactor to:

      ----Shape---                        Color
     /            \                       /   \

Rectangle(Color) Circle(Color) Blue Red

Thành Công viết 18:13 ngày 30/09/2018

Bác chủ thớt làm được app chưa. Bây giờ em đang đi thực tập và training java rồi được giao bài tập làm trò chơi cờ vua… Bác nào có kinh nghiệm đã từng làm cái này rồi chỉ giáo em với

E cảm ơn !!!

Quang Ho Phuoc viết 18:18 ngày 30/09/2018

xong code chưa bạn? cho mình tham khảo với

Bài liên quan
0