Tôi đang viết một trò chơi treo cổ bằng ruby và tôi muốn sử dụng tuyên bố trường hợp để xác định phần thân nào sẽ đặt tương ứng với một số dự đoán không chính xác. Tôi thực hiện trò chơi này bằng cách sử dụng một lớp học hội đồng quản trị tôi sử dụng cho các trò chơi khác như cờ vua và kết nối-4 vì tôi có một phương pháp mà serializes lớp học hội đồng quản trị cho phép tôi lưu và tải các trò chơi mà không cần thêm bất kỳ mã. Đối với các trò chơi được lưu, tôi cần một số cách để xác định số lượng các dự đoán không chính xác cho hangman mà không cần thêm các biến bổ sung cho các lớp học hội đồng quản trị. Để giải quyết điều này, tôi đã sử dụng một biến cá thể trên lớp bảng gọi là lịch sử, có thể được sử dụng để đẩy các chuyển động từ trò chơi đến lịch sử bảng. Khi bảng được sắp xếp theo thứ tự, lịch sử cũng được lưu lại, có thể được đọc bởi trò chơi và được sử dụng để xác định các dự đoán sai.Tuyên bố trường hợp của ruby có rơi qua không?
Trong trò chơi treo cổ, tôi có một phương pháp gọi là lịch sử đọc (mà tôi sử dụng cho tất cả các trò chơi vì nó giải quyết vấn đề serialization được mô tả ở trên). Phương thức read_history chịu trách nhiệm đọc các dự đoán trước đây, hiển thị chúng và xác định số lượng các dự đoán sai. Số này sau đó được chuyển đến một phương thức treo để xác định phần thân nào của hangman cần thêm.
def hang(incorrect)
case incorrect
when 0
@hangman = [" ", " ", " "]
break
when 7
@hangman[2][2] = '\\'
when 6
@hangman[2][0] = '/'
when 5
@hangman[2][1] = '*'
when 4
@hangman[1][2] = '\\'
when 3
@hangman[1][0] = '/'
when 2
@hangman[1][1] = '|'
when 1
@hangman[0][1] = 'o'
end
end
Nếu tôi viết thư này bằng java và giá trị 5 được chuyển sang phương thức trên, nó sẽ đọc câu lệnh cho đến khi nhấn "khi 5" hoặc trong thuật ngữ java "case 5:". Nó sẽ nhận thấy rằng không có một break trong tuyên bố và sẽ di chuyển xuống danh sách thực thi mã trong "case 4:" và lặp lại cho đến khi một break được tìm thấy. Nếu 0 được thông qua, nó sẽ thực thi mã, xem phần ngắt, và sẽ không thực thi và các câu lệnh khác.
Tôi tự hỏi liệu Ruby có khả năng sử dụng các câu lệnh case theo cách java thực hiện theo cách mà chúng rơi vào câu lệnh tiếp theo hay không. Đối với vấn đề cụ thể của tôi, tôi biết rằng tôi có thể sử dụng vòng lặp 0.upto (không chính xác) và chạy các trường hợp theo cách đó, nhưng tôi muốn biết những điểm tương đồng và khác biệt trong tuyên bố trường hợp được sử dụng trong ruby như trái ngược với trường hợp chuyển đổi được sử dụng trong java
Cụm từ bạn đang tìm kiếm là "bỏ qua", như trong "trường hợp này rơi vào trường hợp tiếp theo". – Kenster