# Bounce around screen

This is a discussion on Bounce around screen within the C++ Programming forums, part of the General Programming Boards category; How do I bounce a star around the screen using gotoxy ? I tried the follwing but it doesn't work ...

1. ## Bounce around screen

How do I bounce a star around the screen using gotoxy ?

I tried the follwing but it doesn't work after sometime:
PHP Code:
``` #include <stdio.h> #include <conio.h> #include <dos.h> struct gamecomponent {     int bufx, bufy;     int oldx, oldy;     int newx, newy;     int speed;     //void resetcoords(); } ball, paddle; void gamecomponent :: resetcoords() {     oldx = bufx;     oldy = bufy;     bufx = newx;     bufy = newy; } void changecoordball() {     int xadd, yadd, depvar=0;     if (ball.newx >= 80)     {         xadd = -ball.speed;         depvar = 1;     }     if (ball.newx <= 0)     {         xadd = ball.speed;         depvar = 1;     }     if (ball.newy >= 25)     {         yadd = -ball.speed;         depvar = 1;     }     if (ball.newy <= 0)     {         yadd = ball.speed;         depvar = 1;     }     if (ball.newy == paddle.newy)     {         if (ball.newx >= paddle.newx && ball.newx <= (paddle.newx + 3))         {             xadd = -ball.speed;             depvar = 1;         }         if (ball.newx > (paddle.newx + 3) && ball.newx <= (paddle.newx + 7))         {             xadd = ball.speed;             depvar = 1;         }     }     if (depvar != 1)     {         xadd = 1;         yadd = 1;     }     ball.newx = ball.newx + xadd;     ball.newy = ball.newy + yadd; } void changecoordpaddle(int direction) {     int delx;     if (direction == 1)     {         delx = paddle.speed;     }     else     {         delx = -paddle.speed;     }     paddle.newx = paddle.newx + delx; } void initialize() {     ball.bufx = 1;     ball.bufy = 1;     ball.newx = 1;     ball.newy = 1;     ball.oldx = 1;     ball.oldy = 1;     ball.speed = 2;     paddle.bufx = 1;     paddle.bufy = 25;     paddle.newx = 1;     paddle.newy = 25;     paddle.oldx = 1;     paddle.oldy = 25;     paddle.speed = 1; } void placeball() {     gotoxy(ball.oldx, ball.oldy);     printf(" ");     gotoxy(ball.newx, ball.newy);     printf("*"); } void placepaddle() {     gotoxy(paddle.oldx, paddle.oldy);     printf("       ");     gotoxy(paddle.newx, paddle.newy);     printf("======="); } int checkbounce() {     int bounceval = 1;     if (ball.newy == paddle.newy)     {         if (ball.newx < paddle.newx || ball.newx > (paddle.newx + 7))         {             bounceval = 0;         }     }     return bounceval; } main() {     clrscr();     initialize();     while (1 == 1)     {         changecoordball();         resetcoordsball();         placeball();         delay(100);         while (kbhit())         {             return 0;         }     }      }  ```
Any help is appreciated.

COOL PROGRAMS @ www.akilla.tk

2. ## ok..

``` #include <stdio.h> #include <conio.h> #include <dos.h> struct gamecomponent {     int bufx, bufy;     int oldx, oldy;     int newx, newy;     int xspeed, yspeed;     void resetcoords(); } ball, paddle; void gamecomponent :: resetcoords() {     oldx = bufx;     oldy = bufy;     bufx = newx;     bufy = newy; } void changecoordball() {     if (ball.newy == paddle.newy)     {         if (ball.newx >= paddle.newx && ball.newx <= (paddle.newx + 3))         {             if (ball.xspeed > 0)             {                 ball.xspeed = -ball.xspeed;             }                          if (ball.yspeed > 0)             {                 ball.yspeed = -ball.yspeed;             }         }         if (ball.newx > (paddle.newx + 3) && ball.newx <= (paddle.newx + 7))         {             if (ball.xspeed < 0)             {                 ball.xspeed = -ball.xspeed;             }                          if (ball.yspeed > 0)             {                 ball.yspeed = -ball.yspeed;             }         }     }     if (ball.newx >= 80)     {         if (ball.xspeed > 0)         {             ball.xspeed = -ball.xspeed;         }     }     if (ball.newx <= 0)     {         if (ball.xspeed < 0)         {             ball.xspeed = -ball.xspeed;         }     }     if (ball.newy >= 25)     {         if (ball.yspeed > 0)         {             ball.yspeed = -ball.yspeed;         }     }     if (ball.newy <= 0)     {         if (ball.yspeed < 0)         {             ball.yspeed = -ball.yspeed;         }     }     ball.newx = ball.newx + ball.xspeed;     ball.newy = ball.newy + ball.yspeed;      } void changecoordpaddle(int direction) {     int delx;     if (direction == 1)     {         delx = paddle.xspeed;     }     else     {         delx = -paddle.xspeed;     }     paddle.newx = paddle.newx + delx; } void initialize() {     ball.bufx = 1;     ball.bufy = 1;     ball.newx = 1;     ball.newy = 1;     ball.oldx = 1;     ball.oldy = 1;     ball.xspeed = 1;     ball.yspeed = 1;     paddle.bufx = 1;     paddle.bufy = 25;     paddle.newx = 1;     paddle.newy = 25;     paddle.oldx = 1;     paddle.oldy = 25;     paddle.xspeed = 1;     paddle.yspeed = 1; } void placeball() {     gotoxy(ball.oldx, ball.oldy);     printf(" ");     gotoxy(ball.newx, ball.newy);     printf("*"); } void placepaddle() {     gotoxy(paddle.oldx, paddle.oldy);     printf("       ");     gotoxy(paddle.newx, paddle.newy);     printf("======="); } int checkbounce() {     int bounceval = 1;     if (ball.newy == paddle.newy)     {         if (ball.newx < paddle.newx || ball.newx > (paddle.newx + 7))         {             bounceval = 0;         }     }     return bounceval; } main() {     clrscr();     initialize();     while (1 == 1)     {         changecoordball();         ball.resetcoords();         placeball();         delay(100);         while (kbhit())         {             return 0;         }     } }  ```