Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Alien/Alien_test.h
- Committer:
- evanso
- Date:
- 2020-05-13
- Revision:
- 26:1a7056eb3253
- Parent:
- 22:053c11a202e1
- Child:
- 27:8bb2bd97c319
File content as of revision 26:1a7056eb3253:
#ifndef ALIEN_TEST_H
#define ALIEN_TEST_H
/** Alien Test
@brief Checks that the alien draws, moves and detects collisions
@author Benjamin Evans, University of Leeds
@date May 2020
@return true if test are passed
*/
bool alien_collision_test(bool expected_collision, bool bullet_direction,int position_x_bullet,int position_y_bullet){
// Objects reqired for test
Alien alien;
Weapons bullet;
Gamepad pad;
// Initialise alien in start postion of 10, 22
alien.init(pad);
printf("collision = %s : " ,expected_collision ? "true" : "false");
//set bullet direction and posisiton
Vector2D pos = {position_x_bullet,position_y_bullet};
bullet.set_pos_one(pos);
bullet.set_direction(bullet_direction);
// Checks collision function
bool actual_collision = alien.check_collision(bullet);
// Checks if collision is espected
if (actual_collision == expected_collision) {
printf ( "Passed!\n");
return true;
} else {
printf ("Failed! value = %s (expecting %d)\n", actual_collision ? "true" : "false", expected_collision ? "true" : "false");
return false;
}
}
bool alien_movement_test(int random_direction, int expected_x_move, int expected_y_move){
// Objects reqired for test
Gamepad pad;
Alien alien;
Spaceship spaceship;
N5110 lcd;
Map map;
Direction d_;
// Initialise alien in start postion of 10, 22
pad.init();
alien.init(pad);
spaceship.init();
Vector2D start_postion = alien.get_pos();
int start_x_postion = start_postion.x;
int start_y_postion = start_postion.y;
printf("move_alien = %d,%d : ", start_x_postion + expected_x_move, start_y_postion + expected_y_move);
// Moves alien
alien.draw_alien(lcd,start_postion,d_, map.get_length_map(), map.get_position_x_map());
//Reads finish alien positon
Vector2D finish_postion = alien.get_pos();
// Checks final position with espected
if (finish_postion.x == start_postion.x + expected_x_move && start_postion.y + expected_y_move) {
printf ( "Passed!\n");
return true;
} else {
int finish_x_postion = finish_postion.x ;
int finish_y_postion = finish_postion.y ;
printf ("Failed! value = %d,%d (expecting %d,%d)\n", finish_x_postion, finish_y_postion, start_x_postion + expected_x_move, start_y_postion + expected_x_move);
return false;
}
}
#endif