salve a tutti, avrei da programmare il gioco di squash, ed è cosi composto:

*una barra verticale posta a sinistra , ma leggermente staccata dal bordo
*3 palline ( per modo di dire..) che rimbalzano in una zona di dimensioni 25x80

inizialmente dovevo creare soltanto 3 palline che rimbalzavano in 3 quadrati differenti
quindi nel codice che posterò, ho messo sotto commento la parte che crea i quadrati e i limiti nei quali le palline dovranno rimbalzare sono stati re-impostati.

vorrei chiedervi aiuto sul come far muovere la barretta ( perchè ho gia fatto delle prove, l'ho creata e ci ho fatto rimbalzare le palline contro da ferma), non riesco proprio a capire come fare a farla muovere con un imput da tastiera ( deve andare su e giu , usando W, ed S).

vi dico che inizialmente provai ad disegnarla , all'interno del ciclo while, usando un ciclo for, e poi sotto di esso, usai uno SWITCH case, con il case per imput W, ed il case per imput S, i quali dovevano cancellare sotto , e ricreare una stanghetta sopra ( per il caso W), il contrario per il ''caso '' S
ma non funzionò perchè essendo il for nel ciclo while , la BARRETTA VIENE sempre ricreata e quindi non c'è la fase della cancellazione dello switch case, quindi si vedono solo due righette che si aggiungono alla fine ed all'inizio. ho provato anche a metterlo in fondo, dopo il ciclo complessivo, ma questa non viene mostrata.

qualcuno è disposto ad aiutarmi?

codice:
void main (){
  int i,n,puntatore,su,snake;
  int x=40,y=13,x1=20,y1=20,x2=60, y2=20,x3=65,y3=18;                              // coordinate iniziali delle palline
  char incrX=1,incrY=1, incrY1=1, incrX1=1,incrX2=1,incrY2=1,incrX3=1,incrY3=1 ;  // incrementi di partenza


  _setcursortype( _NOCURSOR	);   // togliere il cursore


  do{
  /*
    gotoxy(30,9);
    printf("--------------------");
    gotoxy(30,19);
    printf("--------------------");


  for(n=9;n<=19;n++){
    gotoxy(30,n);
    printf("|");
    gotoxy(50,n);
    printf("|");
  }                      // fine primo quadrato
    gotoxy(10,19);
    printf("--------------------");
    gotoxy(10,29);
    printf("--------------------");




  for(n=19;n<=29;n++){
    gotoxy(10,n);
    printf("|");
    gotoxy(30,n);
    printf("|");
  }                      // fine secondo quadrato


    gotoxy(50,19);
    printf("--------------------");
    gotoxy(50,29);
    printf("--------------------");


  for(n=19;n<=29;n++){
    gotoxy(50,n);
    printf("|");
    gotoxy(70,n);
    printf("|");
  }                      // fine terzo quadrato
    */
////////////////////////////////////////////////////////////////////////////////


  //seconda pallina


    gotoxy(15,20) ;     // posizione di partenza
    x1=x1+incrX1 ;
    y1=y1+incrY1 ;


    if(x1==80) incrX1=-1 ;              //limiti dello schermo, nel quale la pallina dev rimbalzare
    if(x1==1) incrX1=+1 ;
    if(y1==25) incrY1=-1 ;
    if(y1==1) incrY1=+1 ;
    if((x1==5)&&(y1==n)) incrX1=+1 ;


    if(kbhit()==1) exit(1) ;
      //gotoxy(x,y);
      //putch('°');
      //putch(' ');


    gotoxy(x1,y1) ;                     //per cancellare la scia prodotta dal movimento
    putch('#') ;
    Sleep(20) ;
    gotoxy(x1,y1);
    putch(' ');


 ///////////////////////////////////////////////////////////////////////////////
  //terza pallina


    gotoxy(60,20) ;     //posizione di partenza
    x2=x2+incrX2 ;
    y2=y2+incrY2 ;


    if(x2==80) incrX2=-1 ;              //limiti dello schermo, nel quale la pallina dev rimbalzare
    if(x2==1) incrX2=+1 ;
    if(y2==25) incrY2=-1 ;
    if(y2==1) incrY2=+1 ;
    if((x2==5)&&(y2==n)) incrX2=+1 ;


    if(kbhit()==1) exit(1) ;
      //gotoxy(x,y);
      //putch('°');
      //putch(' ');


    gotoxy(x2,y2) ;                     //per cancellare la scia prodotta dal movimento
    putch('#') ;
    Sleep(20) ;
    gotoxy(x2,y2);
    putch(' ');


////////////////////////////////////////////////////////////////////////////////
  //prima pallina


    gotoxy(40,13) ;     // posizione di partenza
    x=x+incrX ;
    y=y+incrY ;


    if(x==80) incrX=-1 ;                //limiti dello schermo, nel quale la pallina dev rimbalzare
    if(x==1) incrX=+1 ;
    if(y==25) incrY=-1 ;
    if(y==1)  incrY=+1 ;
    if((x==5)&&(y==n)) incrX=+1 ;


    if(kbhit()==1) exit(1) ;
      //gotoxy(x,y);
      //putch('°');
      //putch(' ');


    gotoxy(x,y) ;                       //per cancellare la scia prodotta dal movimento
    putch('#') ;
    Sleep(20) ;
    gotoxy(x,y);
    putch(' ');




  }while(1) ;


}