/// This file has been generated, if you wish to
/// modify it in a permanent way, please refer
/// to the script file : gen/generator_haskell.rb

#include <vector>
#include <string>
#include <stdlib.h>
#include "interface_c.hh"
typedef struct __internal__cxx__position {
  int x;
  int y;
} __internal__cxx__position;
typedef struct __internal__cxx__pulsar_info {
  int periode;
  double puissance;
  int pulsations_restantes;
  int pulsations_totales;
} __internal__cxx__pulsar_info;
extern "C" erreur api_construire(__internal__cxx__position pos);
extern "C" erreur api_ameliorer(__internal__cxx__position pos);
extern "C" erreur api_detruire(__internal__cxx__position pos);
extern "C" erreur api_deplacer_aspiration(__internal__cxx__position source, __internal__cxx__position destination);
extern "C" erreur api_deblayer(__internal__cxx__position pos);
extern "C" case_type api_type_case(__internal__cxx__position pos);
extern "C" std::vector<__internal__cxx__position> api_liste_pulsars(void);
extern "C" std::vector<__internal__cxx__position> api_liste_plasmas(void);
extern "C" std::vector<__internal__cxx__position> api_liste_tuyaux(void);
extern "C" std::vector<__internal__cxx__position> api_liste_super_tuyaux(void);
extern "C" std::vector<__internal__cxx__position> api_liste_debris(void);
extern "C" bool api_est_pulsar(__internal__cxx__position pos);
extern "C" bool api_est_tuyau(__internal__cxx__position pos);
extern "C" bool api_est_simple_tuyau(__internal__cxx__position pos);
extern "C" bool api_est_super_tuyau(__internal__cxx__position pos);
extern "C" bool api_est_debris(__internal__cxx__position pos);
extern "C" bool api_est_libre(__internal__cxx__position pos);
extern "C" __internal__cxx__pulsar_info api_info_pulsar(__internal__cxx__position pos);
extern "C" double api_charges_presentes(__internal__cxx__position pos);
extern "C" int api_constructeur_tuyau(__internal__cxx__position pos);
extern "C" int api_proprietaire_base(__internal__cxx__position pos);
extern "C" std::vector<__internal__cxx__position> api_ma_base(void);
extern "C" std::vector<__internal__cxx__position> api_base_ennemie(void);
extern "C" int api_puissance_aspiration(__internal__cxx__position pos);
extern "C" std::vector<__internal__cxx__position> api_directions_plasma(__internal__cxx__position pos);
extern "C" int api_cout_prochaine_modification_aspiration(void);
extern "C" std::vector<__internal__cxx__position> api_hist_tuyaux_construits(void);
extern "C" std::vector<__internal__cxx__position> api_hist_tuyaux_detruits(void);
extern "C" std::vector<__internal__cxx__position> api_hist_tuyaux_ameliores(void);
extern "C" std::vector<__internal__cxx__position> api_hist_debris_deblayes(void);
extern "C" std::vector<__internal__cxx__position> api_hist_points_aspiration_ajoutes(void);
extern "C" std::vector<__internal__cxx__position> api_hist_points_aspiration_retires(void);
extern "C" int api_moi(void);
extern "C" int api_adversaire(void);
extern "C" int api_points_action(void);
extern "C" int api_score(int id_joueur);
extern "C" int api_tour_actuel(void);
extern "C" bool api_annuler(void);
extern "C" void api_afficher_erreur(erreur v);
extern "C" void api_afficher_case_type(case_type v);
extern "C" void api_afficher_position(__internal__cxx__position v);
extern "C" void api_afficher_pulsar_info(__internal__cxx__pulsar_info v);
extern "C" void partie_init();
extern "C" void jouer_tour();
extern "C" void partie_fin();
