World In the Balance

Dependencies:   mbed 4DGL-uLCD-SE PinDetect

Committer:
ckaminsky7
Date:
Sat Dec 04 02:19:22 2021 +0000
Revision:
0:eb6c4121cfd1
World In the Balance Lab6 2036 Cody Kaminsky

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ckaminsky7 0:eb6c4121cfd1 1 #include "mbed.h"
ckaminsky7 0:eb6c4121cfd1 2 #include "WITB.h"
ckaminsky7 0:eb6c4121cfd1 3
ckaminsky7 0:eb6c4121cfd1 4 int main() {
ckaminsky7 0:eb6c4121cfd1 5 srand(time(0));
ckaminsky7 0:eb6c4121cfd1 6 EarthSS A;
ckaminsky7 0:eb6c4121cfd1 7 A.setBaud();
ckaminsky7 0:eb6c4121cfd1 8 A.draw();
ckaminsky7 0:eb6c4121cfd1 9 GameTimer B;
ckaminsky7 0:eb6c4121cfd1 10 B.draw();
ckaminsky7 0:eb6c4121cfd1 11
ckaminsky7 0:eb6c4121cfd1 12 ScreenObject * ActiveAsteroids[] = {new ConcreteAsteroid1(), new ConcreteAsteroid2(), new ConcreteAsteroid3(), new ConcreteAsteroid4()};
ckaminsky7 0:eb6c4121cfd1 13 for (int i = 0; i < 4; i++)
ckaminsky7 0:eb6c4121cfd1 14 {
ckaminsky7 0:eb6c4121cfd1 15 (*ActiveAsteroids[i]).setYPos(10);
ckaminsky7 0:eb6c4121cfd1 16 (*ActiveAsteroids[i]).setXPos(rand() % 110);
ckaminsky7 0:eb6c4121cfd1 17 (*ActiveAsteroids[i]).setdx(rand()%5 + 3);
ckaminsky7 0:eb6c4121cfd1 18 (*ActiveAsteroids[i]).setdy(rand()%10 - 5);
ckaminsky7 0:eb6c4121cfd1 19 (*ActiveAsteroids[i]).draw();
ckaminsky7 0:eb6c4121cfd1 20 }
ckaminsky7 0:eb6c4121cfd1 21
ckaminsky7 0:eb6c4121cfd1 22 double x = 0, y = 0, z = 0;
ckaminsky7 0:eb6c4121cfd1 23
ckaminsky7 0:eb6c4121cfd1 24 MMA8452 acc(p28, p27, 40000); //instantiate an acc object!
ckaminsky7 0:eb6c4121cfd1 25
ckaminsky7 0:eb6c4121cfd1 26 //set parameters -- use these and don't change
ckaminsky7 0:eb6c4121cfd1 27 acc.setBitDepth(MMA8452::BIT_DEPTH_12);
ckaminsky7 0:eb6c4121cfd1 28 acc.setDynamicRange(MMA8452::DYNAMIC_RANGE_4G);
ckaminsky7 0:eb6c4121cfd1 29 acc.setDataRate(MMA8452::RATE_100);
ckaminsky7 0:eb6c4121cfd1 30
ckaminsky7 0:eb6c4121cfd1 31
ckaminsky7 0:eb6c4121cfd1 32
ckaminsky7 0:eb6c4121cfd1 33 while(1)
ckaminsky7 0:eb6c4121cfd1 34 {
ckaminsky7 0:eb6c4121cfd1 35 wait(0.1);
ckaminsky7 0:eb6c4121cfd1 36 clear();
ckaminsky7 0:eb6c4121cfd1 37 acc.readXYZGravity(&x,&y,&z);
ckaminsky7 0:eb6c4121cfd1 38 int dx = floor(12 * x + 1);
ckaminsky7 0:eb6c4121cfd1 39 A.setdx(dx);
ckaminsky7 0:eb6c4121cfd1 40 A.update();
ckaminsky7 0:eb6c4121cfd1 41 B.update();
ckaminsky7 0:eb6c4121cfd1 42
ckaminsky7 0:eb6c4121cfd1 43 for (int i = 0; i < 4; i++)
ckaminsky7 0:eb6c4121cfd1 44 {
ckaminsky7 0:eb6c4121cfd1 45 if ((*ActiveAsteroids[i]).getYPos() > 110)
ckaminsky7 0:eb6c4121cfd1 46 {
ckaminsky7 0:eb6c4121cfd1 47 (*ActiveAsteroids[i]).setYPos(10);
ckaminsky7 0:eb6c4121cfd1 48 (*ActiveAsteroids[i]).setXPos(rand() % 110);
ckaminsky7 0:eb6c4121cfd1 49 (*ActiveAsteroids[i]).setdx(rand()%5 + 3);
ckaminsky7 0:eb6c4121cfd1 50 (*ActiveAsteroids[i]).setdy(rand()%10 - 5);
ckaminsky7 0:eb6c4121cfd1 51 }
ckaminsky7 0:eb6c4121cfd1 52 (*ActiveAsteroids[i]).update();
ckaminsky7 0:eb6c4121cfd1 53 }
ckaminsky7 0:eb6c4121cfd1 54 for (int i = 0; i < 4; i++)
ckaminsky7 0:eb6c4121cfd1 55 {
ckaminsky7 0:eb6c4121cfd1 56 if (overlap(A, (*ActiveAsteroids[i])))
ckaminsky7 0:eb6c4121cfd1 57 {
ckaminsky7 0:eb6c4121cfd1 58 loseGame(A);
ckaminsky7 0:eb6c4121cfd1 59 break;
ckaminsky7 0:eb6c4121cfd1 60 }
ckaminsky7 0:eb6c4121cfd1 61 }
ckaminsky7 0:eb6c4121cfd1 62 }
ckaminsky7 0:eb6c4121cfd1 63 }