#include #include #include #include #include "utils.h" #include "taquin.h" #include "../graph_sup.h" #define OFFSET_X 650 #define OFFSET_Y 100 //int ImageX, ImageY; int Rows, Columns; char TaquinFilename[500]; int ImageX = 500; int ImageY = 445; int SizeX, SizeY; //Met à jour le taquin à chaque mouvement. void UpdateTaquin(char* filename, int** Taquin, int rows, int columns) { int x, y, i_x, i_y, id; int i = 0; char str_id[20]; for (int cur_row = 0; cur_row < columns; cur_row++) { for (int cur_col = 0; cur_col < rows; cur_col++) { id = Taquin[cur_row][cur_col]; if (id != 0) { x = i % columns; y = i / columns; i_x = id % columns; i_y = id / columns; AddButton(OFFSET_X + SizeX*x, OFFSET_Y + SizeY*y + (500-ImageY)/2, SizeX, SizeY, id); ChargerImage(filename, OFFSET_X + SizeX*x + 1, OFFSET_Y + SizeY*y + (500-ImageY)/2 + 1, SizeX*i_x+1, SizeY*i_y+1, SizeX-2, SizeY-2); } i++; } } } void UpdatePiece(char* filename, int x, int y, couleur color) { ChoisirCouleurDessin(color); RemplirRectangle(OFFSET_X + SizeX * x - 1, OFFSET_Y + SizeY * y + (500-ImageY)/2 - 1, SizeX + 2, SizeY + 2); ChargerImage(filename, OFFSET_X + SizeX*x + 1, OFFSET_Y + SizeY*y + (500-ImageY)/2 + 1, SizeX*x+1, SizeY*y+1, SizeX-2, SizeY-2); } //Initialise le Taquin, la fonction appelle la création graphique et logique du Taquin. void CreateTaquin(char * filename, int rows, int columns) { clearButtons(); Rows = rows; Columns = columns; strcpy(TaquinFilename, filename); SizeX = ImageX/columns; SizeY = ImageY/rows; int ** Taquin; Taquin = calloc(columns, sizeof(int*)); for (int i = 0; i < columns; i++) { Taquin[i] = calloc(rows, sizeof(int)); } for (int i = 0; i < rows * columns; i++) { int row = i/rows; int column = i % rows; Taquin[row][column] = i; } UpdateTaquin(filename, Taquin, rows, columns); int last_id = -1; int id = -1; while (1) { //if (SourisCliquee()) { SourisPosition(); id = GetButton(_X, _Y); if (id != last_id) { if (id != -1) UpdatePiece(filename, id % columns, id / columns, GetColorN("red")); UpdatePiece(filename, last_id % columns, last_id / columns, GetColorN("black")); last_id = id; } //} } }