2016-05-16 11 views
-6

私はタイムラッシュ型のクイズを作成しようとしています。ここでは、ある程度の時間(20〜30秒など)が与えられ、その間に質問に答える必要があります。C++/Timer、ループでループする

私は後方の時間をカウントコード書いている:私は私のクイズゲームにコードを実装しようとしたときしかし、それは動作しません `

int main() 
 
{ 
 
int miliseconds=0; 
 
int seconds =20; 
 
int f=0; 
 
for(;;){ 
 

 
if(miliseconds==0){ 
 
seconds = seconds -1; 
 
miliseconds=10; 
 
} 
 

 
system("cls"); 
 
if(seconds>9) 
 
cout<<"Time - "<<"00:"<<seconds; 
 
else 
 
cout<<"Time - "<<"00:0"<<seconds; 
 
miliseconds=miliseconds-1; 
 
Sleep(100); 
 

 
if(seconds == 0 && miliseconds ==0) 
 
goto pabaiga; 
 
} 
 

 

 

 
end: 
 
system("cls"); 
 
cout<<"You have ran out of time"; 
 
return 0; 
 

 
}

` 

をループ内でループに遭遇するため、ループ内でループすることになります。

k=0;f=0; 
 
seconds = 15; 
 
miliseconds = 0; 
 

 
for(;;){ 
 

 
if(seconds>9) 
 
cout<<"Time - "<<"00:"<<seconds; 
 
else 
 
cout<<"Time - "<<"00:0"<<seconds; 
 
miliseconds--; 
 
Sleep(100); 
 

 
if(seconds == 0 && miliseconds ==0 || f==50) 
 
return 0; 
 

 

 
    if(miliseconds==0){ 
 
seconds = seconds -1; 
 
miliseconds=10; 
 
} 
 

 

 

 

 
    bool loopas=true; 
 
     f++; 
 
     system("cls"); 
 
     if(seconds>9){ 
 
gotoXY(1,0);cout<<"Laikas - "<<"00:"<<seconds;} 
 
else{ 
 
gotoXY(1,0);cout<<"Laikas - "<<"00:0"<<seconds;} 
 
     pakartojam2: 
 
     int skaicius=rand()%50; 
 

 
     if(masyvas2[skaicius][0]!="tuscia"){ 
 

 
      nr1=1+rand()%3; 
 
      numeris22: 
 
      nr2=1+rand()%3; 
 
      numeris32: 
 
      if(nr2!=nr1) 
 
       nr3=1+rand()%3; 
 
       else goto numeris22; 
 
      if(nr1!=nr3 && nr2!=nr3) 
 
     {gotoXY(1,2); cout<<"-"<<masyvas2[skaicius][0]<<endl; 
 
    gotoXY(2,4); SetColor(12);cout<<"->";SetColor(0); 
 

 
i=0; int pele=4,c=12,c1=0,c2=0,q=0; 
 
while(loopas){ 
 

 
gotoXY(4,4); SetColor(c); cout<<masyvas2[skaicius][nr1]; 
 
gotoXY(4,5); SetColor(c1); cout<<masyvas2[skaicius][nr2]; 
 
gotoXY(4,6); SetColor(c2); cout<<masyvas2[skaicius][nr3]; SetColor(0); 
 

 
system("pause>nul"); 
 

 
if(GetAsyncKeyState(VK_DOWN) &&  pele!=6){ 
 

 
gotoXY(2,pele); cout<<" "; 
 
pele++; 
 
gotoXY(2,pele); SetColor(12); cout<<"->"; 
 
i++; 
 
c=0; 
 
q++; 
 
if(q==1){ 
 
c1=12; 
 
c2=0; 
 
} 
 
else{ 
 
c1=0; 
 
c2=12; 
 
} 
 
continue; 
 
} 
 

 
if(GetAsyncKeyState(VK_UP) && pele !=4){ 
 

 
gotoXY(2,pele);cout<<" "; 
 
pele--; 
 
gotoXY(2,pele);SetColor(12);cout<<"->"; 
 
i--; 
 
c2=0; 
 
q--; 
 
if(q==0){ 
 
c=12; 
 
c1=0; 
 
} 
 
else{ 
 
c=0; 
 
c1=12; 
 
} 
 
continue; 
 
} 
 

 
if(GetAsyncKeyState(VK_RETURN)){ 
 

 

 
     masyvas2[skaicius][nr1]="a"; 
 
     masyvas2[skaicius][nr2]="b"; 
 
     masyvas2[skaicius][nr3]="c"; 
 
     answer = masyvas[skaicius][1]; 
 

 
switch(i){ 
 
    case 0: 
 
     pasirinktis="a"; 
 
      break; 
 
    case 1: 
 
     pasirinktis="b"; 
 
      break; 
 
    case 2: 
 
     pasirinktis="c"; 
 
      break; 
 

 
} 
 

 
if(pasirinktis==answer){ 
 
loopas=false; 
 
k++; 
 
} 
 
else{ 
 
    loopas=false; 
 
} 
 

 
} 
 

 

 
} 
 
masyvas2[skaicius][0]=tuscia; 
 
} 
 

 
      else goto numeris32;} 
 
     else goto pakartojam2; 
 

 

 
}

私は間違ったことをしたのでしょうか、あるいは別のやり方で時間をカウントすべきですか?

+5

郵便番号、コードのリンクはありません。そして、絶対にコードの写真にリンクしていない。エディタには「コピー」コマンドがあります。これを使って。 – molbdnilo

+1

SSCCE - http://sscce.org/を投稿できますか? –

+0

修正済み、申し訳ありません – Mecholaz

答えて

-2

遅延については、dos.hヘッダーに定義されている遅延機能を使用してください。このように

 delay(1000); // in milliseconds 
     nextQuestion(); 

Windowsで新しいC++コンパイラを使用している場合は、windows.hで定義されているsleep関数を使用します。このように

 sleep(1000); // in milliseconds 
     nextQuestion(); 
+1

これ以上1990ではありません、Shahbaz。 –

+0

はいわかっています。しかし、Mecholazはコードを提供していませんでした。だから私は彼が古いC++を使用していると仮定しています。とにかくそのすべてについての論理。 –

+2

私は26歳の、プラットフォーム固有の言語の事前標準の方言を誰かが使用していると思われるのか理解できません。 –

関連する問題