Tôi đang thực hiện trò chơi Cờ đam cho bài tập. Toàn bộ điều đang chạy theo cách nó nên, ngoại trừ một điều kỳ lạ. Dưới đây là bảng của tôi:Checkers Trò chơi: Không kiểm tra lỗi chính xác?
tôi di chuyển bằng cách cho dòng nguồn và cột, sau đó hàng đích và cột.
move(int srcR, int srcC, int destR, int destC)
Tôi phải in ra một lỗi nếu tôi cố gắng di chuyển một mảnh đến vị trí không hợp lệ (không theo đường chéo). Vì vậy, nếu tôi cố gắng di chuyển một mảnh từ 5 2 -> 4 2, nó mang lại cho tôi một thông báo lỗi.
if(destR == srcR+1 || destR == srcR-1 &&
destC == srcC+1 || destC == srcC-1){
// code code code
}else
message = "Invalid Move! Can only move diagonally one space.";
Vì hầu hết mọi thứ hoạt động, nhưng nếu tôi cố di chuyển trực tiếp xuống một khoảng trống (ví dụ, 2 3 -> 3 3), nó sẽ di chuyển mảnh và không cho tôi thông báo lỗi.
Tôi bị kẹt! Bất kỳ ý tưởng nào tại sao điều này có thể xảy ra? Tôi có thể đăng thêm mã nếu cần.
Không di chuyển hợp lệ phụ thuộc vào màu sắc đang di chuyển? – arshajii
@ErikPragt sẽ không bao giờ xác nhận, vì destR không thể bằng cả srcR +/- 1 cùng một lúc. – Deactivator2
desrR không thể == srcR + 1 && srcR-1 –