Nội dung chính
1. Scratch làm game trí tuệ từ bài toán dân gian – Qua sông.
Bạn có yêu thích các câu đố dân gian? Bạn có hứng thú khi phải căng não để tìm lời giải? Bạn cũng đã từng có ý tưởng sẽ đưa các câu đố đó vào game để hack não người chơi? Riêng tôi, tôi thấy phấn khích khi làm việc đó và tôi đã dùng Scratch làm game trí tuệ từ bài toán dân gian – Qua sông.
Bạn có muốn làm cùng tôi? Tại sao lại không nhỉ? Chúng ta hãy bắt đầu thôi!
2. Ý tưởng làm game xuất phát từ một bài toán dân gian.
Trên một dòng sông, có một người lái thuyền phải chở một con sói, một con dê và một chiếc bắp cải sang sông. Khó một nỗi là thuyền của bác nhỏ nên mỗi chuyến chỉ chở được một con sói, hoặc một con dê, hoặc một bắp cải. Nhưng chó sói đứng cạnh dê thì chó sói sẽ ăn thịt dê, dê đứng cạnh bắp cải thì dê sẽ ăn bắp cải.
Làm thế nào bây giờ? Bác lái thuyền suy nghĩ một lúc rồi bác reo lên: “Ta đã có cách”. Và rồi bác đã hoàn thành công việc thật xuất sắc.
Đố bạn biết bác đã làm thế nào?
Từ bài toán trên, tôi nảy ra ý tưởng dùng các lệnh của phần mềm Scratch làm game trí tuệ – Qua sông để người chơi có thể chở sói, dê và bắp cải sang sông.
3. Tìm lời giải cho bài toán dân gian – Qua sông:
- Đưa 1 nhân vật qua sông sao cho 2 nhân vật còn lại không phải là dê và sói hoặc dê và bắp cải. (Ví dụ: Dê).
- Quay về.
- Đưa 1 trong 2 nhân vật còn lại qua sông (Ví dụ: Sói).
- Đưa nhân vật đã sang lúc trước quay về. (Dê).
- Đưa nhân vật chưa được sang lần nào qua sông. (Bắp cải).
- Quay về.
- Đưa nhân vật còn lại qua sông. (Dê).
4. Xác định hướng làm từ lời giải đã tìm được:
- Các nhân vật trong game: Sói, dê, bắp cải, người lái đò, Arrow1 (🠖), Arrow2 (🠔)
- Khi nháy chuột vào 1 nhân vật đang ở trên bờ thì nhân vật đó sẽ lên thuyền. Nếu trên thuyền đã có 1 nhân vật thì nhân vật đó sẽ lên bờ nhường chỗ cho nhân vật vừa nháy chuột lên thuyền.
- Khi nháy chuột vào Arrow1 (🠖) thì người lái đò chèo thuyền sang sông. Lúc này, nếu ở bờ xuất phát có sói và dê hoặc có dê và bắp cải thì thông báo thua cuộc.
- Khi nháy chuột vào Arrow2 (🠔) thì người lái đò chèo thuyền quay về. Lúc này, nếu ở bờ đích có sói và dê hoặc có dê và bắp cải thì thông báo thua cuộc.
- Khi người lái đò đưa được cả 3 nhân vật sang sông thì thông báo thắng cuộc.
Thiết kế sân khấu và các nhân vật:
Viết code thể hiện hướng làm đã xác định:
Ta sử dụng các biến: sói lên thuyền, dê lên thuyền, bắp cải lên thuyền để nhận biết xem nhân vật nào đang ở trên thuyền: Nếu các nhân vật đang ở trên thuyền thì các biến này có giá trị là 1, nếu ở trên bờ thì có giá trị là 0.
Ta sử dụng các biến: sói sang sông, dê sang sông, bắp cải sang sông để nhận biết xem nhân vật nào đã sang sông: Nếu các nhân vật đã sang sông thì các biến này có giá trị là 1, nếu chưa sang sông thì có giá trị là 0.
Người lái đò:
Sói:
Dê và bắp cải làm tương tự sói.
Arrow 1:
Arrow 2:
Các bạn có thể tham khảo thêm ở đây:
Chúc các bạn thành công!
Tham khảo thêm các bài game: