button (550, 430, zettel_beenden_pcx, zettel_beenden_pcx, zettel_beenden_over_pcx, spiel_beenden(), NULL, NULL);
Du willst einen Funktions-Pointer dem Button zuweisen, aber du schreibst dort nur den Rückgabewert hinein (beachte die Klammern hinter deiner Funktion).
Das heißt also, dass deine Funktion "spiel_beenden" heißt und NICHT "spiel_beenden()", letzteres ist ein Aufruf.