匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 1 0 年前

如何寫8051的丟骰子程式<C>

請問要怎麼做.

1.用二個骰子相加.

2.與第二次丟骰子的數子,相比大小

我知道這個很簡單,但是課很滿,所以請各位幫忙了,謝啦

已更新項目:

我不清楚這二行的用意,請告訴我好嗎?

printf("\b\b\b");

if (kbhit())

2 個已更新項目:

kbhit()是不是指keyboard所keyin的.

那\b是指後退一格,為什麼要用\b,且要三個?

3 個解答

評分
  • 1 0 年前
    最佳解答

    #include<stdio.h>

    #define random(x) rand()%x

    int main()

    {

    int a,b,sum1,sum2;

    printf("按空白鍵丟第一次骰子: ");

    while (1)

    {

    a=random(6)+1;

    b=random(6)+1;

    printf("%d %d",a,b);

    printf("\b\b\b");

    if (kbhit())

    {

    if (getch()==' ')

    break;

    }

    }

    sum1=a+b;

    printf("\n點數為: %d",sum1);

    printf("\n按空白鍵丟第二次骰子: ");

    while (1)

    {

    a=random(6)+1;

    b=random(6)+1;

    printf("%d %d",a,b);

    printf("\b\b\b");

    if (kbhit())

    {

    if (getch()==' ')

    break;

    }

    }

    sum2=a+b;

    printf("\n點數為: %d",sum2);

    if (sum1>sum2)

    printf("\n第一次較大......");

    else if (sum1<sum2)

    printf("\n第二次較大......");

    else

    printf("\n相等............");

    system("pause");

    }

    2006-06-08 22:46:07 補充:

    因為要退後3格阿...我用了2個%d....中間還用了一個空白隔開...所以總共要退後3格if (kbhit()) 就是偵測有沒有鍵盤輸入.....那下面的if (getch()==' ')就是規定若是空白鍵則跳出....如果要用鍵盤任何一鍵停止的話...可以改成if (getch()!=0)就可以了

    參考資料:
    • Commenter avatar登入以對解答發表意見
  • 匿名使用者
    6 年前

    到下面的網址看看吧

    ▶▶http://*****

    • Commenter avatar登入以對解答發表意見
  • 匿名使用者
    6 年前

    到下面的網址看看吧

    ▶▶http://candy5660601.pixnet.net/blog

    • Commenter avatar登入以對解答發表意見
還有問題?馬上發問,尋求解答。