Tobis Programm forked to not destroy your golden files

Dependencies:   mbed

Fork of Robocode by PES 2 - Gruppe 1

Committer:
cittecla
Date:
Tue Apr 11 14:13:37 2017 +0000
Revision:
44:7118b23b0fd7
Parent:
41:462d379e85c4
Nothing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cittecla 12:91c2e07d2b5b 1 /**
cittecla 12:91c2e07d2b5b 2 * Mapping function library
cittecla 12:91c2e07d2b5b 3 * Handels Mapping of the arena and LEGO-stones
cittecla 12:91c2e07d2b5b 4 **/
cittecla 12:91c2e07d2b5b 5
cittecla 44:7118b23b0fd7 6 //Obstacle_list --> 0 = free | 1 = hard surface object | 2 = inaccesable (robot diameter) | 3 = LEGO undefined | 4 = LEGO red
cittecla 44:7118b23b0fd7 7
cittecla 38:3526c36e4c73 8 #include "Mapping.h"
cittecla 41:462d379e85c4 9 #include "Pathfinding.h"
cittecla 38:3526c36e4c73 10
cittecla 44:7118b23b0fd7 11 uint8_t obstacle_list_superpos[7][7] = {{0,0,2,2,2,0,0},
cittecla 44:7118b23b0fd7 12 {0,2,2,2,2,2,0},
cittecla 44:7118b23b0fd7 13 {2,2,2,2,2,2,2},
cittecla 44:7118b23b0fd7 14 {2,2,2,1,2,2,2},
cittecla 44:7118b23b0fd7 15 {2,2,2,2,2,2,2},
cittecla 44:7118b23b0fd7 16 {0,2,2,2,2,2,0},
cittecla 44:7118b23b0fd7 17 {0,0,2,2,2,0,0}};
cittecla 44:7118b23b0fd7 18
cittecla 12:91c2e07d2b5b 19
cittecla 13:57f5a7876d2f 20 void mapping()
cittecla 13:57f5a7876d2f 21 {
cittecla 28:274e1d4ecac5 22 //pseudo code
cittecla 41:462d379e85c4 23 // check_sensor(left);
cittecla 41:462d379e85c4 24 //check_sensor(right);
cittecla 28:274e1d4ecac5 25 }
cittecla 28:274e1d4ecac5 26
cittecla 38:3526c36e4c73 27
cittecla 41:462d379e85c4 28 int select_target()
cittecla 41:462d379e85c4 29 {
cittecla 41:462d379e85c4 30 position myPos = get_current_pos();
cittecla 41:462d379e85c4 31 position diff = {0};
cittecla 41:462d379e85c4 32 target.x = 0;
cittecla 41:462d379e85c4 33 int closest_dist = 10000;
cittecla 41:462d379e85c4 34 int current_dist = 0;
cittecla 41:462d379e85c4 35
cittecla 41:462d379e85c4 36 for(int i = 0; i < row; i++) {
cittecla 41:462d379e85c4 37 for(int j = 0; j < col; j++) {
cittecla 44:7118b23b0fd7 38 if(obstacle_list[i][j] == 3) {
cittecla 41:462d379e85c4 39 diff.x = abs(myPos.x - j);
cittecla 41:462d379e85c4 40 diff.y = abs(myPos.y - i);
cittecla 41:462d379e85c4 41 current_dist = diff.x * diff.y;
cittecla 41:462d379e85c4 42 if(current_dist < closest_dist) {
cittecla 41:462d379e85c4 43 closest_dist = current_dist;
cittecla 41:462d379e85c4 44 target.x = j;
cittecla 41:462d379e85c4 45 target.y = i;
cittecla 41:462d379e85c4 46 }
cittecla 41:462d379e85c4 47 }
cittecla 41:462d379e85c4 48 }
cittecla 41:462d379e85c4 49 }
cittecla 41:462d379e85c4 50 if(target.x == 0) {
cittecla 41:462d379e85c4 51 return 47; // No Target found
cittecla 41:462d379e85c4 52 } else {
cittecla 41:462d379e85c4 53 return 36; // Target found
cittecla 41:462d379e85c4 54 }
cittecla 41:462d379e85c4 55 }
cittecla 41:462d379e85c4 56
cittecla 41:462d379e85c4 57 int remove_target()
cittecla 41:462d379e85c4 58 {
cittecla 41:462d379e85c4 59 obstacle_list[target.y][target.x] = 0;
cittecla 40:a46667b62671 60 return 0;
cittecla 40:a46667b62671 61 }
cittecla 40:a46667b62671 62
cittecla 41:462d379e85c4 63 int switch_target_red()
cittecla 41:462d379e85c4 64 {
cittecla 41:462d379e85c4 65 obstacle_list[target.y][target.x] = 0;
cittecla 41:462d379e85c4 66 return 0;
cittecla 40:a46667b62671 67 }
cittecla 40:a46667b62671 68
cittecla 40:a46667b62671 69
cittecla 40:a46667b62671 70
cittecla 40:a46667b62671 71
cittecla 40:a46667b62671 72
cittecla 38:3526c36e4c73 73 /*
cittecla 28:274e1d4ecac5 74 void chack_sensor(sensor)
cittecla 28:274e1d4ecac5 75 {
cittecla 28:274e1d4ecac5 76 get_distance();
cittecla 28:274e1d4ecac5 77 if(sensor < 80cm || sensor > 10cm) {
cittecla 28:274e1d4ecac5 78 calculate_position(sensor, distance);
cittecla 28:274e1d4ecac5 79 check_map(position.this, obstacle);
cittecla 28:274e1d4ecac5 80 if(map.no-entry){
cittecla 28:274e1d4ecac5 81 check_if_obstacle(distance);
cittecla 28:274e1d4ecac5 82 update_map();
cittecla 28:274e1d4ecac5 83 }
cittecla 28:274e1d4ecac5 84 }
cittecla 14:9e2ce5880fb0 85 }
cittecla 28:274e1d4ecac5 86
cittecla 28:274e1d4ecac5 87 void get_distance(sensor)
cittecla 28:274e1d4ecac5 88 {
cittecla 28:274e1d4ecac5 89 sensor.value;
cittecla 28:274e1d4ecac5 90 return value;
cittecla 28:274e1d4ecac5 91 }
cittecla 28:274e1d4ecac5 92
cittecla 28:274e1d4ecac5 93 void calcualte_position(sensor, distance)
cittecla 28:274e1d4ecac5 94 {
cittecla 28:274e1d4ecac5 95 do math;
cittecla 28:274e1d4ecac5 96 return position;
cittecla 28:274e1d4ecac5 97 }
cittecla 28:274e1d4ecac5 98
cittecla 28:274e1d4ecac5 99 void check_if_obstacle(distance)
cittecla 28:274e1d4ecac5 100 {
cittecla 28:274e1d4ecac5 101 move_scanner();
cittecla 28:274e1d4ecac5 102 distance2 = get_distance(sensor);
cittecla 28:274e1d4ecac5 103 reset_scanner();
cittecla 28:274e1d4ecac5 104 if(distance -5cm < distance2 && distance +5cm > distance2) {
cittecla 28:274e1d4ecac5 105 return 1;
cittecla 28:274e1d4ecac5 106 } else {
cittecla 28:274e1d4ecac5 107 return 0;
cittecla 28:274e1d4ecac5 108 }
cittecla 29:e7d0208bf2af 109 }*/