#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 就印出「還很遠,再加把勁!」。
沒有留言:
張貼留言