Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Tạo Rock paper scissors game, giới hạn lựa chọn và có HP.

  1. #1
    Ngày gia nhập
    04 2020
    Bài viết
    0

    Mặc định Tạo Rock paper scissors game, giới hạn lựa chọn và có HP.

    Xin chào mọi người,

    Mình có bài tập trong 2 tuần tạo bất kì một game,
    Và mình chọn ROCK PAPER SCISSORS(RPC).

    Mình biết là có rất nhiều bài hướng dẫn và việc làm theo rất dễ mình cũng hiểu và đã nắm bắt được.
    Mình không có bạn bè hay đàn anh nào để học hỏi thêm kiến thức về C++, mình biết là nên tự xem youtube hoặc tự học sách nhưng nếu có người hướng dẫn sơ qua thì vẫn dễ thở hơn.
    Quay lại vấn đề,
    Thì mình đang tạo một game RPC và player có HP, mỗi lượt thua sẽ bị trừ HP. ( cái này mình tự tìm hiểu thì đã hiểu đc vì có nhiều bài hướng dẫn )
    Vì rất nhiều người đã làm RPC nên mình muốn tạo thêm chút khác biệt cũng như hứng thú hơn với trò chơi.

    Xin phép mọi người là mình có 2 vấn đề,
    1. Nếu muốn tạo lệnh , để kiểm soát phần trăm (%) của Rock , Paper và Scissors thì nó viết như thế nào?
    VD:
    Rock = rand(50%)
    "player1 may use ROCK "
    Để đánh lừa và làm khó người chơi.

    2. VÀ Có thể tạo giới hạn số lượng Rock, paper , scissors không?

    VD:
    You have : 3 Rock , 2 paper , 0 scissors .

    Với những vấn đề trên có làm các câu lệnh trỡ nên rắc rối quá không?
    Rất mong ai đó giúp mình,
    Hoặc thậm chí gợi ý cho mình nên dùng lệnh nào hay ntn càng tốt.

    Mình không biết tìm ở đâu nên liều lên đây hỏi, có gì sai sót bỏ qua cho mình.
    Cảm ơn mọi người nhiều,
    Thânnnn
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    919

    . Bạn cho trò chơi chạy trên Console hay Windows ?
    . Đây có phải là trò dân gian : Oánh tù tì ra cái gì ? ra búa, ra kéol ra bao ?
    . HP là gì.

    1. Kiểm soát phần trăm số lần máy tính chọn 1 trong 3 thì bạn có thể dùng hàm thư viện rand(), hoặc tạo ngẫu nhiên tốt hơn có trong nhiều đề tài trên trang.
    2. Giới hạn số lượng là do bạn hoàn toàn kiểm soát mà, thực sự không hiểu bạn nói gì.

  3. #3
    Ngày gia nhập
    04 2020
    Bài viết
    0

    Cảm ơn bạn đã trả lời bài của mình.
    - Chạy đơn giản trên console.
    - Trò chơi giân gian thông thương thôi.
    - HP thực ra là health point, xin lỗi vì mình ko giới thiệu mà viết tắt.
    + Thực ra mình đang cố để HP( máu ) là 100 và mỗi lần thua sẽ bị trừ HP( máu).

    1. Mình dùng
    int randomChance = (rand() % 3) + 1;
    Nhưng ở dạng này nó sẽ ra random ở cả 3, thay vì vậy mình muốn kiểm soát lượt đó sẽ có bao nhiêu % ra bao hoặc búa.
    Nếu vậy mình sẽ đặt mỗi bao búa riêng kiểu như : Rock = RandomChance(50%) . Nhưng như vậy ứng với mỗi lượt mình sẽ phải viết lại lệnh điều chỉnh % đúng k?

    2. Như là mình sẽ cho người chơi 10 lượt: người chơi sẽ đc chọn số lượng bao , búa kéo tùy. .. Híc nói đến đây mình bắt đầu thấy cái game mình làm có phần hơi quá với kiến thức hiện tại...
    VD:
    Người chơi sẽ gặp Thần búa ở lượt 1 ( 50% là búa )
    5 lượt thì người chơi sẽ có thể chọn 3 búa , 2 bao và 0 kéo.
    Rồi sau đó trò chơi mới bắt đầu.
    Nhưng ở lượt sau sẽ thay đổi. Và người chơi sẽ thua khi chọn sai...


    Rất cảm ơn bạn vì đã trả lời bài giúp mình. Tại vì mình cũng đang nắm bắt C++ nên giải thích không được rành mạch cho lắm...
    Hiện tại mình mới tạo đc cơ bản game rồi. Mình đang hoàn thành nốt phần nếu người chơi thua thì bị trừ m
    Nhưng 2 tính năng này mình muốn thêm vào để thay đổi , nâng cấp lên một tí cho thành bài của mình.. Cũng như học được thêm những lệnh mới.
    Bạn nghĩ như vậy có quá rắc rối cho người mới bắt đầu như mình không vì mình đòi hỏi hơi nhiều.

    - - - Nội dung đã được cập nhật ngày 06-05-2020 lúc 11:06 PM - - -

    Nếu đc mọi người chỉ mình nên dùng lệnh gì thôi,
    Như random thì dùng lệnh rand, cái số 1 chắc mình sẽ tìm cách mò ra.
    Nhưng cái số 2 coi bộ mình ko rõ lắm.

  4. #4
    Ngày gia nhập
    04 2020
    Bài viết
    0

    Có ai có thể giải thích giúp mình tại sao máy lại báo lỗi là : "uninitialized local variable 'computer_choice' used " được không?
    computer_choice sẽ là số random từ 1 đến 3 tính qua lệnh ComputerChoice.
    Nhưng nếu mình đặt compute_choice = một giá trị nào đó thì nó sẽ mặc định như vậy và ko random ngay lần chạy đầu tiên thì phải.

    int main()
    {
    srand(time(NULL));
    int computer_choice ,
    user_number;

    bool play_again;

    do
    {
    computer_choice = computerChoice(computer_choice) ;

    user_number = getUserChoice(0);


    displayRandomNumber(computer_choice);

    winnerSelection(computer_choice, user_number, play_again);

    } while (play_again == 1);
    system("pause");
    return 0;
    } // END int main()


    int computerChoice(int computer_choice)
    {// Random number
    return (rand() % 3 + 1);
    }
    - - - Nội dung đã được cập nhật ngày 10-05-2020 lúc 10:12 PM - - -

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Lỗi rõ ràng rồi mà, bạn đã dùng biến chưa có giá trị
    Dòng đầu tiên trong vòng lặp do while của bạn, "computer_choice=computerChoice(computer_choic e);"
    bạn nghĩ giá trị của tham số computer_choice là bao nhiêu?
    Vậy có nghĩa là mình nên gán int computer_choice = " 1 giá trị nào đấy" rồi đặt vào bên trong lệnh do while đúng k?
    Vì mình nghĩ với lệnh computerChoice thì lệnh sẽ trả về (rand() % 3 + 1) ?
    Cảm ơn bạn đã trả lời câu hỏi của mình.

  5. #5
    Ngày gia nhập
    02 2016
    Bài viết
    306

    Trời đất. Code như vậy thì còn gì gọi là C++ và LTHĐT.

    Đầu tiên hết, phải thiết kế một cái class gọi là Player. Class này lúc dựng lên, có thể là người chơi với máy (1 user + 1 machine), hoặc tự máy chơi (machine1 + machine2)
    class có thuộc tính HP, và phương thức oẳn tù tì (random trả về R, P, S. hay 1,2,3 gì đó). Tuỳ theo muốn rườm rà thế nào mà thêm thuộc tính và/hoặc phương thức.

    Kế đó, thiết kế class Game, có 2 thuộc tính chính là Players, và phương thức PlayGame.

    Hàm main chỉ có việc hỏi muốn chơi với máy hay máy tự chơi. Và sau đó dựng đối tượng Game, gọi phương thức PlayGame.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn