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?
Bài liên quan
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.
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.
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
Các phương thức
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.
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.
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.
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à @@
Khoe trá hình, vote ban
hehe quá dữ. Em code có vài dòng mà fix bug hoài không hết
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
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.
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
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
Hóng thớt, em thì dùng BBflash
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:
BlueRectangle RedRectangle BlueCircle RedCircle
Refactor to:
Rectangle(Color) Circle(Color) Blue Red
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 !!!
xong code chưa bạn? cho mình tham khảo với