#include <stdio.h>
#include <unistd.h>
#include <sys/time.h>
+#include <sys/select.h>
#include <time.h>
#include <math.h>
return pow(-1, rand());
}
+void
+msleep(void)
+{
+ struct timeval timeout;
+ timeout.tv_usec = 10000;
+ select(0, NULL, NULL, NULL, &timeout); // Sleep 100 ms
+}
+
int
main(void) {
srand((unsigned int)time(NULL));
} else if (key == 'q') {
die(0);
}
+ msleep();
}
}
/* Find the distance that the ball hits from the center of the padel and
accordingly adjust ball path */
int poff = (x <= 1) ? aoff : boff;
- double fromc = fabs(0.5 * (poff + 0.5 * pad_h - y));
- slope_x *= (slope_x < 20) ? 1 : (int) ((double) slope_x / fromc);
- slope_x += 1;
+ double fromc = fabs(poff + 0.5 * pad_h - y) / 3;
+ slope_x /= (abs(slope_x) > 25) ? 2 : fromc;
+ slope_x = (slope_x < 2) ? 2 : slope_x;
direction *= -1;
x += direction;
mvprintw(y, x, " ");
y = (y == max_y) ? max_y - 1 : 1;
}
+ msleep();
}
}