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

Google
C++ 心算遊戲 (有冇地方可以改善 ??)

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


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

255.69 果凍幣

發表發表於: 2009-11-28, AM 11:08 星期六    文章主題: C++ 心算遊戲 (有冇地方可以改善 ??) 引言回覆

代碼:

// program name : 心算遊戲
#include <iostream>
#include <ctime>

using namespace std;

char c[2];
int total,cal[6],sc[2];

char condition();
char c_process();
int set_2();
void n_switch();
void calculate();
int outnumber();
void g_process(int input);

int main()
{
   cout << "心算遊戲" << endl;
   system("pause");
   system("cls");

   srand((unsigned)time(NULL));

   int ginput;
   char t;

   condition();
   c_process();
   set_2();

       do
      {
         n_switch();

              for(int x=1;x<=sc[0];x++)
               {
                 calculate();
                   outnumber();    cin >> ginput;
                   g_process(ginput);
                 cout << endl;


                       if(cal[5]>=sc[0] /2)
                      {
                          cout << "Game over !!" << endl << endl;
                       break;
                      }

                     if(cal[4]==sc[0])
                           {
                              cout << "You win !!" << endl << endl;
                         break;
                          }
                     else if(cal[3]==sc[0])
                     {
                        cout << "恭喜你能完成所有題目 !!" << endl << endl;
                     }
               }

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

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

   return 0;
}

char condition() // 選擇
{
   cout << "Choose >> " << endl << endl
       << " a  加法" << endl
       << " b  減法" << endl
      << " c  乘法" << endl << endl
      << "Input : "; cin >> c[0];

   return c[0];
}

char c_process() // 處理選擇
{
       switch(c[0])
       {
           case'a':case'A':
              c[1]='a';
             break;
          case'b':case'B':
             c[1]='b';
             break;
          case'c':case'C':
             c[1]='c';
             break;
          default:
             int rn=rand()%3;
                 if(rn==0) c[1]='a';
                else if(rn==1) c[1]='b';
                else if(rn==2) c[1]='c';

       }

   system("cls");

   return c[1];
}

int set_2() // 設置計算多少題
{
   cout << "你要計算多少題 : "; cin >> sc[0];

       if(sc[0]>100000000)
      {
         sc[1]=20;
          system("cls");
      }
      else
      {
         sc[1]=sc[0];
         system("cls");
      }
         
   return sc[1];
}

void n_switch() // 數值給予
{
   cal[3]=cal[0];
   cal[4]=cal[1];
   cal[5]=cal[2];
   sc[1]=sc[0];
}

void calculate() // 顯示資料
{
   cout << "計算次數 : " << cal[3] << " || " << "計中次數 : " << cal[4] << " || "
      << "計錯次數 : " << cal[5] << " || " << "剩餘 : " << sc[1] << "題" << endl;
}

int outnumber() // 輸出公式
{
   int rn[4];

       if(c[1]=='a'|| c[1]=='b')
      {
         rn[0]=rand()%1000;
         rn[1]=rand()%1000;
         rn[2]=rand()%1000;
         rn[3]=rand()%1000;

             if(c[1]=='a')
            {
               cout << rn[0] << '+' << rn[1] << '+' << rn[2] << '+' << rn[3] << "=";
               total=rn[0]+rn[1]+rn[2]+rn[3];
            }
            else if(c[1]=='b')
            {
               cout << rn[0] << '-' << rn[1] << '-' << rn[2] << '-' << rn[3] << "=";
               total=rn[0]-rn[1]-rn[2]-rn[3];
            }
         
      }
      else if(c[1]=='c')
      {
         rn[0]=rand()%10;
         rn[1]=rand()%10;
         rn[2]=rand()%10;
         rn[3]=rand()%10;

         cout << rn[0] << '*' << rn[1] << '*' << rn[2] << '*' << rn[3] << "=";
         total=rn[0]*rn[1]*rn[2]*rn[3];
      }

   return total;
}

void g_process(int input) // 處理是否正確
{
   cal[3]++;
   sc[1]--;

       if(input!=total)
      {
         cout << "錯誤 !!" << endl;
         cout << "正確答案是 : " << total << endl;
         cal[5]++;
      }
      else if(input==total)
      {
         cout << "正確 !!" << endl;
         cal[4]++;
      }
}


C++ 心算遊戲 (有冇地方可以改善 ??)

還有,

我想問以下有甚麼用 ??
代碼:
int text(int &a,int &b)

我看書都不明白 !!
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

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


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