In pratica, meglio ancora, c dovrebbe essere dentro level1 ereditando le sue proprietà appena passate.
Così al posto di scrivere:
scriverei:codice:level1 = new level(3,2); c = new cards(level1.numcard);
perchè tutto ciò che è di level1 è anche di ccodice:level1 = new level(3,2); c = new cards();
È un modo sbagliato di pensare le classi?