36 lines
862 B
C++
36 lines
862 B
C++
#pragma once
|
||
#include <vector>
|
||
#include <array>
|
||
#include <stdexcept>
|
||
#include <cmath>
|
||
|
||
class gameMatrix
|
||
{
|
||
public:
|
||
// Matrix Multiplikation
|
||
static std::array<std::array<double,4>,4> matmul(
|
||
const std::array<std::array<double,4>,4>& A,
|
||
const std::array<std::array<double,4>,4>& B
|
||
);
|
||
|
||
// Rotationsmatrix um Achse x/y/z
|
||
static std::array<std::array<double,4>,4> rot3D(
|
||
double angle_deg,
|
||
char axis
|
||
);
|
||
|
||
// Translation
|
||
static std::array<std::array<double,4>,4> translate(
|
||
const std::array<double,3>& pos
|
||
);
|
||
};
|
||
|
||
enum class GameState
|
||
{
|
||
Idle, // kein Würfel offen, Eingabe erlaubt
|
||
OneFlipped, // ein Würfel offen
|
||
CheckingMatch, // zwei Würfel vollständig aufgeklappt, Vergleich läuft
|
||
LockInput // Würfel drehen gerade – Eingabe kurz blockiert
|
||
};
|
||
|