[Lập trình C] Guess The Number - Mini console game

Tuesday, May 25, 2021
Edit this post


Đề bài: Viết một trò chơi console hỏi tên (tối đa 20 ký tự) và yêu cầu người dùng đoán một số bí mật ngẫu nhiên bất kỳ trong khoảng từ 1 tới 20. Người dùng sẽ có tối đa 5 lần đoán. Với mỗi lần đoán, cho người dùng biết nếu số mà họ đưa ra cao hoặc thấp hơn so với con số bí mật. Nếu sau 5 lần mà người dùng vẫn đoán sai thì in ra đáp án. Nếu người dùng đoán đúng kết quả trong 5 lần đoán thì in ra câu chúc mừng.

Ví dụ chạy chương trình (trường hợp người chơi thắng):

What is your name? Phi
Hello Phi. I'm thinking of a number between 1 and 20. Could you make a guess?
Make a guess: 5
That's too low!
Make a guess: 10
That's too high!
Make a guess: 8
That's too high!
Make a guess: 6

Good job! You guessed my number in 4 guesses!


Ví dụ chạy chương trình (trường hợp người chơi thua):

What is your name? Phi
Hello Phi. I'm thinking of a number between 1 and 20. Could you make a guess?
Make a guess: 5
That's too low!
Make a guess: 5
That's too low!
Make a guess: 5
That's too low!
Make a guess: 5
That's too low!
Make a guess: 5
That's too low!

Nope! The number I was thinking of was 9!


Bên dưới là lời giải của tôi. Các bạn hãy tự mình nghiền ngẫm và hands-on coding trước khi xem lời giải nhé. Lời giải chỉ cover requirements của chương trình ở mức cơ bản nhất. Với yêu cầu nâng cao, các bạn có thể kiểm tra và bắt người dùng nhập lại nếu người dùng cố tình nhập tên có độ dài > 20 ký tự hoặc nhập một số không nằm trong khoảng từ 1 tới 20.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define NAME_LEN 20

int main()
{
    char name[NAME_LEN];
    
    srand(time(0));
    int secretNumber = rand() % 20 + 1;
    
    printf("What is your name? ");
    fgets(name, NAME_LEN, stdin);
    strtok(name, "\n");
    
    printf("Hello %s. I'm thinking of a number between 1 and 20. Could you make a guess?", name);
    
    int answer;
    int guesses = 0;
    do {
        ++guesses;
        printf("\nMake a guess: ");
        scanf("%d", &answer);
        
        if (answer < secretNumber)
            printf("That's too low!");
        else if (answer > secretNumber)
            printf("That's too high!");
        else
            break;
    } while (guesses < 5);
    
    if (answer == secretNumber)
        printf("\nGood job! You guessed my number in %d guesses!", guesses);
    else
        printf("\nNope! The number I was thinking of was %d!", secretNumber);

    return 0;
}

.
Xin vui lòng chờ đợi
Dữ liệu bài viết đang được tải về

💻Nhận dạy online 1 kèm 1 Automation Test từ cơ bản tới nâng cao (From Zero to Hero) 😁😁😁
Lộ trình gồm 3 phần:
1) Kỹ thuật lập trình và tư duy lập trình cơ bản
2) Nhập môn kiểm thử (Manual Test)
3) Kiểm thử tự động (Automation Test) + Chuẩn bị cho phỏng vấn
* Lộ trình chi tiết: Xem tại đây

🎓Đối tượng người học:
- Những bạn bị mất gốc căn bản môn lập trình.
- Những bạn muốn theo con đường kiểm thử (testing), đặc biệt là kiểm thử tự động (Automation Test).

🦘Người giảng dạy:
- Mình sẽ là người trực tiếp hướng dẫn.
- Nếu là các vấn đề ngoài chuyên môn hoặc sở trường, mình sẽ nhờ các anh chị em khác cũng làm trong ngành.

🤓Giới thiệu:
- Mình đã có hơn 10 năm kinh nghiệm làm IT ở cả trong và ngoài nước. Trong đó 3 năm đầu là làm lập trình viên Java, sau đó bén duyên với mảng Automation Test và theo nghề tới tận bây giờ. Mình được đào tạo chính quy về IT từ một trường Đại học danh tiếng ở TP.HCM (hệ kỹ sư 4 năm rưỡi), có chứng chỉ ISTQB, có thể giao tiếp tốt bằng tiếng Anh và có kinh nghiệm làm việc thực tế ở cả 2 mảng Outsource và Product. Title chính thức của mình là QA Automation Engineer, tuy nhiên, mình vẫn làm những dự án cá nhân chuyên về lập trình ứng dụng như Học Tiếng Anh StreamlineSách Nhạc. Mình là người có thái độ làm việc chuyên nghiệp, chăm chỉ và luôn nhiệt tình trong công việc.

💵Chi phí và hình thức thanh toán:
- Các bạn vui lòng liên hệ qua email songtoigianvn@gmail.com (email, chat, hoặc call) để book nội dung và khung giờ học (từ 8h tối trở đi).
- Mức phí: 150.000đ/buổi, mỗi buổi 60 phút.
- Lộ trình From Zero to Hero: 4.350.000đ (29 buổi).
- Bạn có thể học riêng và đóng tiền theo từng phần nếu muốn.
- Có thể học trước 1-2 buổi trước khi quyết định đi full lộ trình hoặc từng phần.
- Thanh toán qua Momo, chuyển khoản v.v...
BÌNH LUẬN
© Copyright by CUỘC SỐNG TỐI GIẢN
Loading...