Я пытаюсь сделать викторину с типом времени, где вам дается некоторое количество времени (например, 20-30 секунд), и вы должны отвечать на вопросы тем временем.C++/Timer, loop in a loop
Я написал код, который отсчитывает время назад: `
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;
}
Я сделал что-то не так, или я должен посчитать время по-другому?
Почтовый код, а не ссылки на код. И абсолютно не ссылки на фотографии кода. У вашего редактора есть команда «Копировать»; используй это. – molbdnilo
Не могли бы вы опубликовать SSCCE - http://sscce.org/? –
Исправлено, извините – Mecholaz