Czas w grze

0

Na wstępie zaznaczam, że chodzi mi o kilka intów, które mają symulować upływ czasu po wykonaniu pewnych komend, a nie faktyczny czas. Napisałem na potrzebę zbadania zagadnienia krótki program... i nie działa.

 
#include <iostream>

using namespace std;

string KIERUNEK;
int s, m, h, kierunek;

int main()
{
    cout << "Hejka" << endl;
    while (true)
    {
        if (m>60)
        {
        h=m/60;
        m=m-(h*60);
        }
        if (s>60)
        {
        m=s/60;
        s=s-(m*60);
        }
        cin >> KIERUNEK;
        if (KIERUNEK == "tup"||KIERUNEK == "t")
        kierunek = 1;
        else if (KIERUNEK == "hop"||KIERUNEK == "h")
        kierunek = 2;
        else if (KIERUNEK == "long"||KIERUNEK == "l")
        kierunek = 3;
        else if (KIERUNEK == "czas"||KIERUNEK == "c")
        kierunek = 4;
        else
        cout << "Nie bangla"<< endl;

        if (kierunek == 1)
            s=s+20;
        else if (kierunek == 2)
            s=s+40;
        else if (kierunek ==3)
            s=s+300000;
        else if (kierunek == 4)
            cout << h << ":" << m << ":" << s << endl;
    }
    return 0;
}

Gdzie jest błąd?

0

Może opiszesz jeszcze co ci się wydaje, że powinno to robić... Tu masz upływ robiony po każdej komendzie wpisanej w konsoli. czyli do chwili gdy nie wpiszesz czegoś w konsoli, czas nie plynie.

0
string KIERUNEK;
int s, m, h, kierunek;

niezainicjowane zmienne?

0
if (m>=60) {
	h += m / 60; // tu mozna nawet dac +1
	m = m - 60;
}
if (s>=60) {
	m += s / 60;//tu tez, bo bedziemy miec gwarancje ze jezeli przekrocza 60 to od razu odejmie sie 60 od nich
	s = s - 60;
}

polecam kartke i dlugopis

0

niestworzone bo ta liczba jest niestworza :D zapomnialem o tym

if (s >= 60) {
	m += s / 60;
	s %= 60;
}
if (m>=60) {
	h += m / 60;
	m %= 60;
}
0

Przy aktualnych wartościach hop i tup już działają. Niestety we właściwym programie będą też występowały też wartości powyżej minuty lub poniżej, zależnie od pewnych parametrów. Już jest blisko rozwiązania, ale dalej nie osiągnąłem satysfakcjonującego rezultatu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1