1. 程式人生 > 其它 >簡單的猜數字遊戲(C語言)

簡單的猜數字遊戲(C語言)

猜數字遊戲

1.系統分析

在本遊戲中,電腦會給出1~100之間的一個隨機數,玩家通過鍵盤輸入猜測的數字,電腦會判斷輸入的數字是否為生成的隨機數,並做出相應的提示(猜大了,猜小了,答對了)。

2.概要設計

此係統可分為以下幾個功能模組:選單模組;隨機數生成模組;判斷及提示模組;主函式模組。

3.詳細設計

3.1 選單模組

void menu()
{
    printf("********************\n");
    printf("** 1.play  0.exit **\n");
    printf("********************\n");
}

3.2 隨機數生成模組

ret=rand()%100+1;//生成1~100之間的隨機數
srand((unsigned int)time(NULL));//拿時間戳來設定隨機數的生成起始點

3.3 判斷及提示模組

while(1)
    {
        printf("請猜數字:");
        scanf("%d",&guess);
        if(guess>ret)
            printf("猜大了\n");
        else if(guess<ret)
            printf("猜小了\n");
        else
        {
            printf(
"恭喜你,猜對了!\n"); break; } }

3.4 主函式模組

int main()
{
    int input;
    srand((unsigned int)time(NULL));//拿時間戳來設定隨機數的生成起始點
    do
    {
        menu();
        printf("請選擇:");
        scanf("%d",&input);
        switch(input)
        {
        case 1:
            game();
            
break; case 0: printf("退出遊戲\n"); break; default: printf("選擇錯誤\n"); break; } } while(input); return 0; }

4.源程式程式碼

#include<stdio.h>
#include<time.h>//time()
#include<stdlib.h>//rand();srand()

void menu()
{
    printf("********************\n");
    printf("** 1.play  0.exit **\n");
    printf("********************\n");
}

void game()
{
    int ret;
    int guess;
    ret=rand()%100+1;//生成1~100之間的隨機數
    while(1)
    {
        printf("請猜數字:");
        scanf("%d",&guess);
        if(guess>ret)
            printf("猜大了\n");
        else if(guess<ret)
            printf("猜小了\n");
        else
        {
            printf("恭喜你,猜對了!\n");
            break;
        }
    }
}

int main()
{
    int input;
    srand((unsigned int)time(NULL));//拿時間戳來設定隨機數的生成起始點
    do
    {
        menu();
        printf("請選擇:");
        scanf("%d",&input);
        switch(input)
        {
        case 1:
            game();
            break;
        case 0:
            printf("退出遊戲\n");
            break;
        default:
            printf("選擇錯誤\n");
            break;
        }

    }
    while(input);
    return 0;
}