Also, die Sache ist eigentlich ganz einfach, du hast wahrscheinlich nur bei den Pointern noch kleinere Defizite.
Dein Problem ist, dass die Funktion calculateMoveClass::init einen Pointer auf den primitiven Typ "short" erwartet. Du übergibst aber der Funktion einen Pointer der wiederrum auf einen Pointer auf den primitiven Typ short zeigt.
Hier mal der Hinweis:
short points[...][...];
// ist nichts anderes als
short* points[...];
// oder
short** points;
/* mit _einem_Unterschied_
* du holst dir mit den eckigen Klammern und einer Zahl darin
* direkt Speicher, was du bei short** points nicht tust
*/
Wenn du das verstanden hast, brauchst du nur die Methode so anpassen:
void calculateMoveClass::init(short** points)
{
// do something
}
Und schon sollte es funktionieren.
Aber Vorsicht: wenn du die Größe der Matrize nicht übergibst, musst du aufpassen nicht über die Grenzen zu laufen. Auf gut deutsch, dass hier darfst du nicht:
void calculateMoveClass::init(short** points)
{
points[2][6] = ... // falsch
points[1][5] = ... // richtig, "letztes" Element
points[0][0] = ... // richtig, "erstes" Element
// oder anders rum
... = points[1][3];
}