2013年7月1日 星期一

猜數字(C語言)

/* 猜數字遊戲 */
/* 使用C為開發工具 */
#include /* 包含DOS I/O函數 */
#include /* 包含亂數函式 */
#include /* 包含直接I/O函式 */

/* 程式開始 */
void main(void)
{
 clrscr();
 int i,j,k=0,l=0; /* k,l判斷A,B */
 char answer[5],input[4]; /* answer為答案;input為玩家輸入*/
 answer[0]=58; /* char為'0' */
 randomize(); /* 設定亂數由時間取得 */
 while(1) /* 進入遊戲 */
 {
 /* 電腦產生數值 */
 for(i=1;i
 {
 answer[i]=rand()%11+48; /* 亂數值介於1-10,除以質數 */
 /* 判斷是否有重複值 */
 for(j=0;j
 {
 if(answer[i]==answer[j])
 {
 i--;
 break;
 }
 }
 }
 /* 玩家開始玩遊戲 */
 while(1)
 {
 printf("\nPlease input four number or input Esc to exit:\n");
 /* 得到玩家輸入的值 */
 for(i=0;i
 {
 input[i]=getche();
 /* 假如輸入為esc則for迴圈 */
 if(input[i]==27)
 break;
 /* 判斷玩家輸入是否為0-9的數目 */
 if(input[i]57)
 {
 printf("\nWrong! You are not input number:\n");
 i=-1;
 }
 /* 判斷玩家是否輸入相同的值 */
 for(j=0;j
 {
 if(input[i]==input[j])
 {
 printf("\nWrong! You are input repeat number9:\n");
 i=-1;
 break;
 }
 }
 }
 /* 假如輸入為esc則跳出while迴圈並設key為1跳出遊戲 */
 if(input[i]==27)
 break;
 /* 判斷為多少A多少B */
 for(i=0;i
 {
 for(j=1;j
 {
 if(input[i]==answer[j])
 {
 if(i==j-1)
 k++;
 else
 l++;
 }
 }
 }
 /* 4A為正確 */
 if(k==4)
 {
 printf("\nYou are right!\n");
 k=0;
 l=0;
 break;
 }
 /* 輸出AB */
 else
 {
 printf("\n%dA%dB\n",k,l);
 k=0;
 l=0;
 }
 }
 /* 要繼續玩輸入'y' */
 printf("\nIf you want to play, please input y:\n");
 if(getche()!='y')
 break;
 }
}

沒有留言:

張貼留言