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)
|
我看書都不明白 !! |
|