/*=============================================================================
	  ___________
	 /           \		Par Martin Robinson
	|   @#!$*%    |		logiciel libre GPL
	 \_______   _/
	 		 \ |  ___________
	    	  \| |   O   O   |
				 |  _______  |
				 | | | | | | |
===============================================================================
Preprocesseur
=============================================================================*/

#pragma once
#ifndef constchar_deja
#define constchar_deja

/*__________________________________________
fonction de manipulation de const char *  */

//trouver le caractere au coordonné demandé
template <const int _W, const int _H>
char getChar(const char * seq, int x, int y)
{
	return *(seq + x + (y*_W));
}

//trouver l'index dun caractere donné
template <const int _W, const int _H>
int findIndex(const char * seq, char key)
{
	for (int i=0;i<_W*_H;i++)
		if (*(seq+i)==key)
			return i;
	return -1;
}

//extraire la coordonné X de l'index
template <const int _W, const int _H>
int xFromIndex(int index)
{
	return index % _W;
}

//extraire la coordonné Y de l'index
template <const int _W, const int _H>
int yFromIndex(int index)
{
	return index/_W;
}

//trouver l'index à partire de X Y
template <const int _W, const int _H>
int indexFromXY(int x, int y)
{
    return (y*_W) + x;
}

#endif
