電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
C++ 問題

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念
上一篇主題 :: 下一篇主題  
發表人 內容
hk8100_00
偶而上來逛逛的過客


註冊時間: 2009-06-27
文章: 10

255.69 果凍幣

發表發表於: 2009-10-17, PM 5:55 星期六    文章主題: C++ 問題 引言回覆

代碼:

#include <iostream>
#include <ctime>

using namespace std;

int main()
{
   srand((unsigned)time(NULL));

   int sa,input,v;
   char t;

        do
        {
           cout << "猜數字範圍(10-100000000) : ";
           cin >> sa;

           if(sa<10 || sa>100000000)
               cout << "設定錯誤 !!" << endl;
           else
                   system("cls");

        } while(sa<10 || sa>100000000);


        do
        {
           int r=rand()%sa;
           int a=rand()%5+10;
           v=a;

                do
           {
                  cout << "你剩餘" << v << "次機會" << endl;
                  cout << "數字 : "; cin >> input;

                   if(input<r)
                   {
                          cout << "數字太小了 !!" << endl << endl;
                          v--;
                   }
                   else if(input>r)
                   {
                          cout << "數字太大了 !!" << endl << endl;
                          v--;
                   }
                   else if(input==r)
                  {
                          cout << "你猜中了 !!" << endl << endl;
                           break;
                  }
                   else if(v==0)
                  {
                        cout << "Game over !!" << endl;
                        cout << "正確數字是" << r << endl << endl;
                        break;
                  }
                } while(input!=r);

                        cout << "Try again (Y) : ";
                        cin >> t;
                        system("cls");
                       
                } while(t=='y'||t=='Y');
}


我想問v=0的時候不會end,但會繼續 ??
甚麼問題 ??
回頂端
檢視會員個人資料 發送私人訊息
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2009-10-17, PM 8:34 星期六    文章主題: Re: C++ 問題 引言回覆

因為"else" if(v==0)
上面的三個判斷>、<、==已經把所有可能性都佔掉了
這個else怎樣都不可能執行到
去掉else就行了

另外你的縮排有點亂,很難閱讀,用心改善一下會比較好
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
hk8100_00
偶而上來逛逛的過客


註冊時間: 2009-06-27
文章: 10

255.69 果凍幣

發表發表於: 2009-10-23, PM 4:40 星期五    文章主題: 引言回覆

代碼:

#include <iostream>
#include <ctime>

using namespace std;

int set()
{
   int a;

       do
      {
         cout << "猜數字範圍(10-100000000) : "; cin >> a;

             if(a<10 || a>100000000)
            {
               cout << "設定錯誤 !!" << endl;
            }
            else
            {
               system("cls");
            }
      } while(a<10 || a>100000000);

   return a;
}

void game()
{
   int s=set();
   int z;
   char t;
   int input;

       do
      {
         int x=rand()%12+15;
         int r=rand()%s;
         z=x;

             do
            {
               cout << "猜數字範圍 : " << s << endl;
               cout << "你剩餘     : " << z << "機會" << endl;
               cout << "請輸入數字 : "; cin >> input;

                   if(input<r)
                  {
                     cout << "數字太小了 !!" << endl << endl;
                     z--;
                  }
                  else if(input>r)
                  {
                     cout << "數字太大了 !!" << endl << endl;
                     z--;
                  }
                  else if(input==r)
                  {
                     cout << "你猜中了 !!" << endl;
                     break;
                  }
                  else
                  {
                     cout << "輸入錯誤 !!" << endl << endl;
                     z--;
                  }

                      if(z==0)
                     {
                        cout << "Game over !!" << endl;
                        cout << "正確數字是" << r << endl;
                        break;
                     }


            } while(input!=r);

         cout << "Try again (Y) : "; cin >> t;
         system("cls");


      } while(t=='Y'||t=='y');
}

int main()
{
   system("color f0");

   srand((unsigned)time(NULL));

   cout << "猜數字遊戲 0.1" << endl << endl;

   system("pause");
   system("cls");

   set();
   game();
}


點解set個猜數字範圍會重覆一次 ?? Question
回頂端
檢視會員個人資料 發送私人訊息
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2009-10-23, PM 8:55 星期五    文章主題: 引言回覆

你main裡set();呼叫了第一次
game裡int s=set();呼叫了第二次
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作