assert1
Dependencies: mbed X_NUCLEO_IHM02A1
chemin.h
- Committer:
- JimmyAREM
- Date:
- 2019-03-30
- Revision:
- 3:06cbe2f6c494
- Parent:
- 2:977799d72329
File content as of revision 3:06cbe2f6c494:
#ifndef CHEMIN_H #define CHEMIN_H // C code to implement Priority Queue // using Linked List // https://www.geeksforgeeks.org/priority-queue-using-linked-list/ // C code for path fining // https://github.com/AtsushiSakai/PythonRobotics //Exemple: /* int vitesse_deplacement = 200; calc_distances(20,180,270,180); //x_départ , y_arrivée , x_arrivée, y_arrivée Node* commandes = (Node*)malloc(sizeof(Node)); commandes = traduction_points_commandes(trouver_chemin(20,180,270,180)); while(!isEmpty(&commandes)){ int angle,distance_avancement_cm,_ = 0; peek(&commandes,&angle,&distance_avancement_cm,&_); //on recupere les infos du point pop(&commandes); printf("rotation %d, avancement de %d\n",angle,distance_avancement_cm); if(distance_avancement_cm != 0 && angle != 0) { test_ligne_droite(10*distance_avancement_cm, vitesse_deplacement); test_rotation_rel(angle,vitesse_deplacement); } } */ #include <stdio.h> #include <stdlib.h> #include <time.h> // Node typedef struct node { int x; int y; int distance; // Lower values indicate higher priority int priority; struct node* next; } Node; // Function to Create A New Node Node* newNode(int x , int y, int distance, int p); // Return the value at head void peek(Node** head, int*x, int*y, int*distance); // Removes the element with the // highest priority form the list void pop(Node** head); // Function to push according to priority void push(Node** head, int x, int y, int distance, int p); // Function to check is list is empty int isEmpty(Node** head); void calc_distances(int ox, int oy, int gx , int gy); //ogigine, goal Node* trouver_chemin(int ox, int oy, int gx , int gy); //retourne une suite de points , du point de départ au point d'arrivé en évitant les obstacles Node* traduction_points_commandes(Node* pq); void afficher_terrain(); void afficher_terrain(Node* commandes); int conversion_codage_angles(int o); void aller_a_point(int ox , int oy, int gx , int gy , int vitesse_deplacement = 100); #endif