added timer in main.cpp

This commit is contained in:
Sladoje 2025-12-01 11:58:51 +01:00
parent f79648ea47
commit f954d09a29

View File

@ -9,6 +9,10 @@ int main()
{ {
// Zufall initialisieren // Zufall initialisieren
srand(time(NULL)); srand(time(NULL));
double startTime = 0.0;
double endTime = 0.0;
bool timerStarted = false;
// Fenster und Kamera // Fenster und Kamera
InitWindow(800, 600, "3D Memory Game with Matrix3D Library"); InitWindow(800, 600, "3D Memory Game with Matrix3D Library");
@ -57,6 +61,11 @@ int main()
// ----------------------------------------------------------- // -----------------------------------------------------------
while (!WindowShouldClose()) while (!WindowShouldClose())
{ {
if (!timerStarted)
{
startTime = GetTime();
timerStarted = true;
}
// Klick-Erkennung // Klick-Erkennung
if (!gameWon && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) if (!gameWon && IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
{ {
@ -109,8 +118,13 @@ int main()
// Gewinnprüfung // Gewinnprüfung
if (!gameWon) if (!gameWon)
{
gameWon = std::all_of(cubes.begin(), cubes.end(), [](const gamecube &c){ return c.IsMatched(); }); gameWon = std::all_of(cubes.begin(), cubes.end(), [](const gamecube &c){ return c.IsMatched(); });
if (gameWon)
{
endTime = GetTime() - startTime;
}
}
// ----------------------------------------------------------- // -----------------------------------------------------------
// Zeichnen // Zeichnen
// ----------------------------------------------------------- // -----------------------------------------------------------
@ -124,10 +138,20 @@ int main()
EndMode3D(); EndMode3D();
if (gameWon) if (gameWon)
{
DrawText("Congrats! You found all pairs!", 150, 260, 30, DARKBLUE); DrawText("Congrats! You found all pairs!", 150, 260, 30, DARKBLUE);
else
DrawText("Flip 2 cubes - find matching pairs!", 10, 10, 20, DARKGRAY);
char buffer[64];
sprintf(buffer, "Cleared in %.2f seconds", endTime);
DrawText(buffer, 150, 300, 28, DARKGREEN);
}
else
{
DrawText("Flip 2 cubes - find matching pairs!", 10, 10, 20, DARKGRAY);
char liveBuf[64];
sprintf(liveBuf, "Time: %.2f", GetTime() - startTime);
DrawText(liveBuf, 10, 40, 20, DARKGRAY);
}
EndDrawing(); EndDrawing();
} }