Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2022-07-05, 20:31
  #1
Medlem
hej
mitt program består av 5st while loopar (läser sommarkurs i c++ som inte kräver att man använder funktioner osv)

jag vill att mitt program avslutas efter säg 5 minuter. och att man då kommer tillbaks i min första while loop där man kan starta en ny omgång/nytt spel. hur uppnår jag detta? jag vill alltså typ göra en till while loop (antar jag? eller något annat som alltid ligger i bakgrunden och checkar tiden) som säger att när spelet varit igång i 5 min ska det stängas av. ett annat alternativ är att spelet ska sättas i "sleep" mellan 02-06 och sedan börjas om. men hittar typ ingen information på nätet om detta.
Citera
2022-07-05, 20:36
  #2
Medlem
SvenHelsings avatar
Citat:
Ursprungligen postat av DrillBitTTT
men hittar typ ingen information på nätet om detta.
Jaså?

"c++ exit after time"

https://stackoverflow.com/questions/...amount-of-time

vilken länkar vidare till

https://stackoverflow.com/questions/...-c-with-chrono
https://stackoverflow.com/questions/...e-of-30ms-in-c
__________________
Senast redigerad av SvenHelsing 2022-07-05 kl. 20:40.
Citera
2022-07-05, 20:37
  #3
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av DrillBitTTT
hej
mitt program består av 5st while loopar (läser sommarkurs i c++ som inte kräver att man använder funktioner osv)

jag vill att mitt program avslutas efter säg 5 minuter. och att man då kommer tillbaks i min första while loop där man kan starta en ny omgång/nytt spel. hur uppnår jag detta? jag vill alltså typ göra en till while loop (antar jag? eller något annat som alltid ligger i bakgrunden och checkar tiden) som säger att när spelet varit igång i 5 min ska det stängas av. ett annat alternativ är att spelet ska sättas i "sleep" mellan 02-06 och sedan börjas om. men hittar typ ingen information på nätet om detta.

Du kan använda time() för att läsa av klockan. Om du sparar en starttid i början av den yttersta while-loopen så kan du, i den av de inre while-looparna som det är relevant, beräkna en differens mellan nutid och starttiden. Om differensen är mer än 5 minuter så kan du avbryta den while-loop som du är i och återvända till den yttersta while-loopen.
Citera
2022-07-05, 21:42
  #4
Medlem
Citat:
Ursprungligen postat av SvenHelsing
Jaså?

"c++ exit after time"

https://stackoverflow.com/questions/...amount-of-time

vilken länkar vidare till

https://stackoverflow.com/questions/...-c-with-chrono
https://stackoverflow.com/questions/...e-of-30ms-in-c
jag har testat lite men får det inte att fungera
jag vill ha en while loop som stänger spelet under den tiden och som sedan låter en ta ut alla pengar man spenderat. som när tiden är slut kastar spelaren till första steget, så att ett nytt spel kan börja
Citera
2022-07-05, 21:43
  #5
Medlem
Citat:
Ursprungligen postat av Enterprise
Du kan använda time() för att läsa av klockan. Om du sparar en starttid i början av den yttersta while-loopen så kan du, i den av de inre while-looparna som det är relevant, beräkna en differens mellan nutid och starttiden. Om differensen är mer än 5 minuter så kan du avbryta den while-loop som du är i och återvända till den yttersta while-loopen.
har testat lite men får inte till det. den klagar på min variabel men fattar inte varför
Citera
2022-07-05, 21:44
  #6
Medlem
SvenHelsings avatar
Citat:
Ursprungligen postat av DrillBitTTT
jag har testat lite men får det inte att fungera
jag vill ha en while loop som stänger spelet under den tiden och som sedan låter en ta ut alla pengar man spenderat. som när tiden är slut kastar spelaren till första steget, så att ett nytt spel kan börja
Happ, ja det är ju inte så lätt att hjälpa dig om du inte postar koden och berättar hur det blir fel.
Citera
2022-07-05, 21:48
  #7
Medlem
Citat:
Ursprungligen postat av SvenHelsing
Happ, ja det är ju inte så lätt att hjälpa dig om du inte postar koden och berättar hur det blir fel.
kan inte det då det är en skoluppgift. den klagar på min variabeL;

timeStart = clock();
att jag inte deklarerat den först och främst
Citera
2022-07-05, 21:48
  #8
Medlem
SvenHelsings avatar
Citat:
Ursprungligen postat av DrillBitTTT
kan inte det då det är en skoluppgift.
Vad synd. Lycka till.
Citera
2022-07-05, 21:49
  #9
Medlem
Citat:
Ursprungligen postat av SvenHelsing
Vad synd. Lycka till.
tack för hjälpen, why bother isånnafall
Citera
2022-07-05, 21:53
  #10
Medlem
SvenHelsings avatar
Citat:
Ursprungligen postat av DrillBitTTT
tack för hjälpen, why bother isånnafall
Jag är beredd att hjälpa dig. Det är du som inte vill ge vad jag behöver för att hjälpa dig.

För övrigt borde ju lösningen på att en variabel är odeklarerad vara tämligen uppenbar. Deklarera variabeln. Eller?
__________________
Senast redigerad av SvenHelsing 2022-07-05 kl. 21:55.
Citera
2022-07-05, 22:02
  #11
Medlem
Citat:
Ursprungligen postat av SvenHelsing
Jag är beredd att hjälpa dig. Det är du som inte vill ge vad jag behöver för att hjälpa dig.

För övrigt borde ju lösningen på att en variabel är odeklarerad vara tämligen uppenbar. Deklarera variabeln. Eller?
om man kan c++, så ja antagligen. men har löst det

time_t now;
struct tm nowLocal;
now=time(NULL); //get os time
nowLocal=*localtime(&now);
while (nowLocal.tm_hour>6){
cout<<"TIMEEEEEEEEE";
}
det här funkar ju iallafall. men lär jag kolla vad klockan är under varje runda av spelet eller kommer den hela tiden veta vad klockan är om jag lägger de 4 första raderna ovanför int main?
Citera
2022-07-05, 22:12
  #12
Medlem
SvenHelsings avatar
Citat:
Ursprungligen postat av DrillBitTTT
om man kan c++, så ja antagligen. men har löst det

time_t now;
struct tm nowLocal;
now=time(NULL); //get os time
nowLocal=*localtime(&now);
while (nowLocal.tm_hour>6){
cout<<"TIMEEEEEEEEE";
}
det här funkar ju iallafall. men lär jag kolla vad klockan är under varje runda av spelet eller kommer den hela tiden veta vad klockan är om jag lägger de 4 första raderna ovanför int main?
Vänligen posta kod i kod-taggar, så här:

Kod:
	time_t now;
	struct tm nowLocal;
	now=time(NULL); //get os time
nowLocal=*localtime(&now);
 while (nowLocal.tm_hour>6){
 	cout<<"TIMEEEEEEEEE";
 }

Men se också till att koden är korrekt indenterad. Det är också generellt en stor fördel om du postar kod som är körbar, så att om du har ett problem så kan jag copy-pasta koden, köra den och se samma problem.

Med det sagt så kan du tämligen enkelt ta reda på svaret till din fråga genom att helt enkelt printa värdet på tidsvariabeln. Exempelvis med std::cout << nowLocal.tm_hour << "\n";
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback