猜數字游戲
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; }