Beh, ovvio ... se indichi

x=rand()%30;
y=rand()%30;

vuol dire che le coordinate che possono essere generate sono limitate a 30 righe e 30 colonne mentre nella finestra c'è un numero diverso di righe/colonne.

Come mai hai scritto 30 in quelle due righe ?