Xây dựng các class như mộ hình UML như hình sau
Tạo lớp WordMatch như được mô tả trong mô hình UML ở phía trên, bạn cần cài đặt 2 phương thức ScoreGuess và FindBetterGuess sẽ được mô tả chi tiết trong phần a và b ở phía dưới
Tiền điều kiện
0 < guess.Length ≤ secret.Length
Score= Số lần xuất hiện chuỗi con × bình phương chiều dài chuỗi guess
WordMatch game = new WordMatch(“mississippi”);
| Guess | Số lần xuất hiện chuỗi con | Score = Số lần xuất hiện chuỗi con × bình phương chiều dài của guess | Giá trị trả về game.ScoreGuess(guess) |
| “i” | 4 | 4 * 12 = 4 | 4 |
| “iss” | 2 | 2 * 32 = 18 | 18 |
| “issipp” | 1 | 1 * 62 = 36 | 36 |
| “Mississippi” | 1 | 1 * 112 = 121 | 121 |
WordMatch game = new WordMatch(“aaaabb”);
| Guess | Số lần xuất hiện chuỗi con | Score = Số lần xuất hiện chuỗi con × bình phương chiều dài của guess | Giá trị trả về game.ScoreGuess(guess) |
| “a” | 4 | 4 * 12 = 4 | 4 |
| “aa” | 3 | 3 * 22 = 12 | 12 |
| “aaa” | 2 | 2 * 32 = 18 | 18 |
| “aabb” | 1 | 1 * 42 = 16 | 16 |
| “c” | 0 | 0 * 12 = 0 | 0 |
Tiền điều kiện:
Phương thức FindBetterGuess trả về dự đoán tốt hơn của 2 tham số chuỗi guess1 và guest2. Nếu phương thức ScoresGuess của guess1 và guess2 trả về giá trị khác nhau, thì trả về guess có điểm cao hơn. Nếu phương thức ScoreGuess của guess1 và guess2 trả về cùng giá trị, thì trả về guess lớn hơn tính theo alphabet.
WordMatch game = new WordMatch(“concatenation”);
| Gọi phương thức | Giá trị trả về | Giải thích |
| game.ScoreGuess(“ten”); | 9 | 1 * 32 |
| game.ScoreGuess(“nation”); | 36 | 1 * 62 |
| game.FindBetterGuess(“ten”, “nation”); | “nation” | Vì ScoreGuess(“ten”) lớn hơn ScoreGuess(“nation”) nên trả về “nation” |
| game.ScoreGuess(“con”); | 9 | 1 * 32 |
| game.ScoreGuess(“cat”); | 9 | 1 * 32 |
| game.FindBetterGuess(“con”, “cat”); | “con” | Vì ScoreGuess(“con”) bằng ScoreGuess(“cat”) và “cat” tính theo alphabet lớn hơn “con” nên trả về “con” |