#include <stdio.h> int main(void) { int answer = 3; int guess; printf("請猜一個數字 0 到 9: "); scanf("%d", &guess); if (guess == answer) { printf("猜對囉!\n"); } else { printf("猜錯囉!答案是 %d\n", answer); } return 0; } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:gn1.c 功能:簡單的猜數字遊戲 作者:張凱慶 時間:西元2010年7月 */
我們一共宣告了兩個變數,變數 answer 直接指派給值 3 作為答案,變數 guess 作為儲存使用者所猜數字的位置。程式很簡單,接受使用者輸入後,第 11 行判斷使用者所猜數字是否是否與答案相符
if (guess == answer) { printf("猜對囉!\n"); } else { printf("猜錯囉!答案是 %d\n", answer); }
若相符,印出猜對的序息,不相符就印出猜錯訊息附答案。來編譯玩看看吧!
嗯,自己設計的自己知道答案,不是很有趣,我們再來設計一個不是先設定好答案的猜數字遊戲唄!
#include <stdio.h> #include <time.h> int main(void) { int answer = (int) time(NULL); int guess; answer %= 10; printf("請猜一個數字 0 到 9: "); scanf("%d", &guess); if (guess == answer) { printf("猜對囉!\n"); } else { printf("猜錯囉!答案是 %d\n", answer); } return 0; } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:gn2.c 功能:簡單的猜數字遊戲 作者:張凱慶 時間:西元2010年7月 */
概念很簡單,就是從標準函數庫 time.h 的函數 time() 取得現在的總秒數,然後將其取除以 10 的餘數,這樣我們就會得到一個 0 到 9 之間的整數,以此整數作為遊戲的答案。
再來編譯執行玩玩看吧
嗯,如果猜錯還可以追答案,這樣遊戲是不是有趣一點了呢?
問題與討論
- 將遊戲改成猜 0 到 24 之間的數字。
- 承上例,假如希望猜的範圍為 1 到 25 都是正整數,那麼該如何調整呢?
- 承上例,把原本顯示答案的部份改成顯示比答案大,或是比答案小。
- 承上例,如果猜錯,再加入提示訊息是否接近答案,例如正負 5 以內就印出「不錯喔!很接近了」,超過 5 就印出「還很遠,再加把勁!」。
沒有留言:
張貼留言