#include <graph.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

struct mail {
	unsigned char r;
	unsigned char v;
	unsigned char b;
	struct mail* suivant;
};
 
typedef struct mail maillon;

void txt(int x, int y,char texte[],maillon* rainbow)
{
	char *ptr;

	couleur c;
	for (int i = 0; i < strlen(texte); ++i)
	{
		*ptr = texte[i];
		c=CouleurParComposante(rainbow->r,rainbow->v,rainbow->b);
		ChoisirCouleurDessin(c);
		EcrireTexte(x,y,ptr,2);
		rainbow=rainbow->suivant;
		x+=TailleChaineEcran(ptr,2);
	}
}

maillon* ajouter_debut(maillon* premier,unsigned char rouge,unsigned char vert,unsigned char bleu) 
{
	maillon* p = (maillon*) malloc(sizeof(maillon));
	if (p) 
	{
		p->suivant = premier;
		p->r = rouge;
		p->v = vert;
		p->b = bleu;
  	}
  	return p;
}

int main(int argc, char const *argv[])
{
	maillon *rainbow = malloc(sizeof(maillon));

	rainbow->r = 255;
	rainbow->v = 0;
	rainbow->b = 0;
	maillon* end; 
	end = rainbow;
	rainbow = ajouter_debut(rainbow,255,144,0);
	rainbow = ajouter_debut(rainbow,255,255,50);
	rainbow = ajouter_debut(rainbow,0,235,30);
	rainbow = ajouter_debut(rainbow,0,255,240);
	rainbow = ajouter_debut(rainbow,0,81,255);
	rainbow = ajouter_debut(rainbow,136,0,255);
	rainbow = ajouter_debut(rainbow,220,0,255);
	rainbow = ajouter_debut(rainbow,255,0,144);
	end ->suivant = rainbow;

	char blablabla[1]="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
	
	InitialiserGraphique();
	CreerFenetre(10,10,1000,270);
	txt(200,135,blablabla,rainbow);
	Touche();
	FermerGraphique();

	return 0;
}