INT3110: Phân tích thiết kế hướng đối tượng
Bài tập lớn #1

Trò chơi Oẳn-Tù-Tì (Rock-Paper-Scissors game)

Giả sử bạn cần viết một trò chơi cho phép người chơi oẳn tù tì với máy tính.
Trong trò oẳn tù tì, một ván (match) gồm một hoặc vài lần đi (throw). Số lần đi của mỗi ván là một tham số đầu vào (ví dụ mỗi ván 20 lần đi) Với mỗi lần đi:
  • Người chơi nhập lựa chọn (choice) của mình (đấm (rock), lá (paper), hoặc kéo (scissors))
  • Máy tính phản ứng với lựa chọn của nó. Tuy rằng máy tính lưu lại các lựa chọn của người, để trò chơi công bằng, khi máy tính chọn cách đi, nó coi như không biết người chơi vừa chọn gì (không sử dụng dữ liệu người chơi vừa nhập).
    Ví dụ, có thể sinh ngẫu nhiên lựa chọn của máy
  • Người chơi có thể hỏi điểm hiện tại hoặc yêu cầu hiển thị trợ giúp, rồi sau đó mới nhập lựa chọn của mình.

    Kết thúc mỗi ván, máy tính hiển thị:

  • Số lần người thắng
  • Số lần máy thắng
  • Số lần hòa
  • Người thắng ván chơi (hoặc kết quả hòa)

    Xem demo trò chơi tại đây

    Đặc tả chức năng - Functional specification

    Hãy viết bản thảo đầu tiên của một tài liệu đặc tả chức năng cho ứng dụng này. Đặc tả phải chứa những nội dung sau theo thứ tự:
  • Phát biểu bài toán
  • Mục tiêu của ứng dụng
  • Yêu cầu chức năng (ít nhất 6)
  • Yêu cầu phi chức năng (ít nhất 3)
  • Một sơ đồ use case chứa ít nhất 3 use case
  • Mô tả use case (ít nhất 3)

    Mẫu viết đặc tả chức năng: Ví dụ IBM

    Nộp bài

    Mỗi nhóm cần tạo một tài liệu HTML chứa đặc tả chức năng.
    Tài liệu này đặt tại repository có tên ooad_asg của một thành viên trong nhóm (đăng ký tại danh sách lớp link từ website môn học). Chú ý rằng Violet cho phép lưu sơ đồ dưới dạng html, do đó việc lắp các sơ đồ use case vào trong đặc tả viết bằng html là hoàn toàn dễ dàng. Các thành viên trong nhóm cớ thể cùng tham gia vẽ sơ đồ và viết tài liệu. Đánh giá đóng góp sẽ dựa trên các commit của từng thành viên trong nhóm.